mirror of
https://github.com/friendica/friendica
synced 2025-01-08 22:04:44 +00:00
Merge pull request #14660 from annando/set-quote-id
Set the quote-uri-id when a post is linked
This commit is contained in:
commit
e177ad55c1
2 changed files with 34 additions and 2 deletions
|
@ -233,6 +233,14 @@ class Item
|
||||||
|
|
||||||
$content_fields = ['raw-body' => trim($fields['raw-body'] ?? $fields['body'])];
|
$content_fields = ['raw-body' => trim($fields['raw-body'] ?? $fields['body'])];
|
||||||
|
|
||||||
|
if ($item['origin'] && empty($item['quote-uri-id'])) {
|
||||||
|
$quote_id = Post\Media::getActivityUriId($item['uri-id']);
|
||||||
|
if (!empty($quote_id)) {
|
||||||
|
Logger::notice('Found attached post', ['id' => $quote_id, 'guid' => $item['guid'], 'uri-id' => $item['uri-id']]);
|
||||||
|
$content_fields['quote-uri-id'] = $quote_id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Remove all media attachments from the body and store them in the post-media table
|
// Remove all media attachments from the body and store them in the post-media table
|
||||||
// @todo On shared postings (Diaspora style and commented reshare) don't fetch content from the shared part
|
// @todo On shared postings (Diaspora style and commented reshare) don't fetch content from the shared part
|
||||||
$content_fields['raw-body'] = Post\Media::insertFromBody($item['uri-id'], $content_fields['raw-body']);
|
$content_fields['raw-body'] = Post\Media::insertFromBody($item['uri-id'], $content_fields['raw-body']);
|
||||||
|
@ -1221,6 +1229,14 @@ class Item
|
||||||
Post\Media::insertFromAttachment($item['uri-id'], $item['attach']);
|
Post\Media::insertFromAttachment($item['uri-id'], $item['attach']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($item['origin'] && empty($item['quote-uri-id'])) {
|
||||||
|
$quote_id = Post\Media::getActivityUriId($item['uri-id']);
|
||||||
|
if (!empty($quote_id)) {
|
||||||
|
Logger::notice('Found attached post', ['id' => $quote_id, 'guid' => $item['guid'], 'uri-id' => $item['uri-id']]);
|
||||||
|
$item['quote-uri-id'] = $quote_id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (empty($item['event-id'])) {
|
if (empty($item['event-id'])) {
|
||||||
unset($item['event-id']);
|
unset($item['event-id']);
|
||||||
|
|
||||||
|
@ -4247,9 +4263,10 @@ class Item
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fetch the uri-id of a quote
|
* Fetch the uri-id of a quoted post by searching for data in the body or attached media
|
||||||
*
|
*
|
||||||
* @param string $body
|
* @param string $body The body of the
|
||||||
|
* @param int $uid The id of the user
|
||||||
* @return integer
|
* @return integer
|
||||||
*/
|
*/
|
||||||
public static function getQuoteUriId(string $body, int $uid = 0): int
|
public static function getQuoteUriId(string $body, int $uid = 0): int
|
||||||
|
|
|
@ -1130,4 +1130,19 @@ class Media
|
||||||
(Proxy::getPixelsFromSize($size) ? Proxy::getPixelsFromSize($size) . '/' : '') .
|
(Proxy::getPixelsFromSize($size) ? Proxy::getPixelsFromSize($size) . '/' : '') .
|
||||||
$id;
|
$id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fetch the uri-id of an attached uri-post for a given uri-id
|
||||||
|
*
|
||||||
|
* @param integer $uri_id Uri-Id of the post
|
||||||
|
* @return integer uri-id of the first attached post
|
||||||
|
*/
|
||||||
|
public static function getActivityUriId(int $uri_id): int
|
||||||
|
{
|
||||||
|
$posts = self::getByURIId($uri_id, [self::ACTIVITY]);
|
||||||
|
if (!$posts) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return reset($posts)['media-uri-id'];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue