mirror of
https://github.com/friendica/friendica
synced 2024-12-22 23:11:28 +01:00
Merge pull request #10708 from annando/peertube-videos
Better handling of displaying peertube videos
This commit is contained in:
commit
39e4ab89fa
1 changed files with 21 additions and 13 deletions
|
@ -547,7 +547,7 @@ class Media
|
||||||
return $attachments;
|
return $attachments;
|
||||||
}
|
}
|
||||||
|
|
||||||
$height = 0;
|
$heights = [];
|
||||||
$selected = '';
|
$selected = '';
|
||||||
$previews = [];
|
$previews = [];
|
||||||
|
|
||||||
|
@ -591,14 +591,11 @@ class Media
|
||||||
in_array($filetype, ['audio', 'image'])) {
|
in_array($filetype, ['audio', 'image'])) {
|
||||||
$attachments['visual'][] = $medium;
|
$attachments['visual'][] = $medium;
|
||||||
} elseif (($medium['type'] == self::VIDEO) || ($filetype == 'video')) {
|
} elseif (($medium['type'] == self::VIDEO) || ($filetype == 'video')) {
|
||||||
if (strpos($medium['url'], $guid) !== false) {
|
if (!empty($medium['height'])) {
|
||||||
// Peertube videos are delivered in many different resolutions. We pick a moderate one.
|
// Peertube videos are delivered in many different resolutions. We pick a moderate one.
|
||||||
// By checking against the GUID we also ensure to only work this way on Peertube posts.
|
// Since only Peertube provides a "height" parameter, this wouldn't be executed
|
||||||
// This wouldn't be executed when someone for example on Mastodon was sharing multiple videos in a single post.
|
// when someone for example on Mastodon was sharing multiple videos in a single post.
|
||||||
if (empty($height) || ($height > $medium['height']) && ($medium['height'] >= 480)) {
|
$heights[$medium['height']] = $medium['url'];
|
||||||
$height = $medium['height'];
|
|
||||||
$selected = $medium['url'];
|
|
||||||
}
|
|
||||||
$video[$medium['url']] = $medium;
|
$video[$medium['url']] = $medium;
|
||||||
} else {
|
} else {
|
||||||
$attachments['visual'][] = $medium;
|
$attachments['visual'][] = $medium;
|
||||||
|
@ -607,13 +604,24 @@ class Media
|
||||||
$attachments['additional'][] = $medium;
|
$attachments['additional'][] = $medium;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!empty($selected)) {
|
|
||||||
$attachments['visual'][] = $video[$selected];
|
if (!empty($heights)) {
|
||||||
unset($video[$selected]);
|
ksort($heights);
|
||||||
foreach ($video as $element) {
|
foreach ($heights as $height => $url) {
|
||||||
$attachments['additional'][] = $element;
|
if (empty($selected) || $height <= 480) {
|
||||||
|
$selected = $url;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($selected)) {
|
||||||
|
$attachments['visual'][] = $video[$selected];
|
||||||
|
unset($video[$selected]);
|
||||||
|
foreach ($video as $element) {
|
||||||
|
$attachments['additional'][] = $element;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $attachments;
|
return $attachments;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue