X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FProtocol%2FFeed.php;h=705a094c38149b433b454fc2b5626181ebb9b598;hb=51ee24f65220f4d5e3b0717767fa399e1a5a58e5;hp=f13716e4b7e9a6e08c8db8c3b68accd326a47035;hpb=2fba7ed477b25b81c886d713bfb8d44b0c1425a8;p=friendica.git diff --git a/src/Protocol/Feed.php b/src/Protocol/Feed.php index f13716e4b7..705a094c38 100644 --- a/src/Protocol/Feed.php +++ b/src/Protocol/Feed.php @@ -14,7 +14,8 @@ use Friendica\Core\Protocol; use Friendica\Core\System; use Friendica\Database\DBA; use Friendica\Model\Item; -use Friendica\Protocol\Activity\ANamespace; +use Friendica\Protocol\ActivityNamespace; +use Friendica\Util\ParseUrl; use Friendica\Util\Network; use Friendica\Util\XML; @@ -60,13 +61,13 @@ class Feed { $doc = new DOMDocument(); @$doc->loadXML(trim($xml)); $xpath = new DOMXPath($doc); - $xpath->registerNamespace('atom', ANamespace::ATOM1); + $xpath->registerNamespace('atom', ActivityNamespace::ATOM1); $xpath->registerNamespace('dc', "http://purl.org/dc/elements/1.1/"); $xpath->registerNamespace('content', "http://purl.org/rss/1.0/modules/content/"); $xpath->registerNamespace('rdf', "http://www.w3.org/1999/02/22-rdf-syntax-ns#"); $xpath->registerNamespace('rss', "http://purl.org/rss/1.0/"); $xpath->registerNamespace('media', "http://search.yahoo.com/mrss/"); - $xpath->registerNamespace('poco', ANamespace::POCO); + $xpath->registerNamespace('poco', ActivityNamespace::POCO); $author = []; $entries = null; @@ -200,7 +201,7 @@ class Feed { $header["gravity"] = GRAVITY_PARENT; $header["private"] = 2; $header["verb"] = Activity::POST; - $header["object-type"] = Activity::OBJ_NOTE; + $header["object-type"] = Activity\ObjectType::NOTE; $header["contact-id"] = $contact["id"]; @@ -399,7 +400,7 @@ class Feed { // Remove a possible link to the item itself $item["body"] = str_replace($item["plink"], '', $item["body"]); - $item["body"] = preg_replace('/\[url\=\](\w+.*?)\[\/url\]/i', '', $item["body"]); + $item["body"] = trim(preg_replace('/\[url\=\](\w+.*?)\[\/url\]/i', '', $item["body"])); // Replace the content when the title is longer than the body $replace = (strlen($item["title"]) > strlen($item["body"])); @@ -415,13 +416,26 @@ class Feed { } if ($replace) { - $item["body"] = $item["title"]; + $item["body"] = trim($item["title"]); } + + $data = ParseUrl::getSiteinfoCached($item['plink'], true); + if (!empty($data['text']) && !empty($data['title']) && (mb_strlen($item['body']) < mb_strlen($data['text']))) { + // When the fetched page info text is longer than the body, we do try to enhance the body + if (!empty($item['body']) && (strpos($data['title'], $item['body']) === false) && (strpos($data['text'], $item['body']) === false)) { + // The body is not part of the fetched page info title or page info text. So we add the text to the body + $item['body'] .= "\n\n" . $data['text']; + } else { + // Else we replace the body with the page info text + $item['body'] = $data['text']; + } + } + // We always strip the title since it will be added in the page information $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"]); - $item["object-type"] = Activity::OBJ_BOOKMARK; + $item["object-type"] = Activity\ObjectType::BOOKMARK; unset($item["attach"]); } else { if (!empty($summary)) {