From 6ec610fbdceaeadbbc184fb02e22a9c4dd13d0a9 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Mon, 19 Jun 2023 23:23:47 +0300 Subject: embed: back to client-side Twitter embeds --- vnext/src/utils/embed.js | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/vnext/src/utils/embed.js b/vnext/src/utils/embed.js index 75985582..b5b4d505 100644 --- a/vnext/src/utils/embed.js +++ b/vnext/src/utils/embed.js @@ -268,13 +268,25 @@ function getEmbeddableLinkTypes() { name: 'Twitter', id: 'embed_twitter_status', className: 'twi compact', + ctsDefault: false, re: /^(?:https?:)?\/\/(?:www\.)?(?:mobile\.)?twitter\.com\/([\w-]+)\/status(?:es)?\/([\d]+)/i, makeNode: function(aNode, reResult, div) { - fetch('https://beta.juick.com/api/oembed?url=' + reResult[0]) - .then(response => response.json()) - .then(json => { - div.innerHTML = json.html - }).catch(console.log) + let [url, , ] = reResult + url = url.replace('mobile.','') + + div.innerHTML = `
` + + if (window.twttr) { + // https://developer.twitter.com/en/docs/twitter-for-websites/javascript-api/guides/scripting-loading-and-initialization + window.twttr.widgets.load(div) + } else { + // innerHTML cannot insert scripts, so... + let script = document.createElement('script') + script.src = 'https://platform.twitter.com/widgets.js' + script.charset = 'utf-8' + div.appendChild(script) + } + return div } }, -- cgit v1.2.3