X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FProtocol%2FOStatus.php;h=fe8f060aa3fffdf68ca6da5205fd5b08516c5467;hb=341d8860d15cd2224a3595dfa3c553b03658ef60;hp=7e17ab9f98e5179c5b23d0a9e40cd4462a2a2f1d;hpb=e1bd8fdba09f213373e8ecb9e1a30a408bdef82d;p=friendica.git diff --git a/src/Protocol/OStatus.php b/src/Protocol/OStatus.php index 7e17ab9f98..fe8f060aa3 100644 --- a/src/Protocol/OStatus.php +++ b/src/Protocol/OStatus.php @@ -1,6 +1,6 @@ $contact["id"]], $current); if (!empty($author["author-avatar"]) && ($author["author-avatar"] != $current['avatar'])) { - Logger::log("Update profile picture for contact ".$contact["id"], Logger::DEBUG); + Logger::info("Update profile picture for contact ".$contact["id"]); Contact::updateAvatar($contact["id"], $author["author-avatar"]); } @@ -336,7 +336,7 @@ class OStatus self::$conv_list = []; } - Logger::log('Import OStatus message for user ' . $importer['uid'], Logger::DEBUG); + Logger::info('Import OStatus message for user ' . $importer['uid']); if ($xml == "") { return false; @@ -362,7 +362,7 @@ class OStatus foreach ($hub_attributes as $hub_attribute) { if ($hub_attribute->name == "href") { $hub = $hub_attribute->textContent; - Logger::log("Found hub ".$hub, Logger::DEBUG); + Logger::info("Found hub ".$hub); } } } @@ -440,27 +440,27 @@ class OStatus if (in_array($item["verb"], [Activity::O_UNFAVOURITE, Activity::UNFAVORITE])) { // Ignore "Unfavorite" message - Logger::log("Ignore unfavorite message ".print_r($item, true), Logger::DEBUG); + Logger::info("Ignore unfavorite message ", ['item' => $item]); continue; } // Deletions come with the same uri, so we check for duplicates after processing deletions if (Post::exists(['uid' => $importer["uid"], 'uri' => $item["uri"]])) { - Logger::log('Post with URI '.$item["uri"].' already existed for user '.$importer["uid"].'.', Logger::DEBUG); + Logger::info('Post with URI '.$item["uri"].' already existed for user '.$importer["uid"].'.'); continue; } else { - Logger::log('Processing post with URI '.$item["uri"].' for user '.$importer["uid"].'.', Logger::DEBUG); + Logger::info('Processing post with URI '.$item["uri"].' for user '.$importer["uid"].'.'); } if ($item["verb"] == Activity::JOIN) { // ignore "Join" messages - Logger::log("Ignore join message ".print_r($item, true), Logger::DEBUG); + Logger::info("Ignore join message ", ['item' => $item]); continue; } if ($item["verb"] == "http://mastodon.social/schema/1.0/block") { // ignore mastodon "block" messages - Logger::log("Ignore block message ".print_r($item, true), Logger::DEBUG); + Logger::info("Ignore block message ", ['item' => $item]); continue; } @@ -477,7 +477,7 @@ class OStatus if ($item["verb"] == Activity::FAVORITE) { $orig_uri = $xpath->query("activity:object/atom:id", $entry)->item(0)->nodeValue; - Logger::log("Favorite ".$orig_uri." ".print_r($item, true)); + Logger::notice("Favorite", ['uri' => $orig_uri, 'item' => $item]); $item["verb"] = Activity::LIKE; $item["thr-parent"] = $orig_uri; @@ -487,26 +487,29 @@ class OStatus // http://activitystrea.ms/schema/1.0/rsvp-yes if (!in_array($item["verb"], [Activity::POST, Activity::LIKE, Activity::SHARE])) { - Logger::log("Unhandled verb ".$item["verb"]." ".print_r($item, true), Logger::DEBUG); + Logger::info("Unhandled verb", ['verb' => $item["verb"], 'item' => $item]); } self::processPost($xpath, $entry, $item, $importer); if ($initialize && (count(self::$itemlist) > 0)) { if (self::$itemlist[0]['uri'] == self::$itemlist[0]['thr-parent']) { + $uid = self::$itemlist[0]['uid']; // We will import it everytime, when it is started by our contacts - $valid = Contact::isSharingByURL(self::$itemlist[0]['author-link'], self::$itemlist[0]['uid']); + $valid = Contact::isSharingByURL(self::$itemlist[0]['author-link'], $uid); if (!$valid) { // If not, then it depends on this setting - $valid = ((self::$itemlist[0]['uid'] == 0) || !DI::pConfig()->get(self::$itemlist[0]['uid'], 'system', 'accept_only_sharer', false)); + $valid = !$uid || DI::pConfig()->get($uid, 'system', 'accept_only_sharer') != Item::COMPLETION_NONE; + if ($valid) { - Logger::log("Item with uri ".self::$itemlist[0]['uri']." will be imported due to the system settings.", Logger::DEBUG); + Logger::info("Item with uri ".self::$itemlist[0]['uri']." will be imported due to the system settings."); } } else { - Logger::log("Item with uri ".self::$itemlist[0]['uri']." belongs to a contact (".self::$itemlist[0]['contact-id']."). It will be imported.", Logger::DEBUG); + Logger::info("Item with uri ".self::$itemlist[0]['uri']." belongs to a contact (".self::$itemlist[0]['contact-id']."). It will be imported."); } - if ($valid) { + + if ($valid && DI::pConfig()->get($uid, 'system', 'accept_only_sharer') != Item::COMPLETION_LIKE) { // Never post a thread when the only interaction by our contact was a like $valid = false; $verbs = [Activity::POST, Activity::SHARE]; @@ -516,7 +519,7 @@ class OStatus } } if ($valid) { - Logger::log("Item with uri ".self::$itemlist[0]['uri']." will be imported since the thread contains posts or shares.", Logger::DEBUG); + Logger::info("Item with uri ".self::$itemlist[0]['uri']." will be imported since the thread contains posts or shares."); } } } else { @@ -535,18 +538,18 @@ class OStatus foreach (self::$itemlist as $item) { $found = Post::exists(['uid' => $importer["uid"], 'uri' => $item["uri"]]); if ($found) { - Logger::log("Item with uri ".$item["uri"]." for user ".$importer["uid"]." already exists.", Logger::DEBUG); + Logger::notice("Item with uri ".$item["uri"]." for user ".$importer["uid"]." already exists."); } elseif ($item['contact-id'] < 0) { - Logger::log("Item with uri ".$item["uri"]." is from a blocked contact.", Logger::DEBUG); + Logger::notice("Item with uri ".$item["uri"]." is from a blocked contact."); } else { $ret = Item::insert($item); - Logger::log("Item with uri ".$item["uri"]." for user ".$importer["uid"].' stored. Return value: '.$ret); + Logger::info("Item with uri ".$item["uri"]." for user ".$importer["uid"].' stored. Return value: '.$ret); } } } self::$itemlist = []; } - Logger::log('Processing done for post with URI '.$item["uri"].' for user '.$importer["uid"].'.', Logger::DEBUG); + Logger::info('Processing done for post with URI '.$item["uri"].' for user '.$importer["uid"].'.'); } return true; } @@ -562,13 +565,13 @@ class OStatus { $condition = ['uid' => $item['uid'], 'author-id' => $item['author-id'], 'uri' => $item['uri']]; if (!Post::exists($condition)) { - Logger::log('Item from '.$item['author-link'].' with uri '.$item['uri'].' for user '.$item['uid']." wasn't found. We don't delete it."); + Logger::notice('Item from '.$item['author-link'].' with uri '.$item['uri'].' for user '.$item['uid']." wasn't found. We don't delete it."); return; } Item::markForDeletion($condition); - Logger::log('Deleted item with uri '.$item['uri'].' for user '.$item['uid']); + Logger::notice('Deleted item with uri '.$item['uri'].' for user '.$item['uid']); } /** @@ -697,7 +700,7 @@ class OStatus self::fetchRelated($related, $item["thr-parent"], $importer); } } else { - Logger::log('Reply with URI '.$item["uri"].' already existed for user '.$importer["uid"].'.', Logger::DEBUG); + Logger::info('Reply with URI '.$item["uri"].' already existed for user '.$importer["uid"].'.'); } } else { $item["thr-parent"] = $item["uri"]; @@ -728,7 +731,7 @@ class OStatus self::$conv_list[$conversation] = true; - $curlResult = DI::httpClient()->get($conversation, [HTTPClientOptions::ACCEPT_CONTENT => ['application/atom+xml', 'text/html']]); + $curlResult = DI::httpClient()->get($conversation, HttpClientAccept::ATOM_XML); if (!$curlResult->isSuccess() || empty($curlResult->getBody())) { return; @@ -758,7 +761,7 @@ class OStatus } } if ($file != '') { - $conversation_atom = DI::httpClient()->get($attribute['href']); + $conversation_atom = DI::httpClient()->get($attribute['href'], HttpClientAccept::ATOM_XML); if ($conversation_atom->isSuccess()) { $xml = $conversation_atom->getBody(); @@ -845,7 +848,7 @@ class OStatus $conv_data['source'] = $doc2->saveXML(); - Logger::log('Store conversation data for uri '.$conv_data['uri'], Logger::DEBUG); + Logger::info('Store conversation data for uri '.$conv_data['uri']); Conversation::insert($conv_data); } } @@ -865,14 +868,14 @@ class OStatus private static function fetchSelf($self, array &$item) { $condition = ['item-uri' => $self, 'protocol' => [Conversation::PARCEL_DFRN, - Conversation::PARCEL_DIASPORA_DFRN, Conversation::PARCEL_LEGACY_DFRN, - Conversation::PARCEL_LOCAL_DFRN, Conversation::PARCEL_DIRECT, Conversation::PARCEL_SALMON]]; + Conversation::PARCEL_DIASPORA_DFRN, Conversation::PARCEL_LOCAL_DFRN, + Conversation::PARCEL_DIRECT, Conversation::PARCEL_SALMON]]; if (DBA::exists('conversation', $condition)) { - Logger::log('Conversation '.$item['uri'].' is already stored.', Logger::DEBUG); + Logger::info('Conversation '.$item['uri'].' is already stored.'); return; } - $curlResult = DI::httpClient()->get($self); + $curlResult = DI::httpClient()->get($self, HttpClientAccept::ATOM_XML); if (!$curlResult->isSuccess()) { return; @@ -889,7 +892,7 @@ class OStatus $item["source"] = $xml; $item["direction"] = Conversation::PULL; - Logger::log('Conversation '.$item['uri'].' is now fetched.', Logger::DEBUG); + Logger::info('Conversation '.$item['uri'].' is now fetched.'); } /** @@ -905,24 +908,24 @@ class OStatus private static function fetchRelated($related, $related_uri, $importer) { $condition = ['item-uri' => $related_uri, 'protocol' => [Conversation::PARCEL_DFRN, - Conversation::PARCEL_DIASPORA_DFRN, Conversation::PARCEL_LEGACY_DFRN, - Conversation::PARCEL_LOCAL_DFRN, Conversation::PARCEL_DIRECT, Conversation::PARCEL_SALMON]]; + Conversation::PARCEL_DIASPORA_DFRN, Conversation::PARCEL_LOCAL_DFRN, + Conversation::PARCEL_DIRECT, Conversation::PARCEL_SALMON]]; $conversation = DBA::selectFirst('conversation', ['source', 'protocol'], $condition); if (DBA::isResult($conversation)) { $stored = true; $xml = $conversation['source']; if (self::process($xml, $importer, $contact, $hub, $stored, false, Conversation::PULL)) { - Logger::log('Got valid cached XML for URI '.$related_uri, Logger::DEBUG); + Logger::info('Got valid cached XML for URI '.$related_uri); return; } if ($conversation['protocol'] == Conversation::PARCEL_SALMON) { - Logger::log('Delete invalid cached XML for URI '.$related_uri, Logger::DEBUG); + Logger::info('Delete invalid cached XML for URI '.$related_uri); DBA::delete('conversation', ['item-uri' => $related_uri]); } } $stored = false; - $curlResult = DI::httpClient()->get($related, [HTTPClientOptions::ACCEPT_CONTENT => ['application/atom+xml', 'text/html']]); + $curlResult = DI::httpClient()->get($related, HttpClientAccept::ATOM_XML); if (!$curlResult->isSuccess() || empty($curlResult->getBody())) { return; @@ -932,7 +935,7 @@ class OStatus if ($curlResult->inHeader('Content-Type') && in_array('application/atom+xml', $curlResult->getHeader('Content-Type'))) { - Logger::log('Directly fetched XML for URI ' . $related_uri, Logger::DEBUG); + Logger::info('Directly fetched XML for URI ' . $related_uri); $xml = $curlResult->getBody(); } @@ -954,10 +957,10 @@ class OStatus } } if ($atom_file != '') { - $curlResult = DI::httpClient()->get($atom_file); + $curlResult = DI::httpClient()->get($atom_file, HttpClientAccept::ATOM_XML); if ($curlResult->isSuccess()) { - Logger::log('Fetched XML for URI ' . $related_uri, Logger::DEBUG); + Logger::info('Fetched XML for URI ' . $related_uri); $xml = $curlResult->getBody(); } } @@ -966,10 +969,10 @@ class OStatus // Workaround for older GNU Social servers if (($xml == '') && strstr($related, '/notice/')) { - $curlResult = DI::httpClient()->get(str_replace('/notice/', '/api/statuses/show/', $related) . '.atom'); + $curlResult = DI::httpClient()->get(str_replace('/notice/', '/api/statuses/show/', $related) . '.atom', HttpClientAccept::ATOM_XML); if ($curlResult->isSuccess()) { - Logger::log('GNU Social workaround to fetch XML for URI ' . $related_uri, Logger::DEBUG); + Logger::info('GNU Social workaround to fetch XML for URI ' . $related_uri); $xml = $curlResult->getBody(); } } @@ -977,10 +980,10 @@ class OStatus // Even more worse workaround for GNU Social ;-) if ($xml == '') { $related_guess = self::convertHref($related_uri); - $curlResult = DI::httpClient()->get(str_replace('/notice/', '/api/statuses/show/', $related_guess) . '.atom'); + $curlResult = DI::httpClient()->get(str_replace('/notice/', '/api/statuses/show/', $related_guess) . '.atom', HttpClientAccept::ATOM_XML); if ($curlResult->isSuccess()) { - Logger::log('GNU Social workaround 2 to fetch XML for URI ' . $related_uri, Logger::DEBUG); + Logger::info('GNU Social workaround 2 to fetch XML for URI ' . $related_uri); $xml = $curlResult->getBody(); } } @@ -991,7 +994,7 @@ class OStatus $conversation = DBA::selectFirst('conversation', ['source'], $condition); if (DBA::isResult($conversation)) { $stored = true; - Logger::log('Got cached XML from conversation for URI '.$related_uri, Logger::DEBUG); + Logger::info('Got cached XML from conversation for URI '.$related_uri); $xml = $conversation['source']; } } @@ -999,7 +1002,7 @@ class OStatus if ($xml != '') { self::process($xml, $importer, $contact, $hub, $stored, false, Conversation::PULL); } else { - Logger::log("XML couldn't be fetched for URI: ".$related_uri." - href: ".$related, Logger::DEBUG); + Logger::info("XML couldn't be fetched for URI: ".$related_uri." - href: ".$related); } return; } @@ -1536,7 +1539,7 @@ class OStatus private static function likeEntry(DOMDocument $doc, array $item, array $owner, $toplevel) { if (($item['gravity'] != GRAVITY_PARENT) && (Strings::normaliseLink($item["author-link"]) != Strings::normaliseLink($owner["url"]))) { - Logger::log("OStatus entry is from author ".$owner["url"]." - not from ".$item["author-link"].". Quitting.", Logger::DEBUG); + Logger::info("OStatus entry is from author ".$owner["url"]." - not from ".$item["author-link"].". Quitting."); } $entry = self::entryHeader($doc, $owner, $item, $toplevel); @@ -1685,7 +1688,7 @@ class OStatus private static function noteEntry(DOMDocument $doc, array $item, array $owner, $toplevel) { if (($item['gravity'] != GRAVITY_PARENT) && (Strings::normaliseLink($item["author-link"]) != Strings::normaliseLink($owner["url"]))) { - Logger::log("OStatus entry is from author ".$owner["url"]." - not from ".$item["author-link"].". Quitting.", Logger::DEBUG); + Logger::info("OStatus entry is from author ".$owner["url"]." - not from ".$item["author-link"].". Quitting."); } if (!$toplevel) { @@ -1728,6 +1731,7 @@ class OStatus if ($owner['contact-type'] == Contact::TYPE_COMMUNITY) { $contact = Contact::getByURL($item['author-link']) ?: $owner; + $contact['nickname'] = $contact['nickname'] ?? $contact['nick']; $author = self::addAuthor($doc, $contact, false); $entry->appendChild($author); } @@ -1983,7 +1987,7 @@ class OStatus if ((time() - strtotime($owner['last-item'])) < 15*60) { $result = DI::cache()->get($cachekey); if (!$nocache && !is_null($result)) { - Logger::log('Feed duration: ' . number_format(microtime(true) - $stamp, 3) . ' - ' . $owner_nick . ' - ' . $filter . ' - ' . $previous_created . ' (cached)', Logger::DEBUG); + Logger::info('Feed duration: ' . number_format(microtime(true) - $stamp, 3) . ' - ' . $owner_nick . ' - ' . $filter . ' - ' . $previous_created . ' (cached)'); $last_update = $result['last_update']; return $result['feed']; } @@ -2048,7 +2052,7 @@ class OStatus $msg = ['feed' => $feeddata, 'last_update' => $last_update]; DI::cache()->set($cachekey, $msg, Duration::QUARTER_HOUR); - Logger::log('Feed duration: ' . number_format(microtime(true) - $stamp, 3) . ' - ' . $owner_nick . ' - ' . $filter . ' - ' . $previous_created, Logger::DEBUG); + Logger::info('Feed duration: ' . number_format(microtime(true) - $stamp, 3) . ' - ' . $owner_nick . ' - ' . $filter . ' - ' . $previous_created); return $feeddata; }