Support video file previews
This commit is contained in:
parent
ccd37aba8f
commit
d4ad60c11d
@ -4,13 +4,20 @@
|
||||
<a class="toggle-thumbnail" href="{{link}}" target="_blank" rel="noopener">
|
||||
<img src="{{thumb}}">
|
||||
</a>
|
||||
{{else}}
|
||||
{{/equal}}
|
||||
{{#equal type "audio"}}
|
||||
<audio controls preload="metadata">
|
||||
<source src="{{link}}" type="{{res}}">
|
||||
Your browser does not support the audio element.
|
||||
</audio>
|
||||
{{else}}
|
||||
{{/equal}}
|
||||
{{#equal type "video"}}
|
||||
<video width="320" height="240" preload="metadata" controls>
|
||||
<source src="{{link}}" type="{{res}}">
|
||||
Your browser does not support the video element.
|
||||
</video>
|
||||
{{/equal}}
|
||||
{{#equal type "link"}}
|
||||
{{#if thumb}}
|
||||
<a class="toggle-thumbnail" href="{{link}}" target="_blank" rel="noopener">
|
||||
<img src="{{thumb}}" class="thumb">
|
||||
@ -21,6 +28,5 @@
|
||||
<div class="body" title="{{body}}">{{body}}</div>
|
||||
</a>
|
||||
{{/equal}}
|
||||
{{/equal}}
|
||||
</div>
|
||||
{{/preview}}
|
||||
|
@ -120,6 +120,18 @@ function parse(msg, preview, res, client) {
|
||||
}
|
||||
preview.type = "audio";
|
||||
preview.res = res.type;
|
||||
|
||||
break;
|
||||
|
||||
case "video/webm":
|
||||
case "video/ogg":
|
||||
case "video/mp4":
|
||||
if (!preview.link.startsWith("https://")) {
|
||||
break;
|
||||
}
|
||||
preview.res = res.type;
|
||||
preview.type = "video";
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -186,7 +198,7 @@ function fetch(uri, cb) {
|
||||
if (contentLength > limit) {
|
||||
req.abort();
|
||||
}
|
||||
} else if (/^audio\/.+/.test(res.headers["content-type"])) {
|
||||
} else if (/^(audio|video)\/.+/.test(res.headers["content-type"])) {
|
||||
req.abort(); // ensure server doesn't download the audio file
|
||||
} else {
|
||||
// if not image, limit download to 50kb, since we need only meta tags
|
||||
|
Loading…
Reference in New Issue
Block a user