New config setting: muc_show_ogp_unfurls
This commit is contained in:
parent
426bf1d631
commit
16e1f95790
|
@ -16,6 +16,7 @@
|
||||||
- New configuration setting: [show_tab_notifications](https://conversejs.org/docs/html/configuration.html#show-tab-notifications)
|
- New configuration setting: [show_tab_notifications](https://conversejs.org/docs/html/configuration.html#show-tab-notifications)
|
||||||
- New configuration setting: [muc_clear_messages_on_leave](https://conversejs.org/docs/html/configuration.html#muc-clear-messages-on-leave)
|
- New configuration setting: [muc_clear_messages_on_leave](https://conversejs.org/docs/html/configuration.html#muc-clear-messages-on-leave)
|
||||||
- New configuration setting: [send_chat_markers](https://conversejs.org/docs/html/configuration.html#send-chat-markers)
|
- New configuration setting: [send_chat_markers](https://conversejs.org/docs/html/configuration.html#send-chat-markers)
|
||||||
|
- New configuration setting: [muc_show_ogp_unfurls](https://conversejs.org/docs/html/configuration.html#muc-show-ogp-unfurls)
|
||||||
- #1823: New config options [mam_request_all_pages](https://conversejs.org/docs/html/configuration.html#mam-request-all-pages)
|
- #1823: New config options [mam_request_all_pages](https://conversejs.org/docs/html/configuration.html#mam-request-all-pages)
|
||||||
- Use the MUC stanza id when sending XEP-0333 markers
|
- Use the MUC stanza id when sending XEP-0333 markers
|
||||||
- Add support for rendering unfurls via [mod_ogp](https://modules.prosody.im/mod_ogp.html)
|
- Add support for rendering unfurls via [mod_ogp](https://modules.prosody.im/mod_ogp.html)
|
||||||
|
|
|
@ -1471,6 +1471,20 @@ a nickname configured for it), you'll see the message history (if the
|
||||||
server supports `XEP-0313 Message Archive Management <https://xmpp.org/extensions/xep-0313.html>`_)
|
server supports `XEP-0313 Message Archive Management <https://xmpp.org/extensions/xep-0313.html>`_)
|
||||||
and the nickname form at the bottom.
|
and the nickname form at the bottom.
|
||||||
|
|
||||||
|
muc_show_ogp_unfurls
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
* Default: ``true``
|
||||||
|
|
||||||
|
Supports showing extra metadata (picture and description) for URLs contained in
|
||||||
|
groupchat messages.
|
||||||
|
|
||||||
|
The metadat must come from the MUC itself, metadata sent from participants
|
||||||
|
themselves will not be shown.
|
||||||
|
|
||||||
|
For Prosody XMPP server, `mod_ogp <https://modules.prosody.im/mod_ogp.html>`_ can be used.
|
||||||
|
|
||||||
|
|
||||||
muc_subscribe_to_rai
|
muc_subscribe_to_rai
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
|
|
|
@ -129,15 +129,7 @@ describe("A Groupchat Message", function () {
|
||||||
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:url" content="https://www.youtube.com/watch?v=tmY-G6sngk8" />
|
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:url" content="https://www.youtube.com/watch?v=tmY-G6sngk8" />
|
||||||
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:title" content="Rick Astley - Never Gonna Give You Up (Video)" />
|
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:title" content="Rick Astley - Never Gonna Give You Up (Video)" />
|
||||||
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:image" content="https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg" />
|
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:image" content="https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg" />
|
||||||
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:image:width" content="1280" />
|
|
||||||
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:image:height" content="720" />
|
|
||||||
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:description" content="Rick Astley&#39;s official music video for "Never Gonna Give You Up" Listen to Rick Astley: https://RickAstley.lnk.to/_listenYD Subscribe to the official Rick Ast..." />
|
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:description" content="Rick Astley&#39;s official music video for "Never Gonna Give You Up" Listen to Rick Astley: https://RickAstley.lnk.to/_listenYD Subscribe to the official Rick Ast..." />
|
||||||
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:type" content="video.other" />
|
|
||||||
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:video:url" content="https://www.youtube.com/embed/dQw4w9WgXcQ" />
|
|
||||||
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:video:secure_url" content="https://www.youtube.com/embed/dQw4w9WgXcQ" />
|
|
||||||
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:video:type" content="text/html" />
|
|
||||||
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:video:width" content="1280" />
|
|
||||||
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:video:height" content="720" />
|
|
||||||
</apply-to>
|
</apply-to>
|
||||||
</message>`);
|
</message>`);
|
||||||
_converse.connection._dataRecv(mock.createRequest(metadata_stanza));
|
_converse.connection._dataRecv(mock.createRequest(metadata_stanza));
|
||||||
|
@ -175,15 +167,48 @@ describe("A Groupchat Message", function () {
|
||||||
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:url" content="https://www.youtube.com/watch?v=dQw4w9WgXcQ" />
|
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:url" content="https://www.youtube.com/watch?v=dQw4w9WgXcQ" />
|
||||||
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:title" content="Rick Astley - Never Gonna Give You Up (Video)" />
|
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:title" content="Rick Astley - Never Gonna Give You Up (Video)" />
|
||||||
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:image" content="https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg" />
|
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:image" content="https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg" />
|
||||||
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:image:width" content="1280" />
|
|
||||||
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:image:height" content="720" />
|
|
||||||
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:description" content="Rick Astley&#39;s official music video for "Never Gonna Give You Up" Listen to Rick Astley: https://RickAstley.lnk.to/_listenYD Subscribe to the official Rick Ast..." />
|
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:description" content="Rick Astley&#39;s official music video for "Never Gonna Give You Up" Listen to Rick Astley: https://RickAstley.lnk.to/_listenYD Subscribe to the official Rick Ast..." />
|
||||||
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:type" content="video.other" />
|
</apply-to>
|
||||||
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:video:url" content="https://www.youtube.com/embed/dQw4w9WgXcQ" />
|
</message>`);
|
||||||
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:video:secure_url" content="https://www.youtube.com/embed/dQw4w9WgXcQ" />
|
_converse.connection._dataRecv(mock.createRequest(metadata_stanza));
|
||||||
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:video:type" content="text/html" />
|
|
||||||
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:video:width" content="1280" />
|
await u.waitUntil(() => view.model.handleMetadataFastening.calls.count());
|
||||||
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:video:height" content="720" />
|
expect(view.model.handleMetadataFastening.calls.first().returnValue).toBe(false);
|
||||||
|
expect(view.querySelector('converse-message-unfurl')).toBe(null);
|
||||||
|
done();
|
||||||
|
}));
|
||||||
|
|
||||||
|
it("will not render an unfurl based on OGP data if muc_show_ogp_unfurls is false",
|
||||||
|
mock.initConverse(['chatBoxesFetched'],
|
||||||
|
{'muc_show_ogp_unfurls': false},
|
||||||
|
async function (done, _converse) {
|
||||||
|
const nick = 'romeo';
|
||||||
|
const muc_jid = 'lounge@montague.lit';
|
||||||
|
await mock.openAndEnterChatRoom(_converse, muc_jid, nick);
|
||||||
|
const view = _converse.api.chatviews.get(muc_jid);
|
||||||
|
|
||||||
|
const message_stanza = u.toStanza(`
|
||||||
|
<message xmlns="jabber:client" type="groupchat" from="${muc_jid}/arzu" xml:lang="en" to="${_converse.jid}" id="eda6c790-b4f3-4c07-b5e2-13fff99e6c04">
|
||||||
|
<body>https://www.youtube.com/watch?v=dQw4w9WgXcQ</body>
|
||||||
|
<active xmlns="http://jabber.org/protocol/chatstates"/>
|
||||||
|
<origin-id xmlns="urn:xmpp:sid:0" id="eda6c790-b4f3-4c07-b5e2-13fff99e6c04"/>
|
||||||
|
<stanza-id xmlns="urn:xmpp:sid:0" by="${muc_jid}" id="8f7613cc-27d4-40ca-9488-da25c4baf92a"/>
|
||||||
|
<markable xmlns="urn:xmpp:chat-markers:0"/>
|
||||||
|
</message>`);
|
||||||
|
_converse.connection._dataRecv(mock.createRequest(message_stanza));
|
||||||
|
const el = await u.waitUntil(() => view.querySelector('.chat-msg__text'));
|
||||||
|
expect(el.textContent).toBe('https://www.youtube.com/watch?v=dQw4w9WgXcQ');
|
||||||
|
|
||||||
|
spyOn(view.model, 'handleMetadataFastening').and.callThrough();
|
||||||
|
|
||||||
|
const metadata_stanza = u.toStanza(`
|
||||||
|
<message xmlns="jabber:client" from="${muc_jid}" to="${_converse.jid}" type="groupchat">
|
||||||
|
<apply-to xmlns="urn:xmpp:fasten:0" id="eda6c790-b4f3-4c07-b5e2-13fff99e6c04">
|
||||||
|
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:site_name" content="YouTube" />
|
||||||
|
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:url" content="https://www.youtube.com/watch?v=dQw4w9WgXcQ" />
|
||||||
|
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:title" content="Rick Astley - Never Gonna Give You Up (Video)" />
|
||||||
|
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:image" content="https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg" />
|
||||||
|
<meta xmlns="http://www.w3.org/1999/xhtml" property="og:description" content="Rick Astley&#39;s official music video for "Never Gonna Give You Up" Listen to Rick Astley: https://RickAstley.lnk.to/_listenYD Subscribe to the official Rick Ast..." />
|
||||||
</apply-to>
|
</apply-to>
|
||||||
</message>`);
|
</message>`);
|
||||||
_converse.connection._dataRecv(mock.createRequest(metadata_stanza));
|
_converse.connection._dataRecv(mock.createRequest(metadata_stanza));
|
||||||
|
|
|
@ -252,6 +252,7 @@ converse.plugins.add('converse-muc', {
|
||||||
...converse.MUC_INFO_CODES.role_changes
|
...converse.MUC_INFO_CODES.role_changes
|
||||||
],
|
],
|
||||||
'muc_show_logs_before_join': false,
|
'muc_show_logs_before_join': false,
|
||||||
|
'muc_show_ogp_unfurls': true,
|
||||||
'muc_subscribe_to_rai': false,
|
'muc_subscribe_to_rai': false,
|
||||||
});
|
});
|
||||||
api.promises.add(['roomsAutoJoined']);
|
api.promises.add(['roomsAutoJoined']);
|
||||||
|
|
|
@ -2122,6 +2122,9 @@ const ChatRoomMixin = {
|
||||||
},
|
},
|
||||||
|
|
||||||
handleMetadataFastening (attrs) {
|
handleMetadataFastening (attrs) {
|
||||||
|
if (!api.settings.get('muc_show_ogp_unfurls')) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (attrs.ogp_for_id) {
|
if (attrs.ogp_for_id) {
|
||||||
if (attrs.from !== this.get('jid')) {
|
if (attrs.from !== this.get('jid')) {
|
||||||
// For now we only allow metadata from the MUC itself and not
|
// For now we only allow metadata from the MUC itself and not
|
||||||
|
|
Loading…
Reference in New Issue
Block a user