Skip to content

Commit

Permalink
update 安定化
Browse files Browse the repository at this point in the history
  • Loading branch information
fa0311 committed Jul 23, 2022
1 parent fc0e203 commit 427aa65
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 31 deletions.
49 changes: 19 additions & 30 deletions js/TwitterSpacesWiretapExtension.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
2 changes: 1 addition & 1 deletion manifest.json
Original file line number Diff line number Diff line change
@@ -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"
Expand Down

0 comments on commit 427aa65

Please sign in to comment.