From 427aa65d57f68e4fe02ab4ca6f0c8892a3f49e9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=B5=E3=81=81?= <34892635+fa0311@users.noreply.github.com> Date: Sat, 23 Jul 2022 12:48:16 +0900 Subject: [PATCH] =?UTF-8?q?update=20=E5=AE=89=E5=AE=9A=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/TwitterSpacesWiretapExtension.js | 49 +++++++++++------------------ manifest.json | 2 +- 2 files changed, 20 insertions(+), 31 deletions(-) diff --git a/js/TwitterSpacesWiretapExtension.js b/js/TwitterSpacesWiretapExtension.js index 63fbda2..e2045c1 100644 --- a/js/TwitterSpacesWiretapExtension.js +++ b/js/TwitterSpacesWiretapExtension.js @@ -75,52 +75,41 @@ class TwitterSpacesWiretap { } } -let href; - new MutationObserver(async () => { - if (href == location.href) return; href = location.href; if (href.match(new RegExp("https://twitter.com/i/spaces/")) == null) return; if (document.getElementById("twitter-spaces-wiretap-audio") != null) return; - let hrefList = href.split("?")[0].split("/"); - let id = hrefList.slice(-1)[0]; - if (id == "peek") id = hrefList.slice(-2)[0]; - console.log(id); - - let space = new TwitterSpacesWiretap(); - let media_key = (await space.AudioSpaceById(id)).data.audioSpace.metadata - .media_key; - let url = (await space.live_video_stream(media_key)).source.location; - console.log(url); const audio = document.createElement("audio"); audio.setAttribute("controls", ""); audio.id = "twitter-spaces-wiretap-audio"; - if (hrefList.slice(-1)[0] == "peek") { - let element; - for (let i = 0; i < 10; i++) { - element = document.querySelector( - 'div[role="menu"] div[aria-haspopup="menu"]' - ); - if (element != null) break; - await new Promise((resolve) => setTimeout(resolve, 500)); - } + let element; + let hrefList = href.split("?")[0].split("/"); + let id = hrefList.slice(-1)[0]; + if (id == "peek") { + id = hrefList.slice(-2)[0]; + element = document.querySelector( + 'div[role="menu"] div[aria-haspopup="menu"]' + ); if (element == null) return; element.parentNode.parentNode.prepend(audio); } else { - let element; - for (let i = 0; i < 10; i++) { - element = document.querySelector( - 'div[data-testid="placementTracking"] div[role="button"] > div > div' - ); - if (element != null) break; - await new Promise((resolve) => setTimeout(resolve, 500)); - } + element = document.querySelector( + 'div[data-testid="placementTracking"] div[role="button"] > div > div' + ); if (element == null) return; element.append(audio); } + console.log(id); + + let space = new TwitterSpacesWiretap(); + let media_key = (await space.AudioSpaceById(id)).data.audioSpace.metadata + .media_key; + let url = (await space.live_video_stream(media_key)).source.location; + console.log(url); + if (Hls.isSupported()) { let hls = new Hls(); hls.loadSource(url); diff --git a/manifest.json b/manifest.json index 27554f1..9179863 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "name": "TwitterSpacesWiretapExtension", "description": "TwitterSpacesWiretapExtension", - "version": "1.0.1", + "version": "1.0.2", "manifest_version": 3, "action": { "default_popup": "html/popup.html"