AG7PEDRO
Membro
- Registrado
- Maio 29, 2022
- Mensagens
- 1
- Pontos de reações
- 0
- Idade
- 19
copiar e colar
// ==UserScript==
// @name crunchyroll_nosubs
// @namespace http://tampermonkey.net/
// @version 0.9
// @description disable subs on crunchyroll by default
// @author mescyn
// @match https://www.crunchyroll.com/
// @grant none
// @Run-at document-start
// ==/UserScript==
(function() {
'use strict';
const Event = class {
constructor(script, target) {
this.script = script;
this.target = target;
this._cancel = false;
this._replace = null;
this._stop = false;
}
preventDefault() {
this._cancel = true;
}
stopPropagation() {
this._stop = true;
}
replacePayload(payload) {
this._replace = payload;
}
};
let callbacks = [];
window.addBeforeScriptExecuteListener = (f) => {
if (typeof f !== "function") {
throw new Error("Event handler must be a function.");
}
callbacks.push(f);
};
window.removeBeforeScriptExecuteListener = (f) => {
let i = callbacks.length;
while (i--) {
if (callbacks === f) {
callbacks.splice(i, 1);
}
}
};
const dispatch = (script, target) => {
if (script.tagName !== "SCRIPT") {
return;
}
const e = new Event(script, target);
if (typeof window.onbeforescriptexecute === "function") {
try {
window.onbeforescriptexecute(e);
} catch (err) {
console.error(err);
}
}
for (const func of callbacks) {
if (e._stop) {
break;
}
try {
func(e);
} catch (err) {
console.error(err);
}
}
if (e._cancel) {
script.textContent = "";
script.remove();
} else if (typeof e._replace === "string") {
script.textContent = e._replace;
}
};
const observer = new MutationObserver((mutations) => {
for (const m of mutations) {
for (const n of m.addedNodes) {
dispatch(n, m.target);
}
}
});
observer.observe(document, {
childList: true,
subtree: true,
});
window.onbeforescriptexecute = (e) => {
if (!e.script.textContent) {
return;
}
if (e.script.textContent.includes("vilos.config.player.language =")) {
var profilelang = e.script.textContent.match(/vilos\.config\.player\.language = \"(.*)\"/m)[1];
var newscript = e.script.textContent;
newscript = newscript.replace(/"hardsub_lang":"[a-zA-Z]{4}"/g, '"hardsub_lang":"abcd"');
newscript = newscript.replace(/\"hardsub_lang\":null/gi, '"hardsub_lang":"' + profilelang + '"');
newscript = newscript.replace(/\\\/clipFrom\\\/[0-9]+\\\/clipTo\\\/[0-9]+/g, '');
e.replacePayload(newscript);
}
}
})();
(PRECISA DAS EXTENÇÕES VIOLENTMONKEY OU TAMPERMONKEY)
// ==UserScript==
// @name crunchyroll_nosubs
// @namespace http://tampermonkey.net/
// @version 0.9
// @description disable subs on crunchyroll by default
// @author mescyn
// @match https://www.crunchyroll.com/
// @grant none
// @Run-at document-start
// ==/UserScript==
(function() {
'use strict';
const Event = class {
constructor(script, target) {
this.script = script;
this.target = target;
this._cancel = false;
this._replace = null;
this._stop = false;
}
preventDefault() {
this._cancel = true;
}
stopPropagation() {
this._stop = true;
}
replacePayload(payload) {
this._replace = payload;
}
};
let callbacks = [];
window.addBeforeScriptExecuteListener = (f) => {
if (typeof f !== "function") {
throw new Error("Event handler must be a function.");
}
callbacks.push(f);
};
window.removeBeforeScriptExecuteListener = (f) => {
let i = callbacks.length;
while (i--) {
if (callbacks === f) {
callbacks.splice(i, 1);
}
}
};
const dispatch = (script, target) => {
if (script.tagName !== "SCRIPT") {
return;
}
const e = new Event(script, target);
if (typeof window.onbeforescriptexecute === "function") {
try {
window.onbeforescriptexecute(e);
} catch (err) {
console.error(err);
}
}
for (const func of callbacks) {
if (e._stop) {
break;
}
try {
func(e);
} catch (err) {
console.error(err);
}
}
if (e._cancel) {
script.textContent = "";
script.remove();
} else if (typeof e._replace === "string") {
script.textContent = e._replace;
}
};
const observer = new MutationObserver((mutations) => {
for (const m of mutations) {
for (const n of m.addedNodes) {
dispatch(n, m.target);
}
}
});
observer.observe(document, {
childList: true,
subtree: true,
});
window.onbeforescriptexecute = (e) => {
if (!e.script.textContent) {
return;
}
if (e.script.textContent.includes("vilos.config.player.language =")) {
var profilelang = e.script.textContent.match(/vilos\.config\.player\.language = \"(.*)\"/m)[1];
var newscript = e.script.textContent;
newscript = newscript.replace(/"hardsub_lang":"[a-zA-Z]{4}"/g, '"hardsub_lang":"abcd"');
newscript = newscript.replace(/\"hardsub_lang\":null/gi, '"hardsub_lang":"' + profilelang + '"');
newscript = newscript.replace(/\\\/clipFrom\\\/[0-9]+\\\/clipTo\\\/[0-9]+/g, '');
e.replacePayload(newscript);
}
}
})();
(PRECISA DAS EXTENÇÕES VIOLENTMONKEY OU TAMPERMONKEY)