X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FItem.php;h=34f7e0d8b8959e61e80d4d99def20eb1461e5a23;hb=55db2670d1662b32c6faa820c60c44e16cffab20;hp=aff9dfed0b40fe9739274f8249e7071c2f9062a6;hpb=040abc7743aa5c1c7daa892497b68052057cbf4c;p=friendica.git diff --git a/src/Model/Item.php b/src/Model/Item.php index aff9dfed0b..34f7e0d8b8 100644 --- a/src/Model/Item.php +++ b/src/Model/Item.php @@ -869,7 +869,7 @@ class Item $item["contact-id"] = self::contactId($item); if (!empty($item['direction']) && in_array($item['direction'], [Conversation::PUSH, Conversation::RELAY]) && - self::isTooOld($item)) { + empty($item['origin']) &&self::isTooOld($item)) { Logger::info('Item is too old', ['item' => $item]); return 0; } @@ -1751,7 +1751,7 @@ class Item // which point it will be automatically available through `getAvailableLanguages()` and this should be removed. $availableLanguages['fa'] = 'fa'; - $ld = new Language($availableLanguages); + $ld = new Language(array_keys($availableLanguages)); $languages = $ld->detect($naked_body)->limit(0, 3)->close(); if (is_array($languages)) { return json_encode($languages); @@ -1773,7 +1773,10 @@ class Item } /** - * Creates an unique guid out of a given uri + * Creates an unique guid out of a given uri. + * This function is used for messages outside the fediverse (Connector posts, feeds, Mails, ...) + * Posts that are created on this system are using System::createUUID. + * Received ActivityPub posts are using Processor::getGUIDByURL. * * @param string $uri uri of an item entry * @param string $host hostname for the GUID prefix @@ -3188,6 +3191,12 @@ class Item */ public static function getPlink($item) { + if (!empty($item['plink']) && Network::isValidHttpUrl($item['plink'])) { + $plink = $item['plink']; + } elseif (!empty($item['uri']) && Network::isValidHttpUrl($item['uri']) && !Network::isLocalLink($item['uri'])) { + $plink = $item['uri']; + } + if (local_user()) { $ret = [ 'href' => "display/" . $item['guid'], @@ -3196,14 +3205,14 @@ class Item 'orig_title' => DI::l10n()->t('View on separate page'), ]; - if (!empty($item['plink'])) { - $ret['href'] = DI::baseUrl()->remove($item['plink']); + if (!empty($plink)) { + $ret['href'] = DI::baseUrl()->remove($plink); $ret['title'] = DI::l10n()->t('Link to source'); } - } elseif (!empty($item['plink']) && ($item['private'] != self::PRIVATE)) { + } elseif (!empty($plink) && ($item['private'] != self::PRIVATE)) { $ret = [ - 'href' => $item['plink'], - 'orig' => $item['plink'], + 'href' => $plink, + 'orig' => $plink, 'title' => DI::l10n()->t('Link to source'), 'orig_title' => DI::l10n()->t('Link to source'), ];