X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FProtocol%2FDFRN.php;h=e83732ffe2b57c219362995cee2b58136be3aa2a;hb=ce3b1210640ce653ef91cbf033788474c1f88b0c;hp=b6252655acf651560314ae32dbbe0b57bc3aff07;hpb=6a2c0b3cc7ff6924cfbc7f46ec9427d4677a504c;p=friendica.git diff --git a/src/Protocol/DFRN.php b/src/Protocol/DFRN.php index b6252655ac..e83732ffe2 100644 --- a/src/Protocol/DFRN.php +++ b/src/Protocol/DFRN.php @@ -25,6 +25,7 @@ use Friendica\Model\Conversation; use Friendica\Model\Event; use Friendica\Model\GContact; use Friendica\Model\Item; +use Friendica\Model\Mail; use Friendica\Model\PermissionSet; use Friendica\Model\Profile; use Friendica\Model\User; @@ -359,7 +360,7 @@ class DFRN $ret = Item::select(Item::DELIVER_FIELDLIST, $condition); $items = Item::inArray($ret); if (!DBA::isResult($items)) { - exit(); + return ''; } $item = $items[0]; @@ -367,7 +368,7 @@ class DFRN if ($item['uid'] != 0) { $owner = User::getOwnerDataById($item['uid']); if (!$owner) { - exit(); + return ''; } } else { $owner = ['uid' => 0, 'nick' => 'feed-item']; @@ -400,7 +401,7 @@ class DFRN } } } else { - $root = self::entry($doc, $type, $item, $owner, true, 0, true); + self::entry($doc, $type, $item, $owner, true, 0, true); } $atom = trim($doc->saveXML()); @@ -987,7 +988,7 @@ class DFRN } // Add conversation data. This is used for OStatus - $conversation_href = System::baseUrl()."/display/".$owner["nick"]."/".$item["parent"]; + $conversation_href = System::baseUrl()."/display/".$item["parent-guid"]; $conversation_uri = $conversation_href; if (isset($parent_item)) { @@ -1865,7 +1866,6 @@ class DFRN { Logger::log("Processing mails"); - /// @TODO Rewrite this to one statement $msg = []; $msg["uid"] = $importer["importer_uid"]; $msg["from-name"] = $xpath->query("dfrn:sender/dfrn:name/text()", $mail)->item(0)->nodeValue; @@ -1877,34 +1877,8 @@ class DFRN $msg["created"] = DateTimeFormat::utc($xpath->query("dfrn:sentdate/text()", $mail)->item(0)->nodeValue); $msg["title"] = $xpath->query("dfrn:subject/text()", $mail)->item(0)->nodeValue; $msg["body"] = $xpath->query("dfrn:content/text()", $mail)->item(0)->nodeValue; - $msg["seen"] = 0; - $msg["replied"] = 0; - - DBA::insert('mail', $msg); - - $msg["id"] = DBA::lastInsertId(); - - // send notifications. - /// @TODO Arange this mess - $notif_params = [ - "type" => NOTIFY_MAIL, - "notify_flags" => $importer["notify-flags"], - "language" => $importer["language"], - "to_name" => $importer["username"], - "to_email" => $importer["email"], - "uid" => $importer["importer_uid"], - "item" => $msg, - "parent" => $msg["parent-uri"], - "source_name" => $msg["from-name"], - "source_link" => $importer["url"], - "source_photo" => $importer["thumb"], - "verb" => ACTIVITY_POST, - "otype" => "mail" - ]; - - notification($notif_params); - - Logger::log("Mail is processed, notification was sent."); + + Mail::insert($msg); } /** @@ -2212,14 +2186,13 @@ class DFRN /** * @brief Send a "poke" * - * @param array $item the new item record + * @param array $item The new item record * @param array $importer Record of the importer user mixed with contact of the content - * @param int $posted_id The record number of item record that was just posted * @return void * @throws \Friendica\Network\HTTPException\InternalServerErrorException * @todo set proper type-hints (array?) */ - private static function doPoke($item, $importer, $posted_id) + private static function doPoke(array $item, array $importer) { $verb = urldecode(substr($item["verb"], strpos($item["verb"], "#")+1)); if (!$verb) { @@ -2244,8 +2217,6 @@ class DFRN if ($Blink && Strings::compareLink($Blink, System::baseUrl() . "/profile/" . $importer["nickname"])) { $author = DBA::selectFirst('contact', ['name', 'thumb', 'url'], ['id' => $item['author-id']]); - $item['id'] = $posted_id; - $parent = Item::selectFirst(['id'], ['uri' => $item['parent-uri'], 'uid' => $importer["importer_uid"]]); $item["parent"] = $parent['id']; @@ -2259,7 +2230,7 @@ class DFRN "to_email" => $importer["email"], "uid" => $importer["importer_uid"], "item" => $item, - "link" => System::baseUrl()."/display/".urlencode(Item::getGuidById($posted_id)), + "link" => System::baseUrl()."/display/".urlencode($item['guid']), "source_name" => $author["name"], "source_link" => $author["url"], "source_photo" => $author["thumb"], @@ -2754,7 +2725,8 @@ class DFRN } if (stristr($item["verb"], ACTIVITY_POKE)) { - self::doPoke($item, $importer, $posted_id); + $item['id'] = $posted_id; + self::doPoke($item, $importer); } } }