X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FProtocol%2FFeed.php;h=c04e40b5e520d8871631e826c3310cc211b15ffe;hb=e3ee9ee501f6a02ba64b95cd593f7f2cbffa1631;hp=8afdb25462adeca410b737bac9ca931f1e86e7bb;hpb=f68667e301728426923a3e4abf07dcf32b002f9f;p=friendica.git diff --git a/src/Protocol/Feed.php b/src/Protocol/Feed.php index 8afdb25462..c04e40b5e5 100644 --- a/src/Protocol/Feed.php +++ b/src/Protocol/Feed.php @@ -10,12 +10,13 @@ use Friendica\Database\DBM; use Friendica\Core\System; use Friendica\Model\Item; use Friendica\Util\Network; +use Friendica\Content\Text\HTML; + use dba; use DOMDocument; use DOMXPath; require_once 'include/dba.php'; -require_once 'include/html2bbcode.php'; require_once 'include/items.php'; /** @@ -68,6 +69,7 @@ class Feed { $xpath->registerNamespace('poco', NAMESPACE_POCO); $author = []; + $entries = null; // Is it RDF? if ($xpath->query('/rdf:RDF/rss:channel')->length > 0) { @@ -84,9 +86,9 @@ class Feed { if ($xpath->query('/atom:feed')->length > 0) { $alternate = $xpath->query("atom:link[@rel='alternate']")->item(0)->attributes; if (is_object($alternate)) { - foreach ($alternate AS $attributes) { - if ($attributes->name == "href") { - $author["author-link"] = $attributes->textContent; + foreach ($alternate AS $attribute) { + if ($attribute->name == "href") { + $author["author-link"] = $attribute->textContent; } } } @@ -97,9 +99,9 @@ class Feed { if ($author["author-link"] == "") { $self = $xpath->query("atom:link[@rel='self']")->item(0)->attributes; if (is_object($self)) { - foreach ($self AS $attributes) { - if ($attributes->name == "href") { - $author["author-link"] = $attributes->textContent; + foreach ($self AS $attribute) { + if ($attribute->name == "href") { + $author["author-link"] = $attribute->textContent; } } } @@ -139,9 +141,9 @@ class Feed { } $avatar = $xpath->evaluate("atom:author/atom:link[@rel='avatar']")->item(0)->attributes; if (is_object($avatar)) { - foreach ($avatar AS $attributes) { - if ($attributes->name == "href") { - $author["author-avatar"] = $attributes->textContent; + foreach ($avatar AS $attribute) { + if ($attribute->name == "href") { + $author["author-avatar"] = $attribute->textContent; } } } @@ -206,13 +208,10 @@ class Feed { } $items = []; + // Importing older entries first + for($i = $entries->length - 1; $i >= 0;--$i) { + $entry = $entries->item($i); - $entrylist = []; - - foreach ($entries AS $entry) { - $entrylist[] = $entry; - } - foreach (array_reverse($entrylist) AS $entry) { $item = array_merge($header, $author); $alternate = $xpath->query("atom:link[@rel='alternate']", $entry)->item(0)->attributes; @@ -220,9 +219,9 @@ class Feed { $alternate = $xpath->query("atom:link", $entry)->item(0)->attributes; } if (is_object($alternate)) { - foreach ($alternate AS $attributes) { - if ($attributes->name == "href") { - $item["plink"] = $attributes->textContent; + foreach ($alternate AS $attribute) { + if ($attribute->name == "href") { + $item["plink"] = $attribute->textContent; } } } @@ -308,20 +307,20 @@ class Feed { $attachments = []; - $enclosures = $xpath->query("enclosure", $entry); + $enclosures = $xpath->query("enclosure|atom:link[@rel='enclosure']", $entry); foreach ($enclosures AS $enclosure) { $href = ""; $length = ""; $type = ""; $title = ""; - foreach ($enclosure->attributes AS $attributes) { - if ($attributes->name == "url") { - $href = $attributes->textContent; - } elseif ($attributes->name == "length") { - $length = $attributes->textContent; - } elseif ($attributes->name == "type") { - $type = $attributes->textContent; + foreach ($enclosure->attributes AS $attribute) { + if (in_array($attribute->name, ["url", "href"])) { + $href = $attribute->textContent; + } elseif ($attribute->name == "length") { + $length = $attribute->textContent; + } elseif ($attribute->name == "type") { + $type = $attribute->textContent; } } if (strlen($item["attach"])) { @@ -362,16 +361,15 @@ class Feed { if (self::titleIsBody($item["title"], $body)) { $item["title"] = ""; } - $item["body"] = html2bbcode($body, $basepath); + $item["body"] = HTML::toBBCode($body, $basepath); if (($item["body"] == '') && ($item["title"] != '')) { $item["body"] = $item["title"]; $item["title"] = ''; } + $preview = ''; if (!empty($contact["fetch_further_information"]) && ($contact["fetch_further_information"] < 3)) { - $preview = ""; - // Handle enclosures and treat them as preview picture foreach ($attachments AS $attachment) { if ($attachment["type"] == "image/jpeg") { @@ -410,6 +408,7 @@ class Feed { if (!empty($tags)) { $item["tag"] = $tags; } 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"]); } $item["body"] .= "\n".$item['tag']; @@ -431,6 +430,9 @@ class Feed { $item['guid'] = Item::guidFromUri($orig_plink, $a->get_hostname()); unset($item['uri']); unset($item['parent-uri']); + + // Set the delivery priority for "remote self" to "medium" + $notify = PRIORITY_MEDIUM; } $id = Item::insert($item, false, $notify);