]> git.mxchange.org Git - friendica.git/blobdiff - src/Protocol/OStatus.php
Merge pull request #4429 from MrPetovan/bug/4426-handle-auth-exceptions
[friendica.git] / src / Protocol / OStatus.php
index 87b894a717a60d48e528523562859cf0ac37d8e2..1ff13c55db3eae097cb641778f26e563811b74a6 100644 (file)
@@ -4,7 +4,6 @@
  */
 namespace Friendica\Protocol;
 
-use Friendica\App;
 use Friendica\Content\Text\BBCode;
 use Friendica\Core\Cache;
 use Friendica\Core\Config;
@@ -12,10 +11,12 @@ use Friendica\Core\L10n;
 use Friendica\Core\System;
 use Friendica\Database\DBM;
 use Friendica\Model\Contact;
-use Friendica\Model\GContact;
 use Friendica\Model\Conversation;
+use Friendica\Model\GContact;
+use Friendica\Model\Item;
 use Friendica\Network\Probe;
 use Friendica\Object\Image;
+use Friendica\Util\DateTimeFormat;
 use Friendica\Util\Lock;
 use Friendica\Util\Network;
 use Friendica\Util\XML;
@@ -24,7 +25,6 @@ use DOMDocument;
 use DOMXPath;
 
 require_once 'include/dba.php';
-require_once 'include/threads.php';
 require_once 'include/html2bbcode.php';
 require_once 'include/bbcode.php';
 require_once 'include/items.php';
@@ -198,7 +198,7 @@ class OStatus
                                $contact["location"] = $value;
                        }
 
-                       $contact['name-date'] = datetime_convert();
+                       $contact['name-date'] = DateTimeFormat::utcNow();
 
                        dba::update('contact', $contact, ['id' => $contact["id"]], $current);
 
@@ -219,7 +219,7 @@ class OStatus
                                                'nurl' => normalise_link($author["author-link"]),
                                                'nick' => $contact["nick"], 'alias' => $contact["alias"],
                                                'about' => $contact["about"], 'location' => $contact["location"],
-                                               'success_update' => datetime_convert(), 'last-update' => datetime_convert()];
+                                               'success_update' => DateTimeFormat::utcNow(), 'last-update' => DateTimeFormat::utcNow()];
 
                                dba::update('contact', $fields, ['id' => $cid], $old_contact);
 
@@ -455,12 +455,12 @@ class OStatus
                        }
 
                        if ($item["verb"] == ACTIVITY_FOLLOW) {
-                               new_follower($importer, $contact, $item, $nickname);
+                               Contact::addRelationship($importer, $contact, $item, $nickname);
                                continue;
                        }
 
                        if ($item["verb"] == NAMESPACE_OSTATUS."/unfollow") {
-                               lose_follower($importer, $contact, $item, $dummy);
+                               Contact::removeFollower($importer, $contact, $item, $dummy);
                                continue;
                        }
 
@@ -521,12 +521,12 @@ class OStatus
                                                        logger("Item with uri ".$item["uri"]." is from a blocked contact.", LOGGER_DEBUG);
                                                } else {
                                                        // We are having duplicated entries. Hopefully this solves it.
-                                                       if (Lock::set('ostatus_process_item_store')) {
-                                                               $ret = item_store($item);
-                                                               Lock::remove('ostatus_process_item_store');
+                                                       if (Lock::set('ostatus_process_item_insert')) {
+                                                               $ret = Item::insert($item);
+                                                               Lock::remove('ostatus_process_item_insert');
                                                                logger("Item with uri ".$item["uri"]." for user ".$importer["uid"].' stored. Return value: '.$ret);
                                                        } else {
-                                                               $ret = item_store($item);
+                                                               $ret = Item::insert($item);
                                                                logger("We couldn't lock - but tried to store the item anyway. Return value is ".$ret);
                                                        }
                                                }
@@ -552,16 +552,7 @@ class OStatus
                        return;
                }
 
-               // Currently we don't have a central deletion function that we could use in this case
-               // The function "item_drop" doesn't work for that case
-               dba::update(
-                       'item',
-                       ['deleted' => true, 'title' => '', 'body' => '',
-                                       'edited' => datetime_convert(), 'changed' => datetime_convert()],
-                       ['id' => $deleted["id"]]
-               );
-
-               delete_thread($deleted["id"], $deleted["parent-uri"]);
+               Item::deleteById($deleted["id"]);
 
                logger('Deleted item with uri '.$item['uri'].' for user '.$item['uid']);
        }
@@ -726,7 +717,7 @@ class OStatus
 
                self::$conv_list[$conversation] = true;
 
