X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FItemURI.php;h=a19662735266d7c7d78cc73354ee967f56aee3f2;hb=5af956b92f5072ffa95ea4dd3631f0a953d27bef;hp=020c468d23a81700bdd2c31e6db56ec2548bd3f6;hpb=622b978a8444624b36b01853239a2959cb4a1bf5;p=friendica.git diff --git a/src/Model/ItemURI.php b/src/Model/ItemURI.php index 020c468d23..a196627352 100644 --- a/src/Model/ItemURI.php +++ b/src/Model/ItemURI.php @@ -21,8 +21,10 @@ namespace Friendica\Model; +use Friendica\Core\Logger; use Friendica\Database\Database; use Friendica\Database\DBA; +use Friendica\DI; class ItemURI { @@ -35,17 +37,16 @@ class ItemURI */ public static function insert(array $fields) { - // If the URI gets too long we only take the first parts and hope for best - $uri = substr($fields['uri'], 0, 255); + $fields = DI::dbaDefinition()->truncateFieldsForTable('item-uri', $fields); - if (!DBA::exists('item-uri', ['uri' => $uri])) { - DBA::insert('item-uri', $fields, Database::INSERT_UPDATE); + if (!DBA::exists('item-uri', ['uri' => $fields['uri']])) { + DBA::insert('item-uri', $fields, Database::INSERT_IGNORE); } - $itemuri = DBA::selectFirst('item-uri', ['id', 'guid'], ['uri' => $uri]); - + $itemuri = DBA::selectFirst('item-uri', ['id', 'guid'], ['uri' => $fields['uri']]); if (!DBA::isResult($itemuri)) { // This shouldn't happen + Logger::warning('Item-uri not found', $fields); return null; } @@ -60,44 +61,24 @@ class ItemURI * Searched for an id of a given uri. Adds it, if not existing yet. * * @param string $uri + * @param bool $insert + * * @return integer item-uri id + * * @throws \Exception */ - public static function getIdByURI(string $uri): int + public static function getIdByURI(string $uri, bool $insert = true): int { if (empty($uri)) { return 0; } - // If the URI gets too long we only take the first parts and hope for best - $uri = substr($uri, 0, 255); - $itemuri = DBA::selectFirst('item-uri', ['id'], ['uri' => $uri]); - if (!DBA::isResult($itemuri)) { + if (!DBA::isResult($itemuri) && $insert) { return self::insert(['uri' => $uri]); } - return $itemuri['id']; - } - /** - * Searched for an id of a given guid. - * - * @param string $guid - * @return integer item-uri id - * @throws \Exception - */ - public static function getIdByGUID(string $guid): int - { - // If the GUID gets too long we only take the first parts and hope for best - $guid = substr($guid, 0, 255); - - $itemuri = DBA::selectFirst('item-uri', ['id'], ['guid' => $guid]); - - if (!DBA::isResult($itemuri)) { - return 0; - } - - return $itemuri['id']; + return $itemuri['id'] ?? 0; } }