Merge pull request #10214 from annando/ap-attachments

Avoid duplicated attachments / unwanted attachments
This commit is contained in:
Hypolite Petovan 2021-05-05 13:20:31 -04:00 committed by GitHub
commit 38d2b68558
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 29 additions and 34 deletions

View file

@ -1893,7 +1893,7 @@ class BBCode
$text = HTML::purify($text, $allowedIframeDomains); $text = HTML::purify($text, $allowedIframeDomains);
return $text; return trim($text);
} }
/** /**

View file

@ -2871,7 +2871,8 @@ class Item
$found = true; $found = true;
} }
} }
if (!$found) { // @todo Judge between the links to use the one with most information
if (!$found && (empty($attachment) || empty($attachment['name']) || empty($attachment['description']))) {
$attachment = $link; $attachment = $link;
} }
} }

View file

@ -1260,37 +1260,6 @@ class Transmitter
{ {
$attachments = []; $attachments = [];
// Currently deactivated, since it creates side effects on Mastodon and Pleroma.
// It will be reactivated, once this cleared.
/*
$attach_data = BBCode::getAttachmentData($item['body']);
if (!empty($attach_data['url'])) {
$attachment = ['type' => 'Page',
'mediaType' => 'text/html',
'url' => $attach_data['url']];
if (!empty($attach_data['title'])) {
$attachment['name'] = $attach_data['title'];
}
if (!empty($attach_data['description'])) {
$attachment['summary'] = $attach_data['description'];
}
if (!empty($attach_data['image'])) {
$imgdata = Images::getInfoFromURLCached($attach_data['image']);
if ($imgdata) {
$attachment['icon'] = ['type' => 'Image',
'mediaType' => $imgdata['mime'],
'width' => $imgdata[0],
'height' => $imgdata[1],
'url' => $attach_data['image']];
}
}
$attachments[] = $attachment;
}
*/
$uriids = [$item['uri-id']]; $uriids = [$item['uri-id']];
$shared = BBCode::fetchShareAttributes($item['body']); $shared = BBCode::fetchShareAttributes($item['body']);
if (!empty($shared['guid'])) { if (!empty($shared['guid'])) {
@ -1300,8 +1269,14 @@ class Transmitter
} }
} }
$urls = [];
foreach ($uriids as $uriid) { foreach ($uriids as $uriid) {
foreach (Post\Media::getByURIId($uriid, [Post\Media::DOCUMENT, Post\Media::TORRENT, Post\Media::UNKNOWN]) as $attachment) { foreach (Post\Media::getByURIId($uriid, [Post\Media::DOCUMENT, Post\Media::TORRENT]) as $attachment) {
if (in_array($attachment['url'], $urls)) {
continue;
}
$urls[] = $attachment['url'];
$attachments[] = ['type' => 'Document', $attachments[] = ['type' => 'Document',
'mediaType' => $attachment['mimetype'], 'mediaType' => $attachment['mimetype'],
'url' => $attachment['url'], 'url' => $attachment['url'],
@ -1315,11 +1290,30 @@ class Transmitter
foreach ($uriids as $uriid) { foreach ($uriids as $uriid) {
foreach (Post\Media::getByURIId($uriid, [Post\Media::AUDIO, Post\Media::IMAGE, Post\Media::VIDEO]) as $attachment) { foreach (Post\Media::getByURIId($uriid, [Post\Media::AUDIO, Post\Media::IMAGE, Post\Media::VIDEO]) as $attachment) {
if (in_array($attachment['url'], $urls)) {
continue;
}
$urls[] = $attachment['url'];
$attachments[] = ['type' => 'Document', $attachments[] = ['type' => 'Document',
'mediaType' => $attachment['mimetype'], 'mediaType' => $attachment['mimetype'],
'url' => $attachment['url'], 'url' => $attachment['url'],
'name' => $attachment['description']]; 'name' => $attachment['description']];
} }
// Currently deactivated, since it creates side effects on Mastodon and Pleroma.
// It will be activated, once this cleared.
/*
foreach (Post\Media::getByURIId($uriid, [Post\Media::HTML]) as $attachment) {
if (in_array($attachment['url'], $urls)) {
continue;
}
$urls[] = $attachment['url'];
$attachments[] = ['type' => 'Page',
'mediaType' => $attachment['mimetype'],
'url' => $attachment['url'],
'name' => $attachment['description']];
}*/
} }
return $attachments; return $attachments;