]> git.mxchange.org Git - friendica.git/blobdiff - src/Protocol/OStatus.php
Merge pull request #10797 from annando/diaspora-deprecated
[friendica.git] / src / Protocol / OStatus.php
index 215c08fa08dca9d1749b37e73f8cbf15e474e4fe..4155fb084b9ad81b2c27f6fc20bc9dc9f7e7b6a3 100644 (file)
@@ -38,6 +38,7 @@ use Friendica\Model\ItemURI;
 use Friendica\Model\Post;
 use Friendica\Model\Tag;
 use Friendica\Model\User;
+use Friendica\Network\HTTPClientOptions;
 use Friendica\Network\Probe;
 use Friendica\Util\DateTimeFormat;
 use Friendica\Util\Images;
@@ -208,7 +209,7 @@ class OStatus
 
                        $contact['name-date'] = DateTimeFormat::utcNow();
 
-                       DBA::update('contact', $contact, ['id' => $contact["id"]], $current);
+                       Contact::update($contact, ['id' => $contact["id"]], $current);
 
                        if (!empty($author["author-avatar"]) && ($author["author-avatar"] != $current['avatar'])) {
                                Logger::log("Update profile picture for contact ".$contact["id"], Logger::DEBUG);
@@ -229,7 +230,7 @@ class OStatus
                                                'about' => $contact["about"], 'location' => $contact["location"],
                                                'success_update' => DateTimeFormat::utcNow(), 'last-update' => DateTimeFormat::utcNow()];
 
