]> git.mxchange.org Git - friendica.git/blobdiff - src/Protocol/Feed.php
Merge pull request #8549 from annando/suppress-xml-log
[friendica.git] / src / Protocol / Feed.php
index 397edf3b41b4817f288dd1504db41526636ba9e7..14a3c28ab9b002dd1446841dd848a376c4715cdb 100644 (file)
@@ -29,6 +29,7 @@ use Friendica\Core\Protocol;
 use Friendica\Database\DBA;
 use Friendica\DI;
 use Friendica\Model\Item;
+use Friendica\Model\Tag;
 use Friendica\Util\Network;
 use Friendica\Util\ParseUrl;
 use Friendica\Util\XML;
@@ -385,6 +386,7 @@ class Feed {
                        }
 
                        $tags = '';
+                       $taglist = [];
                        $categories = $xpath->query("category", $entry);
                        foreach ($categories AS $category) {
                                $hashtag = $category->nodeValue;
@@ -394,6 +396,7 @@ class Feed {
 
                                $taglink = "#[url=" . DI::baseUrl() . "/search?tag=" . $hashtag . "]" . $hashtag . "[/url]";
                                $tags .= $taglink;
+                               $taglist[] = $hashtag;
                        }
 
                        $body = trim(XML::getFirstNodeValue($xpath, 'atom:content/text()', $entry));
@@ -475,6 +478,7 @@ class Feed {
                                $item["title"] = "";
                                $item["body"] = $item["body"] . add_page_info($item["plink"], false, $preview, ($contact["fetch_further_information"] == 2), $contact["ffi_keyword_blacklist"]);
                                $item["tag"] = add_page_keywords($item["plink"], $preview, ($contact["fetch_further_information"] == 2), $contact["ffi_keyword_blacklist"]);
+                               $taglist = get_page_keywords($item["plink"], $preview, ($contact["fetch_further_information"] == 2), $contact["ffi_keyword_blacklist"]);
                                $item["object-type"] = Activity\ObjectType::BOOKMARK;
                                unset($item["attach"]);
                        } else {
@@ -488,8 +492,11 @@ class Feed {
                                        } else {
                                                // @todo $preview is never set in this case, is it intended? - @MrPetovan 2018-02-13
                                                $item["tag"] = add_page_keywords($item["plink"], $preview, true, $contact["ffi_keyword_blacklist"]);
+                                               $taglist = get_page_keywords($item["plink"], $preview, true, $contact["ffi_keyword_blacklist"]);
                                        }
                                        $item["body"] .= "\n" . $item['tag'];
+                               } else {
+                                       $taglist = [];
                                }
 
                                // Add the link to the original feed entry if not present in feed
@@ -520,6 +527,13 @@ class Feed {
                                $id = Item::insert($item, false, $notify);
 
                                Logger::info("Feed for contact " . $contact["url"] . " stored under id " . $id);
+
+                               if (!empty($id) && !empty($taglist)) {
+                                       $feeditem = Item::selectFirst(['uri-id'], ['id' => $id]);
+                                       foreach ($taglist as $tag) {
+                                               Tag::store($feeditem['uri-id'], Tag::HASHTAG, $tag);
+                                       }                                       
+                               }
                        }
                }