From 619fb538d790ae2027c9b9a6ad361ec48909223c Mon Sep 17 00:00:00 2001 From: JC Brand Date: Thu, 17 Jun 2021 15:48:03 +0200 Subject: [PATCH] Show video download URL --- src/plugins/chatview/tests/message-videos.js | 10 ++++++---- src/plugins/chatview/tests/oob.js | 12 +++++++----- src/shared/chat/styles/message-body.scss | 4 ++++ src/shared/rich-text.js | 3 +-- src/templates/video.js | 2 +- src/utils/html.js | 2 +- 6 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/plugins/chatview/tests/message-videos.js b/src/plugins/chatview/tests/message-videos.js index b7a924275..71b1d9491 100644 --- a/src/plugins/chatview/tests/message-videos.js +++ b/src/plugins/chatview/tests/message-videos.js @@ -17,15 +17,16 @@ describe("A Chat Message", function () { await u.waitUntil(() => view.querySelectorAll('.chat-content video').length, 1000) let msg = sizzle('.chat-content .chat-msg:last .chat-msg__text').pop(); expect(msg.innerHTML.replace(//g, '').trim()).toEqual( - ``); + ``+ + `${message}`); message += "?param1=val1¶m2=val2"; await mock.sendMessage(view, message); await u.waitUntil(() => view.querySelectorAll('.chat-content video').length === 2, 1000); msg = sizzle('.chat-content .chat-msg:last .chat-msg__text').pop(); expect(msg.innerHTML.replace(//g, '').trim()).toEqual( - ``); - + ``+ + `${Strophe.xmlescape(message)}`); done(); })); @@ -66,7 +67,8 @@ describe("A Chat Message", function () { await u.waitUntil(() => view.querySelectorAll('.chat-content video').length, 1000) const msg = sizzle('.chat-content .chat-msg:last .chat-msg__text').pop(); expect(msg.innerHTML.replace(//g, '').trim()).toEqual( - ``); + ``+ + `${message}`); done(); })); }); diff --git a/src/plugins/chatview/tests/oob.js b/src/plugins/chatview/tests/oob.js index d8751a4fa..b75673c52 100644 --- a/src/plugins/chatview/tests/oob.js +++ b/src/plugins/chatview/tests/oob.js @@ -1,6 +1,6 @@ /*global mock, converse */ -const { Promise, u } = converse.env; +const { Strophe, Promise, u } = converse.env; describe("A Chat Message", function () { describe("which contains an OOB URL", function () { @@ -66,12 +66,13 @@ describe("A Chat Message", function () { const view = _converse.chatboxviews.get(contact_jid); spyOn(view.model, 'sendMessage').and.callThrough(); + const url = 'https://montague.lit/video.mp4'; let stanza = u.toStanza(` Have you seen this funny video? - https://montague.lit/video.mp4 + ${url} `); _converse.connection._dataRecv(mock.createRequest(stanza)); await u.waitUntil(() => view.querySelectorAll('.chat-content .chat-msg video').length, 2000) @@ -80,8 +81,8 @@ describe("A Chat Message", function () { expect(msg.textContent).toEqual('Have you seen this funny video?'); let media = view.querySelector('.chat-msg .chat-msg__media'); expect(media.innerHTML.replace(/(\r\n|\n|\r)/gm, "").replace(//g, '')).toEqual( - ``); - + ``+ + `${Strophe.xmlescape(url)}`); // If the and contents is the same, don't duplicate. stanza = u.toStanza(` @@ -97,7 +98,8 @@ describe("A Chat Message", function () { expect(msg.innerHTML.replace(//g, '')).toEqual('Have you seen this funny video?'); media = view.querySelector('.chat-msg:last-child .chat-msg__media'); expect(media.innerHTML.replace(/(\r\n|\n|\r)/gm, "").replace(//g, '')).toEqual( - ``); + ``+ + `${Strophe.xmlescape(url)}`); done(); })); diff --git a/src/shared/chat/styles/message-body.scss b/src/shared/chat/styles/message-body.scss index 2d86a9846..4331df30c 100644 --- a/src/shared/chat/styles/message-body.scss +++ b/src/shared/chat/styles/message-body.scss @@ -2,4 +2,8 @@ converse-chat-message-body { audio { width: 100%; } + + video { + max-height: 25vh; + } } diff --git a/src/shared/rich-text.js b/src/shared/rich-text.js index 6c31beb68..e990bfd8f 100644 --- a/src/shared/rich-text.js +++ b/src/shared/rich-text.js @@ -14,7 +14,6 @@ import { import { filterQueryParamsFromURL, getHyperlinkTemplate, - getURI, isAudioDomainAllowed, isAudioURL, isImageDomainAllowed, @@ -118,7 +117,7 @@ export class RichText extends String { 'onLoad': this.onImgClick }); } else if (this.embed_videos && isVideoURL(url_text) && isVideoDomainAllowed(url_text)) { - template = tpl_video({ 'url': filtered_url }); + template = tpl_video(filtered_url); } else if (this.embed_audio && isAudioURL(url_text) && isAudioDomainAllowed(url_text)) { template = tpl_audio(filtered_url); } else { diff --git a/src/templates/video.js b/src/templates/video.js index 5d6acd6b5..5b536030a 100644 --- a/src/templates/video.js +++ b/src/templates/video.js @@ -1,3 +1,3 @@ import { html } from "lit"; -export default (o) => html``; +export default (url) => html`${url}`; diff --git a/src/utils/html.js b/src/utils/html.js index dcf189970..7271462b1 100644 --- a/src/utils/html.js +++ b/src/utils/html.js @@ -178,7 +178,7 @@ u.getOOBURLMarkup = function (_converse, url) { return url; } if (u.isVideoURL(uri)) { - return tpl_video({ url }); + return tpl_video(url); } else if (u.isAudioURL(uri)) { return renderAudioURL(url); } else if (u.isImageURL(uri)) {