From 57decd2fe2ffbc4475d50776429562c85248a32a Mon Sep 17 00:00:00 2001 From: Roy Olav Purser Date: Sat, 5 Mar 2022 20:04:04 +0100 Subject: [PATCH] support other services --- chrome/manifest.json | 4 +- chrome/script.js | 95 +++++++++++++++++++++----------------------- 2 files changed, 48 insertions(+), 51 deletions(-) diff --git a/chrome/manifest.json b/chrome/manifest.json index 462ce43..e6da87b 100644 --- a/chrome/manifest.json +++ b/chrome/manifest.json @@ -7,9 +7,9 @@ "48": "icon-48.png", "128": "icon-128.png" }, - "version": "104.0", + "version": "106.0", "manifest_version": 3, - "host_permissions": ["http://127.0.0.1:8083/jsonrpc", "http://127.0.0.1:8080/jsonrpc"], + "host_permissions": ["http://127.0.0.1:4000/jsonrpc"], "permissions": ["tabs"], "action": { "default_title": "Proxy Stream", diff --git a/chrome/script.js b/chrome/script.js index fb7fcb8..f24433a 100644 --- a/chrome/script.js +++ b/chrome/script.js @@ -1,51 +1,58 @@ -let providers = new Map(); -providers.set("www.youtube.com", "youtube"); -providers.set("youtube.com", "youtube"); -providers.set("youtu.be", "youtube"); -providers.set("tv.nrk.no", "nrk"); -providers.set("seafile.purser.it", "seafile"); +let providers = new Map() +providers.set("www.youtube.com", "youtube") +providers.set("youtube.com", "youtube") +providers.set("youtu.be", "youtube") +providers.set("tv.nrk.no", "nrk") +providers.set("seafile.purser.it", "seafile") document.addEventListener("DOMContentLoaded", () => { - let [proxyButton, kodiButton] = document.getElementsByTagName("button"); + let [proxyButton, kodiButton] = document.getElementsByTagName("button") proxyButton.addEventListener("click", (ev) => { chrome.tabs.query({currentWindow: true, active: true}, (tabs) => { - let oldurl = new URL(tabs[0].url); - let newurl = new URL("https://stream.purser.it"); - let search = new URLSearchParams(); - let hostname = oldurl.hostname.toLowerCase(); + let oldurl = new URL(tabs[0].url) + let newurl = new URL("https://stream.purser.it") + let search = new URLSearchParams() + let hostname = oldurl.hostname.toLowerCase() if(providers.has(hostname)) { if(hostname.includes("youtube.com")) { - let newpath = oldurl.searchParams.get("v"); + let newpath = oldurl.searchParams.get("v") if((newpath instanceof String) || ((typeof newpath) === "string")) { - newurl.pathname = "/" + newpath; + newurl.pathname = "/" + newpath } } else { - newurl.pathname = oldurl.pathname; + newurl.pathname = oldurl.pathname } - search.append("provider", providers.get(hostname)); + search.append("provider", providers.get(hostname)) } - newurl.search = search.toString(); - let tab = {}; - tab.url = newurl.href; - chrome.tabs.create(tab); - }); - }); + newurl.search = search.toString() + let tab = {} + tab.url = newurl.href + chrome.tabs.create(tab) + }) + }) kodiButton.addEventListener("click", (ev) => { chrome.tabs.query({currentWindow: true, active: true}, (tabs) => { - let oldurl = new URL(tabs[0].url); - let newurl = new URL(tabs[0].url); - let search = new URLSearchParams(); - let hostname = oldurl.hostname.toLowerCase(); - if(hostname.includes("youtube.com")) { - newurl = new URL("plugin://plugin.video.youtube") - search.append("action", "play_video") - let video_id = oldurl.searchParams.get("v"); - if(video_id) { - search.append("videoid", video_id) + let oldurl = new URL(tabs[0].url) + let newurl = new URL("https://stream.purser.it") + let search = new URLSearchParams() + let hostname = oldurl.hostname.toLowerCase() + if(providers.has(hostname)) { + if(hostname.includes("youtube.com")) { + newurl = new URL("plugin://plugin.video.youtube") + search.append("action", "play_video") + let video_id = oldurl.searchParams.get("v") + if(video_id) { + search.append("videoid", video_id) + } + } else { + search.append("provider", providers.get(hostname)) + search.append("raw", "true") + newurl.pathname = oldurl.pathname } } - newurl.search = search.toString(); - + + newurl.search = search.toString() + let req = { jsonrpc: "2.0", method: "Player.Open", @@ -56,28 +63,18 @@ document.addEventListener("DOMContentLoaded", () => { } } } + try { - fetch("http://127.0.0.1:8080/jsonrpc", { + fetch("http://127.0.0.1:4000/jsonrpc", { method: "POST", body: JSON.stringify(req), headers: { - "Content-Type": "application/json; charset=utf-8" + "Content-Type": "application/json charset=utf-8" } }).then(resp => console.log(resp)) } catch(e) { console.log(e) } - try { - fetch("http://127.0.0.1:8083/jsonrpc", { - method: "POST", - body: JSON.stringify(req), - headers: { - "Content-Type": "application/json; charset=utf-8" - } - }).then(resp => console.log(resp)) - } catch(e) { - console.log(e) - } - }); - }); -}); + }) + }) +})