ttv-lol-pro/firefox/js/background.js

45 lines
1.2 KiB
JavaScript

function onPlaylistBeforeRequest(details) {
// (hls\/|vod\/)(.+?)$
const match = /(hls|vod)\/(.+?)$/gim.exec(details.url);
if (match !== null && match.length > 1) {
var playlistType = match[1] == "vod" ? "vod" : "playlist";
return new Promise(resolve => {
fetch(
'https://api.ttv.lol/ping',
{
method: 'GET',
}).then(r => {
if (r.status == 200) {
resolve({ redirectUrl: `https://api.ttv.lol/${playlistType}/${encodeURIComponent(match[2])}` });
} else {
resolve({});
}
}).catch((error) => {
resolve({});
});
});
}
}
browser.webRequest.onBeforeRequest.addListener(
onPlaylistBeforeRequest,
{ urls: ["https://usher.ttvnw.net/api/channel/hls/*", "https://usher.ttvnw.net/vod/*"] },
["blocking"]
);
function onBeforeSendHeaders(req) {
req.requestHeaders.push({ name: 'X-Donate-To', value: "https://ttv.lol/donate" })
return {
requestHeaders: req.requestHeaders
}
}
browser.webRequest.onBeforeSendHeaders.addListener(
onBeforeSendHeaders,
{ urls: ["https://api.ttv.lol/playlist/*", "https://api.ttv.lol/vod/*"] },
["blocking", "requestHeaders"]
);