mirror of
https://codeberg.org/LibRedirect/libredirect.git
synced 2025-02-02 20:36:51 +01:00
Combined the instances methods to one function
This commit is contained in:
parent
85aadc0eb6
commit
5cc8ed3f60
@ -23,7 +23,7 @@ function updateInstances() {
|
||||
if (request.status === 200) {
|
||||
const instances = JSON.parse(request.responseText);
|
||||
|
||||
youtubeHelper.setInvidiousRedirects(instances.invidious);
|
||||
nameHelper.setInvidiousRedirects(instances.invidious);
|
||||
|
||||
twitterHelper.setRedirects(instances.nitter);
|
||||
|
||||
@ -50,8 +50,105 @@ function isFirefox() {
|
||||
return typeof InstallTrigger !== "undefined";
|
||||
}
|
||||
|
||||
function processDefaultCustomInstances(
|
||||
name,
|
||||
nameHelper,
|
||||
document,
|
||||
getNameRedirectsChecks,
|
||||
setNameRedirectsChecks,
|
||||
getNameCustomRedirects,
|
||||
setNameCustomRedirects
|
||||
) {
|
||||
|
||||
let nameCustomInstances = [];
|
||||
let nameCheckListElement = document.getElementById(`${name}-checklist`);
|
||||
let nameDefaultRedirects;
|
||||
|
||||
function calcNameCheckBoxes() {
|
||||
let isTrue = true;
|
||||
for (const item of nameHelper.getRedirects()[name].normal)
|
||||
if (!nameDefaultRedirects.includes(item)) {
|
||||
isTrue = false;
|
||||
break;
|
||||
}
|
||||
for (const element of nameCheckListElement.getElementsByTagName('input'))
|
||||
element.checked = nameDefaultRedirects.includes(element.id)
|
||||
document.getElementById(`${name}-toogle-all`).checked = isTrue;
|
||||
}
|
||||
|
||||
nameDefaultRedirects = getNameRedirectsChecks();
|
||||
nameCheckListElement.innerHTML =
|
||||
[
|
||||
`<div>Toggle All<input type="checkbox" id="${name}-toogle-all" /></div>`,
|
||||
...nameHelper.getRedirects()[name].normal.map((x) => `<div>${x}<input type="checkbox" id="${x}" /></div>`),
|
||||
].join('\n<hr>\n');
|
||||
|
||||
calcNameCheckBoxes();
|
||||
document.getElementById(`${name}-toogle-all`).addEventListener("change", (event) => {
|
||||
if (event.target.checked)
|
||||
nameDefaultRedirects = [...nameHelper.getRedirects()[name].normal];
|
||||
else
|
||||
nameDefaultRedirects = [];
|
||||
setNameRedirectsChecks(nameDefaultRedirects);
|
||||
calcNameCheckBoxes();
|
||||
});
|
||||
|
||||
for (let element of nameCheckListElement.getElementsByTagName('input')) {
|
||||
if (element.id != `${name}-toogle-all`)
|
||||
document.getElementById(element.id).addEventListener("change", (event) => {
|
||||
if (event.target.checked)
|
||||
nameDefaultRedirects.push(element.id)
|
||||
else {
|
||||
let index = nameDefaultRedirects.indexOf(element.id);
|
||||
if (index > -1) nameDefaultRedirects.splice(index, 1);
|
||||
}
|
||||
setNameRedirectsChecks(nameDefaultRedirects);
|
||||
calcNameCheckBoxes();
|
||||
});
|
||||
}
|
||||
|
||||
nameCustomInstances = getNameCustomRedirects();
|
||||
function calcNameCustomInstances() {
|
||||
document.getElementById(`${name}-custom-checklist`).innerHTML =
|
||||
nameCustomInstances.map(
|
||||
(x) => `<div>${x}<button class="add" id="clear-${x}">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px"
|
||||
fill="currentColor">
|
||||
<path d="M0 0h24v24H0V0z" fill="none" />
|
||||
<path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z" />
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
<hr>`
|
||||
).join('\n');
|
||||
|
||||
for (const item of nameCustomInstances) {
|
||||
document.getElementById(`clear-${item}`).addEventListener("click", () => {
|
||||
let index = nameCustomInstances.indexOf(item);
|
||||
if (index > -1) nameCustomInstances.splice(index, 1);
|
||||
setNameCustomRedirects(nameCustomInstances);
|
||||
calcNameCustomInstances();
|
||||
});
|
||||
}
|
||||
}
|
||||
calcNameCustomInstances();
|
||||
document.getElementById(`custom-${name}-instance-form`).addEventListener("submit", (event) => {
|
||||
event.preventDefault();
|
||||
let nameCustomInstanceInput = document.getElementById(`${name}-custom-instance`);
|
||||
let val = nameCustomInstanceInput.value
|
||||
if (nameCustomInstanceInput.validity.valid && !nameHelper.getRedirects()[name].normal.includes(val) && val.trim() != '') {
|
||||
if (!nameCustomInstances.includes(val)) {
|
||||
nameCustomInstances.push(val)
|
||||
setNameCustomRedirects(nameCustomInstances);
|
||||
}
|
||||
calcNameCustomInstances();
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
export default {
|
||||
getRandomInstance,
|
||||
updateInstances,
|
||||
isFirefox,
|
||||
processDefaultCustomInstances,
|
||||
};
|
||||
|
@ -1,4 +1,5 @@
|
||||
import youtubeHelper from "../../../assets/javascripts/helpers/youtube/youtube.js";
|
||||
import commonHelper from "../../../assets/javascripts/helpers/common.js";
|
||||
|
||||
let invidiousAlwaysProxyElement = document.getElementById("invidious-always-proxy");
|
||||
invidiousAlwaysProxyElement.addEventListener("change",
|
||||
@ -32,95 +33,14 @@ youtubeHelper.init().then(() => {
|
||||
invidiousSubtitlesElement.value = youtubeHelper.getInvidiousSubtitles();
|
||||
persistInvidiousPrefsElement.checked = youtubeHelper.getPersistInvidiousPrefs();
|
||||
|
||||
|
||||
invidiousDefaultRedirects = youtubeHelper.getInvidiousRedirectsChecks();
|
||||
invidiousCheckListElement.innerHTML =
|
||||
[
|
||||
'<div>Toggle All<input type="checkbox" id="invidious-toogle-all" /></div>',
|
||||
...youtubeHelper.getRedirects().invidious.normal.map((x) => `<div>${x}<input type="checkbox" id="${x}" /></div>`),
|
||||
].join('\n<hr>\n');
|
||||
|
||||
calcInvidiousCheckBoxes();
|
||||
document.getElementById('invidious-toogle-all').addEventListener("change", (event) => {
|
||||
if (event.target.checked)
|
||||
invidiousDefaultRedirects = [...youtubeHelper.getRedirects().invidious.normal];
|
||||
else
|
||||
invidiousDefaultRedirects = [];
|
||||
youtubeHelper.setInvidiousRedirectsChecks(invidiousDefaultRedirects);
|
||||
calcInvidiousCheckBoxes();
|
||||
});
|
||||
|
||||
for (let element of invidiousCheckListElement.getElementsByTagName('input')) {
|
||||
if (element.id != 'invidious-toogle-all')
|
||||
document.getElementById(element.id).addEventListener("change", (event) => {
|
||||
if (event.target.checked)
|
||||
invidiousDefaultRedirects.push(element.id)
|
||||
else {
|
||||
let index = invidiousDefaultRedirects.indexOf(element.id);
|
||||
if (index > -1) invidiousDefaultRedirects.splice(index, 1);
|
||||
}
|
||||
youtubeHelper.setInvidiousRedirectsChecks(invidiousDefaultRedirects);
|
||||
calcInvidiousCheckBoxes();
|
||||
});
|
||||
}
|
||||
|
||||
invidiousCustomInstances = youtubeHelper.getInvidiousCustomRedirects();
|
||||
calcInvidiousCustomInstances();
|
||||
commonHelper.processDefaultCustomInstances(
|
||||
'invidious',
|
||||
youtubeHelper,
|
||||
document,
|
||||
youtubeHelper.getInvidiousRedirectsChecks,
|
||||
youtubeHelper.setInvidiousRedirectsChecks,
|
||||
youtubeHelper.getInvidiousCustomRedirects,
|
||||
youtubeHelper.setInvidiousCustomRedirects
|
||||
)
|
||||
});
|
||||
|
||||
|
||||
let invidiousCustomInstanceInput = document.getElementById("invidious-custom-instance");
|
||||
let invidiousCustomInstances = [];
|
||||
|
||||
let invidiousCheckListElement = document.getElementById("invidious-checklist");
|
||||
|
||||
|
||||
let invidiousDefaultRedirects;
|
||||
|
||||
function calcInvidiousCheckBoxes() {
|
||||
let isTrue = true;
|
||||
for (const item of youtubeHelper.getRedirects().invidious.normal)
|
||||
if (!invidiousDefaultRedirects.includes(item)) {
|
||||
isTrue = false;
|
||||
break;
|
||||
}
|
||||
for (const element of invidiousCheckListElement.getElementsByTagName('input'))
|
||||
element.checked = invidiousDefaultRedirects.includes(element.id)
|
||||
document.getElementById('invidious-toogle-all').checked = isTrue;
|
||||
}
|
||||
|
||||
function calcInvidiousCustomInstances() {
|
||||
document.getElementById("invidious-custom-checklist").innerHTML =
|
||||
invidiousCustomInstances.map(
|
||||
(x) => `<div>${x}<button class="add" id="clear-${x}">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px"
|
||||
fill="currentColor">
|
||||
<path d="M0 0h24v24H0V0z" fill="none" />
|
||||
<path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z" />
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
<hr>`
|
||||
).join('\n');
|
||||
|
||||
for (const item of invidiousCustomInstances) {
|
||||
document.getElementById(`clear-${item}`).addEventListener("click", () => {
|
||||
let index = invidiousCustomInstances.indexOf(item);
|
||||
if (index > -1) invidiousCustomInstances.splice(index, 1);
|
||||
youtubeHelper.setInvidiousCustomRedirects(invidiousCustomInstances);
|
||||
calcInvidiousCustomInstances();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
document.getElementById("custom-invidious-instance-form").addEventListener("submit", (event) => {
|
||||
event.preventDefault();
|
||||
let val = invidiousCustomInstanceInput.value
|
||||
if (invidiousCustomInstanceInput.validity.valid && !youtubeHelper.getRedirects().invidious.normal.includes(val)) {
|
||||
if (!invidiousCustomInstances.includes(val)) {
|
||||
invidiousCustomInstances.push(val)
|
||||
youtubeHelper.setInvidiousCustomRedirects(invidiousCustomInstances);
|
||||
}
|
||||
calcInvidiousCustomInstances();
|
||||
}
|
||||
})
|
@ -1,94 +1,22 @@
|
||||
import youtubeHelper from "../../../assets/javascripts/helpers/youtube/youtube.js";
|
||||
import commonHelper from "../../../assets/javascripts/helpers/common.js";
|
||||
|
||||
youtubeHelper.init().then(() => {
|
||||
|
||||
pipedDefaultRedirects = youtubeHelper.getPipedRedirectsChecks();
|
||||
pipedCheckListElement.innerHTML =
|
||||
[
|
||||
'<div>Toggle All<input type="checkbox" id="piped-toogle-all" /></div>',
|
||||
...youtubeHelper.getRedirects().piped.normal.map((x) => `<div>${x}<input type="checkbox" id="${x}" /></div>`),
|
||||
].join('\n<hr>\n');
|
||||
|
||||
calcPipedCheckBoxes();
|
||||
document.getElementById('piped-toogle-all').addEventListener("change", (event) => {
|
||||
if (event.target.checked)
|
||||
pipedDefaultRedirects = [...youtubeHelper.getRedirects().piped.normal];
|
||||
else
|
||||
pipedDefaultRedirects = [];
|
||||
youtubeHelper.setPipedRedirectsChecks(pipedDefaultRedirects);
|
||||
calcPipedCheckBoxes();
|
||||
});
|
||||
|
||||
for (let element of pipedCheckListElement.getElementsByTagName('input')) {
|
||||
if (element.id != 'piped-toogle-all')
|
||||
document.getElementById(element.id).addEventListener("change", (event) => {
|
||||
if (event.target.checked)
|
||||
pipedDefaultRedirects.push(element.id)
|
||||
else {
|
||||
let index = pipedDefaultRedirects.indexOf(element.id);
|
||||
if (index > -1) pipedDefaultRedirects.splice(index, 1);
|
||||
}
|
||||
youtubeHelper.setPipedRedirectsChecks(pipedDefaultRedirects);
|
||||
calcPipedCheckBoxes();
|
||||
});
|
||||
}
|
||||
|
||||
pipedCustomInstances = youtubeHelper.getPipedCustomRedirects();
|
||||
calcPipedCustomInstances();
|
||||
commonHelper.processDefaultCustomInstances(
|
||||
'piped',
|
||||
youtubeHelper,
|
||||
document,
|
||||
youtubeHelper.getPipedRedirectsChecks,
|
||||
youtubeHelper.setPipedRedirectsChecks,
|
||||
youtubeHelper.getPipedCustomRedirects,
|
||||
youtubeHelper.setPipedCustomRedirects
|
||||
)
|
||||
});
|
||||
|
||||
|
||||
let pipedCustomInstanceInput = document.getElementById("piped-custom-instance");
|
||||
let pipedCustomInstances = [];
|
||||
|
||||
let pipedCheckListElement = document.getElementById("piped-checklist");
|
||||
|
||||
let pipedDefaultRedirects;
|
||||
|
||||
function calcPipedCheckBoxes() {
|
||||
let isTrue = true;
|
||||
for (const item of youtubeHelper.getRedirects().piped.normal)
|
||||
if (!pipedDefaultRedirects.includes(item)) {
|
||||
isTrue = false;
|
||||
break;
|
||||
}
|
||||
for (const element of pipedCheckListElement.getElementsByTagName('input'))
|
||||
element.checked = pipedDefaultRedirects.includes(element.id)
|
||||
document.getElementById('piped-toogle-all').checked = isTrue;
|
||||
}
|
||||
|
||||
function calcPipedCustomInstances() {
|
||||
document.getElementById("piped-custom-checklist").innerHTML =
|
||||
pipedCustomInstances.map(
|
||||
(x) => `<div>${x}<button class="add" id="clear-${x}">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px"
|
||||
fill="currentColor">
|
||||
<path d="M0 0h24v24H0V0z" fill="none" />
|
||||
<path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z" />
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
<hr>`
|
||||
).join('\n');
|
||||
|
||||
for (const item of pipedCustomInstances) {
|
||||
document.getElementById(`clear-${item}`).addEventListener("click", () => {
|
||||
let index = pipedCustomInstances.indexOf(item);
|
||||
if (index > -1) pipedCustomInstances.splice(index, 1);
|
||||
youtubeHelper.setPipedCustomRedirects(pipedCustomInstances);
|
||||
calcPipedCustomInstances();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
document.getElementById("custom-piped-instance-form").addEventListener("submit", (event) => {
|
||||
event.preventDefault();
|
||||
let val = pipedCustomInstanceInput.value
|
||||
if (pipedCustomInstanceInput.validity.valid && !youtubeHelper.getRedirects().piped.normal.includes(val)) {
|
||||
if (!pipedCustomInstances.includes(val)) {
|
||||
pipedCustomInstances.push(val)
|
||||
youtubeHelper.setPipedCustomRedirects(pipedCustomInstances);
|
||||
}
|
||||
calcPipedCustomInstances();
|
||||
}
|
||||
})
|
Loading…
x
Reference in New Issue
Block a user