X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FProtocol%2FFeed.php;h=cbffd810c1d03b444faeedac9cd9ae201b2d623c;hb=b761760d6537a64b74d41bbe3a9e75a58254e947;hp=e5f205aa5a90712c7e439c8dd25fc4473b4a844a;hpb=bbe05f523fbb73e34a909e247afab9be77481f70;p=friendica.git diff --git a/src/Protocol/Feed.php b/src/Protocol/Feed.php index e5f205aa5a..cbffd810c1 100644 --- a/src/Protocol/Feed.php +++ b/src/Protocol/Feed.php @@ -1,6 +1,6 @@ Post\Media::UNKNOWN, 'url' => $href, 'mimetype' => $type, 'size' => $length]; + $attachment = ['uri-id' => -1, 'type' => Post\Media::UNKNOWN, 'url' => $href, 'mimetype' => $type, 'size' => $length]; $attachment = Post\Media::fetchAdditionalData($attachment); @@ -623,12 +624,14 @@ class Feed Logger::info('Stored feed', ['item' => $item]); $notify = Item::isRemoteSelf($contact, $item); + $item['wall'] = (bool)$notify; - // Distributed items should have a well formatted URI. - // Additionally we have to avoid conflicts with identical URI between imported feeds and these items. + // Distributed items should have a well-formatted URI. + // 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['guid']); + $item['guid'] = Item::guidFromUri($orig_plink, DI::baseUrl()->getHost()); + $item['uri'] = Item::newURI($item['guid']); + unset($item['plink']); unset($item['thr-parent']); unset($item['parent-uri']); @@ -915,28 +918,23 @@ class Feed * Updates the provided last_update parameter if the result comes from the * cache or it is empty * - * @param string $owner_nick Nickname of the feed owner + * @param array $owner owner-view record of the feed owner * @param string $last_update Date of the last update * @param integer $max_items Number of maximum items to fetch * @param string $filter Feed items filter (activity, posts or comments) * @param boolean $nocache Wether to bypass caching * * @return string Atom feed - * @throws \Friendica\Network\HTTPException\InternalServerErrorException + * @throws HTTPException\InternalServerErrorException * @throws \ImagickException */ - public static function atom(string $owner_nick, string $last_update, int $max_items = 300, string $filter = 'activity', bool $nocache = false) + public static function atom(array $owner, string $last_update, int $max_items = 300, string $filter = 'activity', bool $nocache = false) { $stamp = microtime(true); - $owner = User::getOwnerDataByNick($owner_nick); - if (!$owner) { - return; - } - - $cachekey = 'feed:feed:' . $owner_nick . ':' . $filter . ':' . $last_update; + $cachekey = 'feed:feed:' . $owner['nickname'] . ':' . $filter . ':' . $last_update; - // Display events in the users's timezone + // Display events in the user's timezone if (strlen($owner['timezone'])) { DI::app()->setTimeZone($owner['timezone']); } @@ -947,7 +945,7 @@ class Feed if ((time() - strtotime($owner['last-item'])) < 15*60) { $result = DI::cache()->get($cachekey); if (!$nocache && !is_null($result)) { - Logger::info('Cached feed duration', ['seconds' => number_format(microtime(true) - $stamp, 3), 'nick' => $owner_nick, 'filter' => $filter, 'created' => $previous_created]); + Logger::info('Cached feed duration', ['seconds' => number_format(microtime(true) - $stamp, 3), 'nick' => $owner['nickname'], 'filter' => $filter, 'created' => $previous_created]); return $result['feed']; } } @@ -1001,7 +999,7 @@ class Feed $msg = ['feed' => $feeddata, 'last_update' => $last_update]; DI::cache()->set($cachekey, $msg, Duration::QUARTER_HOUR); - Logger::info('Feed duration', ['seconds' => number_format(microtime(true) - $stamp, 3), 'nick' => $owner_nick, 'filter' => $filter, 'created' => $previous_created]); + Logger::info('Feed duration', ['seconds' => number_format(microtime(true) - $stamp, 3), 'nick' => $owner['nickname'], 'filter' => $filter, 'created' => $previous_created]); return $feeddata; } @@ -1125,7 +1123,8 @@ class Feed XML::addElement($doc, $entry, 'id', $item['uri']); XML::addElement($doc, $entry, 'title', html_entity_decode($title, ENT_QUOTES, 'UTF-8')); - $body = OStatus::formatPicturePost($item['body'], $item['uri-id']); + $body = Post\Media::addAttachmentsToBody($item['uri-id'], DI::contentItem()->addSharedPost($item)); + $body = Post\Media::addHTMLAttachmentToBody($item['uri-id'], $body); $body = BBCode::convertForUriId($item['uri-id'], $body, BBCode::ACTIVITYPUB);