-                               DBA::update('contact', $fields, ['id' => $cid], $old_contact);
+                               Contact::update($fields, ['id' => $cid], $old_contact);
 
                                // Update the avatar
                                if (!empty($author["author-avatar"])) {
@@ -470,7 +471,7 @@ class OStatus
 
                        if ($item["verb"] == Activity::O_UNFOLLOW) {
                                $dummy = null;
-                               Contact::removeFollower($importer, $contact, $item, $dummy);
+                               Contact::removeFollower($contact);
                                continue;
                        }
 
@@ -727,7 +728,7 @@ class OStatus
 
                self::$conv_list[$conversation] = true;
 
-               $curlResult = DI::httpRequest()->get($conversation, ['accept_content' => 'application/atom+xml, text/html']);
+               $curlResult = DI::httpClient()->get($conversation, [HTTPClientOptions::ACCEPT_CONTENT => ['application/atom+xml', 'text/html']]);
 
                if (!$curlResult->isSuccess() || empty($curlResult->getBody())) {
                        return;
@@ -757,7 +758,7 @@ class OStatus
                                        }
                                }
                                if ($file != '') {
-                                       $conversation_atom = DI::httpRequest()->get($attribute['href']);
+                                       $conversation_atom = DI::httpClient()->get($attribute['href']);
 
                                        if ($conversation_atom->isSuccess()) {
                                                $xml = $conversation_atom->getBody();
@@ -871,7 +872,7 @@ class OStatus
                        return;
                }
 
-               $curlResult = DI::httpRequest()->get($self);
+               $curlResult = DI::httpClient()->get($self);
 
                if (!$curlResult->isSuccess()) {
                        return;
@@ -921,7 +922,7 @@ class OStatus
                }
 
                $stored = false;
-               $curlResult = DI::httpRequest()->get($related, ['accept_content' => 'application/atom+xml, text/html']);
+               $curlResult = DI::httpClient()->get($related, [HTTPClientOptions::ACCEPT_CONTENT => ['application/atom+xml', 'text/html']]);
 
                if (!$curlResult->isSuccess() || empty($curlResult->getBody())) {
                        return;
@@ -953,7 +954,7 @@ class OStatus
                                        }
                                }
                                if ($atom_file != '') {
-                                       $curlResult = DI::httpRequest()->get($atom_file);
+                                       $curlResult = DI::httpClient()->get($atom_file);
 
                                        if ($curlResult->isSuccess()) {
                                                Logger::log('Fetched XML for URI ' . $related_uri, Logger::DEBUG);
@@ -965,7 +966,7 @@ class OStatus
 
                // Workaround for older GNU Social servers
                if (($xml == '') && strstr($related, '/notice/')) {
-                       $curlResult = DI::httpRequest()->get(str_replace('/notice/', '/api/statuses/show/', $related) . '.atom');
+                       $curlResult = DI::httpClient()->get(str_replace('/notice/', '/api/statuses/show/', $related) . '.atom');
 
                        if ($curlResult->isSuccess()) {
                                Logger::log('GNU Social workaround to fetch XML for URI ' . $related_uri, Logger::DEBUG);
@@ -976,7 +977,7 @@ class OStatus
                // Even more worse workaround for GNU Social ;-)
                if ($xml == '') {
                        $related_guess = self::convertHref($related_uri);
-                       $curlResult = DI::httpRequest()->get(str_replace('/notice/', '/api/statuses/show/', $related_guess) . '.atom');
+                       $curlResult = DI::httpClient()->get(str_replace('/notice/', '/api/statuses/show/', $related_guess) . '.atom');
 
                        if ($curlResult->isSuccess()) {
                                Logger::log('GNU Social workaround 2 to fetch XML for URI ' . $related_uri, Logger::DEBUG);
@@ -1274,7 +1275,7 @@ class OStatus
                XML::addElement($doc, $root, "id", DI::baseUrl() . "/profile/" . $owner["nick"]);
                XML::addElement($doc, $root, "title", $title);
                XML::addElement($doc, $root, "subtitle", sprintf("Updates from %s on %s", $owner["name"], DI::config()->get('config', 'sitename')));
-               XML::addElement($doc, $root, "logo", Contact::getAvatarUrlForId($owner['id'], ProxyUtils::SIZE_SMALL, $owner['updated']));
+               XML::addElement($doc, $root, "logo", User::getAvatarUrlForId($owner['uid'], ProxyUtils::SIZE_SMALL));
                XML::addElement($doc, $root, "updated", DateTimeFormat::utcNow(DateTimeFormat::ATOM));
 
                $author = self::addAuthor($doc, $owner, true);
@@ -1431,7 +1432,7 @@ class OStatus
                                "type" => "image/jpeg", // To-Do?
                                "media:width" => ProxyUtils::PIXEL_SMALL,
                                "media:height" => ProxyUtils::PIXEL_SMALL,
-                               "href" => Contact::getAvatarUrlForId($owner['id'], ProxyUtils::SIZE_SMALL, $owner['updated'])];
+                               "href" => User::getAvatarUrlForId($owner['uid'], ProxyUtils::SIZE_SMALL)];
                XML::addElement($doc, $author, "link", "", $attributes);
 
                if (isset($owner["thumb"])) {
@@ -1440,7 +1441,7 @@ class OStatus
                                        "type" => "image/jpeg", // To-Do?
                                        "media:width" => ProxyUtils::PIXEL_THUMB,
                                        "media:height" => ProxyUtils::PIXEL_THUMB,
-                                       "href" => Contact::getAvatarUrlForId($owner['id'], ProxyUtils::SIZE_THUMB, $owner['updated'])];
+                                       "href" => User::getAvatarUrlForId($owner['uid'], ProxyUtils::SIZE_THUMB)];
                        XML::addElement($doc, $author, "link", "", $attributes);
                }
 
@@ -1930,27 +1931,31 @@ class OStatus
                if ($item['gravity'] != GRAVITY_PARENT) {
                        $parent = Post::selectFirst(['guid', 'author-link', 'owner-link'], ['id' => $item['parent']]);
 
-                       $thrparent = Post::selectFirst(['guid', 'author-link', 'owner-link', 'plink'], ['uid' => $owner["uid"], 'uri' => $item['thr-parent']]);
+                       $thrparent = Post::selectFirst(['guid', 'author-link', 'owner-link', 'plink'], ['uid' => $owner['uid'], 'uri' => $item['thr-parent']]);
 
                        if (DBA::isResult($thrparent)) {
-                               $mentioned[$thrparent["author-link"]] = $thrparent["author-link"];
-                               $mentioned[$thrparent["owner-link"]] = $thrparent["owner-link"];
-                               $parent_plink = $thrparent["plink"];
+                               $mentioned[$thrparent['author-link']] = $thrparent['author-link'];
+                               $mentioned[$thrparent['owner-link']]  = $thrparent['owner-link'];
+                               $parent_plink                         = $thrparent['plink'];
+                       } elseif (DBA::isResult($parent)) {
+                               $mentioned[$parent['author-link']] = $parent['author-link'];
+                               $mentioned[$parent['owner-link']]  = $parent['owner-link'];
+                               $parent_plink                      = DI::baseUrl() . '/display/' . $parent['guid'];
                        } else {
-                               $mentioned[$parent["author-link"]] = $parent["author-link"];
-                               $mentioned[$parent["owner-link"]] = $parent["owner-link"];
-                               $parent_plink = DI::baseUrl()."/display/".$parent["guid"];
+                               DI::logger()->notice('Missing parent and thr-parent for child item', ['item' => $item]);
                        }
 
-                       $attributes = [
-                                       "ref" => $item['thr-parent'],
-                                       "href" => $parent_plink];
-                       XML::addElement($doc, $entry, "thr:in-reply-to", "", $attributes);
+                       if (isset($parent_plink)) {
+                               $attributes = [
+                                       'ref'  => $item['thr-parent'],
+                                       'href' => $parent_plink];
+                               XML::addElement($doc, $entry, 'thr:in-reply-to', '', $attributes);
 
-                       $attributes = [
-                                       "rel" => "related",
-                                       "href" => $parent_plink];
-                       XML::addElement($doc, $entry, "link", "", $attributes);
+                               $attributes = [
+                                       'rel'  => 'related',
+                                       'href' => $parent_plink];
+                               XML::addElement($doc, $entry, 'link', '', $attributes);
+                       }
                }
 
                if (intval($item['parent']) > 0) {