]> git.mxchange.org Git - friendica.git/blobdiff - src/Protocol/Feed.php
Merge pull request #12007 from annando/more-constants
[friendica.git] / src / Protocol / Feed.php
index 6428fca66277ed70150b0a63c8abaefe551e532b..907dfd8b99763dcd49626a0e19c3487e5ddce098 100644 (file)
@@ -24,15 +24,18 @@ namespace Friendica\Protocol;
 use DOMDocument;
 use DOMElement;
 use DOMXPath;
+use Friendica\App;
 use Friendica\Content\PageInfo;
 use Friendica\Content\Text\BBCode;
 use Friendica\Content\Text\HTML;
 use Friendica\Core\Cache\Enum\Duration;
 use Friendica\Core\Logger;
 use Friendica\Core\Protocol;
+use Friendica\Core\Worker;
 use Friendica\Database\DBA;
 use Friendica\DI;
 use Friendica\Model\Contact;
+use Friendica\Model\Conversation;
 use Friendica\Model\Item;
 use Friendica\Model\Post;
 use Friendica\Model\Tag;
@@ -98,9 +101,11 @@ class Feed
 
                $author = [];
                $entries = null;
+               $protocol = Conversation::PARCEL_UNKNOWN;
 
                // Is it RDF?
                if ($xpath->query('/rdf:RDF/rss:channel')->length > 0) {
+                       $protocol = Conversation::PARCEL_RDF;
                        $author['author-link'] = XML::getFirstNodeValue($xpath, '/rdf:RDF/rss:channel/rss:link/text()');
                        $author['author-name'] = XML::getFirstNodeValue($xpath, '/rdf:RDF/rss:channel/rss:title/text()');
 
@@ -112,6 +117,7 @@ class Feed
 
                // Is it Atom?
                if ($xpath->query('/atom:feed')->length > 0) {
+                       $protocol = Conversation::PARCEL_ATOM;
                        $alternate = XML::getFirstAttributes($xpath, "atom:link[@rel='alternate']");
                        if (is_object($alternate)) {
                                foreach ($alternate as $attribute) {
@@ -195,6 +201,7 @@ class Feed
 
                // Is it RSS?
                if ($xpath->query('/rss/channel')->length > 0) {
+                       $protocol = Conversation::PARCEL_RSS;
                        $author['author-link'] = XML::getFirstNodeValue($xpath, '/rss/channel/link/text()');
 
                        $author['author-name'] = XML::getFirstNodeValue($xpath, '/rss/channel/title/text()');
@@ -250,6 +257,8 @@ class Feed
                $header = [];
                $header['uid'] = $importer['uid'] ?? 0;
                $header['network'] = Protocol::FEED;
+               $datarray['protocol'] = $protocol;
+               $datarray['direction'] = Conversation::PULL;
                $header['wall'] = 0;
                $header['origin'] = 0;
                $header['gravity'] = GRAVITY_PARENT;
@@ -313,7 +322,7 @@ class Feed
                                $item['uri'] = $guid;
 
                                // Don't use the GUID value directly but instead use it as a basis for the GUID
-                               $item['guid'] = Item::guidFromUri($guid, parse_url($guid, PHP_URL_HOST) ?? parse_url($item['plink'], PHP_URL_HOST) ?? '');
+                               $item['guid'] = Item::guidFromUri($guid, parse_url($guid, PHP_URL_HOST) ?? parse_url($item['plink'], PHP_URL_HOST));
                        }
 
                        if (empty($item['uri'])) {
@@ -618,12 +627,12 @@ class Feed
                        // Additionally we have to avoid conflicts with identical URI between imported feeds and these items.
                        if ($notify) {
                                $item['guid'] = Item::guidFromUri($orig_plink, DI::baseUrl()->getHostname());
-                               $item['uri'] = Item::newURI($item['uid'], $item['guid']);
+                               $item['uri'] = Item::newURI($item['guid']);
                                unset($item['thr-parent']);
                                unset($item['parent-uri']);
 
                                // Set the delivery priority for "remote self" to "medium"
-                               $notify = PRIORITY_MEDIUM;
+                               $notify = Worker::PRIORITY_MEDIUM;
                        }
 
                        $condition = ['uid' => $item['uid'], 'uri' => $item['uri']];
@@ -1027,8 +1036,8 @@ class Feed
                                break;
                }
 
-               $attributes = ['uri' => 'https://friendi.ca', 'version' => FRIENDICA_VERSION . '-' . DB_UPDATE_VERSION];
-               XML::addElement($doc, $root, 'generator', FRIENDICA_PLATFORM, $attributes);
+               $attributes = ['uri' => 'https://friendi.ca', 'version' => App::VERSION . '-' . DB_UPDATE_VERSION];
+               XML::addElement($doc, $root, 'generator', App::PLATFORM, $attributes);
                XML::addElement($doc, $root, 'id', DI::baseUrl() . '/profile/' . $owner['nick']);
                XML::addElement($doc, $root, 'title', $title);
                XML::addElement($doc, $root, 'subtitle', sprintf("Updates from %s on %s", $owner['name'], DI::config()->get('config', 'sitename')));