]> git.mxchange.org Git - friendica.git/blobdiff - src/Protocol/OStatus.php
Merge pull request #8556 from annando/close-db-connection
[friendica.git] / src / Protocol / OStatus.php
index 96b8447b4ccedc5e38031cc2a373f355c91a09a9..ccec6d9348885acdcb53780a3c4f95e2da813ab7 100644 (file)
@@ -35,6 +35,8 @@ use Friendica\Model\Contact;
 use Friendica\Model\Conversation;
 use Friendica\Model\GContact;
 use Friendica\Model\Item;
+use Friendica\Model\ItemURI;
+use Friendica\Model\Tag;
 use Friendica\Model\User;
 use Friendica\Network\Probe;
 use Friendica\Util\DateTimeFormat;
@@ -247,7 +249,7 @@ class OStatus
                        $gcid = GContact::update($contact);
 
                        GContact::link($gcid, $contact["uid"], $contact["id"]);
-               } elseif ($contact["network"] != Protocol::DFRN) {
+               } elseif (empty($contact["network"]) || ($contact["network"] != Protocol::DFRN)) {
                        $contact = [];
                }
 
@@ -437,6 +439,7 @@ class OStatus
                        $item = array_merge($header, $author);
 
                        $item["uri"] = XML::getFirstNodeValue($xpath, 'atom:id/text()', $entry);
+                       $item['uri-id'] = ItemURI::insert(['uri' => $item['uri']]);
 
                        $item["verb"] = XML::getFirstNodeValue($xpath, 'activity:verb/text()', $entry);
 
@@ -585,7 +588,7 @@ class OStatus
                        return;
                }
 
-               Item::delete($condition);
+               Item::markForDeletion($condition);
 
                Logger::log('Deleted item with uri '.$item['uri'].' for user '.$item['uid']);
        }
@@ -660,6 +663,9 @@ class OStatus
                                                }
 
                                                $item['tag'] .= '#[url=' . DI::baseUrl() . '/search?tag=' . $term . ']' . $term . '[/url]';
+
+                                               // Store the hashtag
+                                               Tag::store($item['uri-id'], Tag::HASHTAG, $term);
                                        }
                                }
                        }
@@ -703,6 +709,8 @@ class OStatus
                        $item["body"] = add_page_info_to_body($item["body"]);
                }
 
+               Tag::storeFromBody($item['uri-id'], $item['body']);
+
                // Mastodon Content Warning
                if (($item["verb"] == Activity::POST) && $xpath->evaluate('boolean(atom:summary)', $entry)) {
                        $clear_text = XML::getFirstNodeValue($xpath, 'atom:summary/text()', $entry);