mirror of
https://github.com/shirt-dev/netflix-international.git
synced 2025-05-04 08:30:34 +00:00
63 lines
1.4 KiB
JavaScript
63 lines
1.4 KiB
JavaScript
/* eslint-disable no-undef */
|
|
let getElementByXPath = function (xpath) {
|
|
return document.evaluate(
|
|
xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null
|
|
).singleNodeValue;
|
|
};
|
|
|
|
const fn = function () {
|
|
window.dispatchEvent(new KeyboardEvent("keydown", {
|
|
keyCode: 83,
|
|
ctrlKey: true,
|
|
altKey: true,
|
|
shiftKey: true,
|
|
}));
|
|
|
|
const VIDEO_SELECT = getElementByXPath("//div[text()='Video Bitrate']");
|
|
const AUDIO_SELECT = getElementByXPath("//div[text()='Audio Bitrate']");
|
|
const BUTTON = getElementByXPath("//button[text()='Override']");
|
|
|
|
if (!(VIDEO_SELECT && AUDIO_SELECT && BUTTON)){
|
|
return false;
|
|
}
|
|
|
|
[VIDEO_SELECT, AUDIO_SELECT].forEach(function (el) {
|
|
let parent = el.parentElement;
|
|
|
|
let options = parent.querySelectorAll("select > option");
|
|
|
|
for (var i = 0; i < options.length - 1; i++) {
|
|
options[i].removeAttribute("selected");
|
|
}
|
|
|
|
options[options.length - 1].setAttribute("selected", "selected");
|
|
});
|
|
|
|
BUTTON.click();
|
|
|
|
return true;
|
|
};
|
|
|
|
let run = function () {
|
|
if (!fn()) {
|
|
setTimeout(run, 100);
|
|
}
|
|
};
|
|
|
|
const WATCH_REGEXP = /netflix.com\/watch\/.*/;
|
|
|
|
let oldLocation;
|
|
|
|
if(globalOptions.setMaxBitrate) {
|
|
console.log("netflix_max_bitrate.js enabled");
|
|
setInterval(function () {
|
|
let newLocation = window.location.toString();
|
|
|
|
if (newLocation !== oldLocation) {
|
|
oldLocation = newLocation;
|
|
if (WATCH_REGEXP.test(newLocation)) {
|
|
run();
|
|
}
|
|
}
|
|
}, 500);
|
|
}
|