-               $conversation_data = Network::zFetchURL($conversation, false, $redirects, ['accept_content' => 'application/atom+xml, text/html']);
+               $conversation_data = Network::curl($conversation, false, $redirects, ['accept_content' => 'application/atom+xml, text/html']);
 
                if (!$conversation_data['success']) {
                        return;
@@ -754,7 +745,7 @@ class OStatus
                                        }
                                }
                                if ($file != '') {
-                                       $conversation_atom = Network::zFetchURL($attribute['href']);
+                                       $conversation_atom = Network::curl($attribute['href']);
 
                                        if ($conversation_atom['success']) {
                                                $xml = $conversation_atom['body'];
@@ -870,7 +861,7 @@ class OStatus
                        return;
                }
 
-               $self_data = Network::zFetchURL($self);
+               $self_data = Network::curl($self);
 
                if (!$self_data['success']) {
                        return;
@@ -915,7 +906,7 @@ class OStatus
                }
 
                $stored = false;
-               $related_data = Network::zFetchURL($related, false, $redirects, ['accept_content' => 'application/atom+xml, text/html']);
+               $related_data = Network::curl($related, false, $redirects, ['accept_content' => 'application/atom+xml, text/html']);
 
                if (!$related_data['success']) {
                        return;
@@ -946,7 +937,7 @@ class OStatus
                                        }
                                }
                                if ($atom_file != '') {
-                                       $related_atom = Network::zFetchURL($atom_file);
+                                       $related_atom = Network::curl($atom_file);
 
                                        if ($related_atom['success']) {
                                                logger('Fetched XML for URI '.$related_uri, LOGGER_DEBUG);
@@ -958,7 +949,7 @@ class OStatus
 
                // Workaround for older GNU Social servers
                if (($xml == '') && strstr($related, '/notice/')) {
-                       $related_atom = Network::zFetchURL(str_replace('/notice/', '/api/statuses/show/', $related).'.atom');
+                       $related_atom = Network::curl(str_replace('/notice/', '/api/statuses/show/', $related).'.atom');
 
                        if ($related_atom['success']) {
                                logger('GNU Social workaround to fetch XML for URI '.$related_uri, LOGGER_DEBUG);
@@ -969,7 +960,7 @@ class OStatus
                // Even more worse workaround for GNU Social ;-)
                if ($xml == '') {
                        $related_guess = OStatus::convertHref($related_uri);
-                       $related_atom = Network::zFetchURL(str_replace('/notice/', '/api/statuses/show/', $related_guess).'.atom');
+                       $related_atom = Network::curl(str_replace('/notice/', '/api/statuses/show/', $related_guess).'.atom');
 
                        if ($related_atom['success']) {
                                logger('GNU Social workaround 2 to fetch XML for URI '.$related_uri, LOGGER_DEBUG);
@@ -1272,7 +1263,7 @@ class OStatus
                XML::addElement($doc, $root, "title", $title);
                XML::addElement($doc, $root, "subtitle", sprintf("Updates from %s on %s", $owner["name"], $a->config["sitename"]));
                XML::addElement($doc, $root, "logo", $owner["photo"]);
-               XML::addElement($doc, $root, "updated", datetime_convert("UTC", "UTC", "now", ATOM_TIME));
+               XML::addElement($doc, $root, "updated", DateTimeFormat::utcNow(DateTimeFormat::ATOM));
 
                $author = self::addAuthor($doc, $owner);
                $root->appendChild($author);
@@ -1538,7 +1529,7 @@ class OStatus
                XML::addElement($doc, $source, "link", "", ["rel" => "alternate", "type" => "text/html", "href" => $contact["alias"]]);
                XML::addElement($doc, $source, "link", "", ["rel" => "self", "type" => "application/atom+xml", "href" => $contact["poll"]]);
                XML::addElement($doc, $source, "icon", $contact["photo"]);
-               XML::addElement($doc, $source, "updated", datetime_convert("UTC", "UTC", $contact["success_update"]."+00:00", ATOM_TIME));
+               XML::addElement($doc, $source, "updated", DateTimeFormat::utc($contact["success_update"]."+00:00", DateTimeFormat::ATOM));
 
                return $source;
        }
@@ -1922,8 +1913,8 @@ class OStatus
 
                XML::addElement($doc, $entry, "activity:verb", $verb);
 
-               XML::addElement($doc, $entry, "published", datetime_convert("UTC", "UTC", $item["created"]."+00:00", ATOM_TIME));
-               XML::addElement($doc, $entry, "updated", datetime_convert("UTC", "UTC", $item["edited"]."+00:00", ATOM_TIME));
+               XML::addElement($doc, $entry, "published", DateTimeFormat::utc($item["created"]."+00:00", DateTimeFormat::ATOM));
+               XML::addElement($doc, $entry, "updated", DateTimeFormat::utc($item["edited"]."+00:00", DateTimeFormat::ATOM));
        }
 
        /**
@@ -1996,7 +1987,7 @@ class OStatus
                        XML::addElement($doc, $entry, "ostatus:conversation", $conversation_uri, $attributes);
                }
 
-               $tags = item_getfeedtags($item);
+               $tags = item::getFeedTags($item);
 
                if (count($tags)) {
                        foreach ($tags as $t) {
@@ -2126,7 +2117,7 @@ class OStatus
                        $last_update = 'now -30 days';
                }
 
-               $check_date = datetime_convert('UTC', 'UTC', $last_update, 'Y-m-d H:i:s');
+               $check_date = DateTimeFormat::utc($last_update);
                $authorid = Contact::getIdForURL($owner["url"], 0);
 
                $sql_extra = '';