]> git.mxchange.org Git - friendica.git/blobdiff - src/Worker/Delivery.php
all endpoints are now working
[friendica.git] / src / Worker / Delivery.php
index f47487015326a513d2da703eac33e37af4999917..3a93d92f7b37366047dfc551e4c792081c9fb65e 100644 (file)
@@ -263,29 +263,12 @@ class Delivery extends BaseObject
                                }
                        }
 
-                       // We now have some contact, so we fetch it
-                       $target_importer = DBA::fetchFirst("SELECT *, `name` as `senderName`
-                                                       FROM `contact`
-                                                       WHERE NOT `blocked` AND `id` = ? LIMIT 1",
-                                                       $cid);
-
-                       // This should never fail
-                       if (!DBA::isResult($target_importer)) {
+                       $target_importer = DFRN::getImporter($cid, $target_uid);
+                       if (empty($target_importer)) {
+                               // This should never happen
                                return;
                        }
 
-                       $user = DBA::selectFirst('user', [], ['uid' => $target_uid]);
-
-                       // This should also never fail
-                       if (!DBA::isResult($user)) {
-                               logger('No user found for uid ' . $target_uid);
-                               return;
-                       }
-
-                       $target_importer = array_merge($target_importer, $user);
-
-                       // Set the user id. This is important if this is a public contact
-                       $target_importer['importer_uid']  = $target_uid;
                        DFRN::import($atom, $target_importer);
                        return;
                }
@@ -309,8 +292,10 @@ class Delivery extends BaseObject
                                self::deliverDiaspora($cmd, $contact, $owner, $items, $target_item, $public_message, $top_level, $followup);
                                return;
                        }
-               } else {
+               } elseif ($cmd != self::RELOCATION) {
                        $deliver_status = DFRN::deliver($owner, $contact, $atom);
+               } else {
+                       $deliver_status = DFRN::deliver($owner, $contact, $atom, false, true);
                }
 
                logger('Delivery to ' . $contact["url"] . ' with guid ' . $target_item["guid"] . ' returns ' . $deliver_status);
@@ -461,25 +446,30 @@ class Delivery extends BaseObject
                        if (($target_item["thr-parent"] != "") && ($target_item["thr-parent"] != $target_item["parent-uri"])) {
                                $headers .= " <".Email::iri2msgid($target_item["thr-parent"]).">";
                        }
+
                        $headers .= "\n";
 
                        if (empty($target_item['title'])) {
                                $condition = ['uri' => $target_item['parent-uri'], 'uid' => $owner['uid']];
                                $title = Item::selectFirst(['title'], $condition);
+
                                if (DBA::isResult($title) && ($title['title'] != '')) {
                                        $subject = $title['title'];
                                } else {
                                        $condition = ['parent-uri' => $target_item['parent-uri'], 'uid' => $owner['uid']];
                                        $title = Item::selectFirst(['title'], $condition);
+
                                        if (DBA::isResult($title) && ($title['title'] != '')) {
                                                $subject = $title['title'];
                                        }
                                }
                        }
+
                        if (strncasecmp($subject, 'RE:', 3)) {
                                $subject = 'Re: ' . $subject;
                        }
                }
+
                Email::send($addr, $subject, $headers, $target_item);
        }
 }