Added Nitter settings #138
This commit is contained in:
parent
715cc566b6
commit
12e352b6b3
@ -65,7 +65,7 @@ async function init() {
|
||||
"popupFrontends",
|
||||
"autoRedirect"
|
||||
],
|
||||
r => { // r = result
|
||||
r => {
|
||||
if (r.exceptions) exceptions = r.exceptions;
|
||||
alwaysUsePreferred = r.alwaysUsePreferred ?? false;
|
||||
|
||||
|
@ -171,7 +171,7 @@ async function init() {
|
||||
|
||||
"imgurProtocol",
|
||||
],
|
||||
r => { // r = result
|
||||
r => {
|
||||
disable = r.disableImgur ?? false;
|
||||
|
||||
protocol = r.imgurProtocol ?? "normal";
|
||||
|
@ -110,6 +110,59 @@ function setBypassWatchOnTwitter(val) {
|
||||
|
||||
let alwaysUsePreferred;
|
||||
|
||||
let theme;
|
||||
const getTheme = () => theme;
|
||||
|
||||
let infiniteScroll;
|
||||
const getInfiniteScroll = () => infiniteScroll;
|
||||
|
||||
let stickyProfile;
|
||||
const getStickyProfile = () => stickyProfile;
|
||||
|
||||
let bidiSupport;
|
||||
const getBidiSupport = () => bidiSupport;
|
||||
|
||||
let hideTweetStats;
|
||||
const getHideTweetStats = () => hideTweetStats;
|
||||
|
||||
let hideBanner;
|
||||
const getHideBanner = () => hideBanner;
|
||||
|
||||
let hidePins;
|
||||
const getHidePins = () => hidePins;
|
||||
|
||||
let hideReplies;
|
||||
const getHideReplies = () => hideReplies;
|
||||
|
||||
let squareAvatars;
|
||||
const getSquareAvatars = () => squareAvatars;
|
||||
|
||||
let mp4Playback;
|
||||
const getMp4Playback = () => mp4Playback;
|
||||
|
||||
let hlsPlayback;
|
||||
const getHlsPlayback = () => hlsPlayback;
|
||||
|
||||
let proxyVideos;
|
||||
const getProxyVideos = () => proxyVideos;
|
||||
|
||||
let muteVideos;
|
||||
const getMuteVideos = () => muteVideos;
|
||||
|
||||
let autoplayGifs;
|
||||
const getAutoplayGifs = () => autoplayGifs;
|
||||
|
||||
|
||||
|
||||
async function setSettings(val) {
|
||||
return new Promise(
|
||||
resolve => {
|
||||
browser.storage.local.set(val).then(resolve);
|
||||
}
|
||||
)
|
||||
|
||||
}
|
||||
|
||||
function redirect(url, initiator) {
|
||||
let protocolHost = commonHelper.protocolHost(url);
|
||||
let isNitter = [
|
||||
@ -224,32 +277,93 @@ function isNitter(url, type) {
|
||||
].includes(protocolHost);
|
||||
}
|
||||
|
||||
let theme;
|
||||
let applyThemeToSites;
|
||||
function initNitterCookies() {
|
||||
let themeValue;
|
||||
if (theme == 'light') themeValue = 'Twitter';
|
||||
if (theme == 'dark') themeValue = 'Twitter Dark';
|
||||
if (applyThemeToSites && themeValue) {
|
||||
if (enableCustomSettings) {
|
||||
let allInstances = [...redirects.nitter.normal, ...redirects.nitter.tor, ...nitterNormalCustomRedirects, ...nitterTorCustomRedirects]
|
||||
let checkedInstances = [...nitterNormalRedirectsChecks, ...nitterNormalCustomRedirects, ...nitterTorRedirectsChecks, ...nitterTorCustomRedirects]
|
||||
for (const instanceUrl of allInstances)
|
||||
if (!checkedInstances.includes(instanceUrl))
|
||||
browser.cookies.remove({
|
||||
url: instanceUrl,
|
||||
name: "theme",
|
||||
})
|
||||
for (const instanceUrl of checkedInstances)
|
||||
for (const instanceUrl of allInstances) if (!checkedInstances.includes(instanceUrl))
|
||||
browser.cookies.remove({
|
||||
url: instanceUrl,
|
||||
name: "theme",
|
||||
})
|
||||
for (const instanceUrl of checkedInstances) {
|
||||
browser.cookies.set({
|
||||
url: instanceUrl,
|
||||
name: "theme",
|
||||
value: themeValue
|
||||
value: theme,
|
||||
})
|
||||
browser.cookies.set({
|
||||
url: instanceUrl,
|
||||
name: "infiniteScroll",
|
||||
value: infiniteScroll ? 'on' : '',
|
||||
})
|
||||
browser.cookies.set({
|
||||
url: instanceUrl,
|
||||
name: "stickyProfile",
|
||||
value: stickyProfile ? 'on' : '',
|
||||
})
|
||||
browser.cookies.set({
|
||||
url: instanceUrl,
|
||||
name: "bidiSupport",
|
||||
value: bidiSupport ? 'on' : '',
|
||||
})
|
||||
browser.cookies.set({
|
||||
url: instanceUrl,
|
||||
name: "hideTweetStats",
|
||||
value: hideTweetStats ? 'on' : '',
|
||||
})
|
||||
browser.cookies.set({
|
||||
url: instanceUrl,
|
||||
name: "hideBanner",
|
||||
value: hideBanner ? 'on' : '',
|
||||
})
|
||||
browser.cookies.set({
|
||||
url: instanceUrl,
|
||||
name: "hidePins",
|
||||
value: hidePins ? 'on' : '',
|
||||
})
|
||||
browser.cookies.set({
|
||||
url: instanceUrl,
|
||||
name: "hideReplies",
|
||||
value: hideReplies ? 'on' : '',
|
||||
})
|
||||
browser.cookies.set({
|
||||
url: instanceUrl,
|
||||
name: "squareAvatars",
|
||||
value: squareAvatars ? 'on' : '',
|
||||
})
|
||||
browser.cookies.set({
|
||||
url: instanceUrl,
|
||||
name: "mp4Playback",
|
||||
value: mp4Playback ? 'on' : '',
|
||||
})
|
||||
browser.cookies.set({
|
||||
url: instanceUrl,
|
||||
name: "hlsPlayback",
|
||||
value: hlsPlayback ? 'on' : '',
|
||||
})
|
||||
browser.cookies.set({
|
||||
url: instanceUrl,
|
||||
name: "proxyVideos",
|
||||
value: proxyVideos ? 'on' : '',
|
||||
})
|
||||
browser.cookies.set({
|
||||
url: instanceUrl,
|
||||
name: "muteVideos",
|
||||
value: muteVideos ? 'on' : '',
|
||||
})
|
||||
browser.cookies.set({
|
||||
url: instanceUrl,
|
||||
name: "autoplayGifs",
|
||||
value: autoplayGifs ? 'on' : '',
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async function init() {
|
||||
return new Promise((resolve) => {
|
||||
return new Promise(resolve => {
|
||||
fetch('/instances/data.json').then(response => response.text()).then(data => {
|
||||
let dataJson = JSON.parse(data);
|
||||
browser.storage.local.get(
|
||||
@ -259,10 +373,6 @@ async function init() {
|
||||
"enableTwitterCustomSettings",
|
||||
|
||||
"twitterRedirects",
|
||||
|
||||
"theme",
|
||||
"applyThemeToSites",
|
||||
|
||||
"bypassWatchOnTwitter",
|
||||
|
||||
"nitterNormalRedirectsChecks",
|
||||
@ -272,8 +382,22 @@ async function init() {
|
||||
"nitterTorCustomRedirects",
|
||||
|
||||
"twitterProtocol",
|
||||
|
||||
"alwaysUsePreferred",
|
||||
|
||||
"nitterTheme",
|
||||
"nitterInfiniteScroll",
|
||||
"nitterStickyProfile",
|
||||
"nitterBidiSupport",
|
||||
"nitterHideTweetStats",
|
||||
"nitterHideBanner",
|
||||
"nitterHidePins",
|
||||
"nitterHideReplies",
|
||||
"nitterSquareAvatars",
|
||||
"nitterMp4Playback",
|
||||
"nitterHlsPlayback",
|
||||
"nitterProxyVideos",
|
||||
"nitterMuteVideos",
|
||||
"nitterAutoplayGifs",
|
||||
],
|
||||
r => {
|
||||
disable = r.disableTwitter ?? false;
|
||||
@ -297,6 +421,21 @@ async function init() {
|
||||
nitterTorRedirectsChecks = r.nitterTorRedirectsChecks ?? [...redirects.nitter.tor];
|
||||
nitterTorCustomRedirects = r.nitterTorCustomRedirects ?? [];
|
||||
|
||||
theme = r.nitterTheme ?? 'Auto';
|
||||
infiniteScroll = r.nitterInfiniteScroll ?? false;
|
||||
stickyProfile = r.nitterStickyProfile ?? true;
|
||||
bidiSupport = r.nitterBidiSupport ?? false;
|
||||
hideTweetStats = r.nitterHideTweetStats ?? false;
|
||||
hideBanner = r.nitterHideBanner ?? false;
|
||||
hidePins = r.nitterHidePins ?? false;
|
||||
hideReplies = r.nitterHideReplies ?? false;
|
||||
squareAvatars = r.nitterSquareAvatars ?? false;
|
||||
mp4Playback = r.nitterMp4Playback ?? true;
|
||||
hlsPlayback = r.nitterHlsPlayback ?? false;
|
||||
proxyVideos = r.nitterProxyVideos ?? true;
|
||||
muteVideos = r.nitterMuteVideos ?? false;
|
||||
autoplayGifs = r.nitterAutoplayGifs ?? true;
|
||||
|
||||
initNitterCookies();
|
||||
|
||||
resolve();
|
||||
@ -340,6 +479,23 @@ export default {
|
||||
isNitter,
|
||||
initNitterCookies,
|
||||
|
||||
getTheme,
|
||||
getInfiniteScroll,
|
||||
getStickyProfile,
|
||||
getBidiSupport,
|
||||
getHideTweetStats,
|
||||
getHideBanner,
|
||||
getHidePins,
|
||||
getHideReplies,
|
||||
getSquareAvatars,
|
||||
getMp4Playback,
|
||||
getHlsPlayback,
|
||||
getProxyVideos,
|
||||
getMuteVideos,
|
||||
getAutoplayGifs,
|
||||
|
||||
setSettings,
|
||||
|
||||
redirect,
|
||||
init,
|
||||
switchInstance,
|
||||
|
@ -199,7 +199,7 @@ async function init() {
|
||||
"theme",
|
||||
"applyThemeToSites",
|
||||
|
||||
], r => { // r = result
|
||||
], r => {
|
||||
disable = r.disableWikipedia ?? true;
|
||||
|
||||
protocol = r.wikipediaProtocol ?? "normal";
|
||||
|
@ -5,7 +5,6 @@ window.browser = window.browser || window.chrome;
|
||||
export let youtubeListen;
|
||||
export const getYoutubeListen = () => youtubeListen;
|
||||
|
||||
|
||||
export let volume;
|
||||
export const getVolume = () => volume;
|
||||
export function setVolume(val) {
|
||||
|
@ -581,7 +581,7 @@ async function init() {
|
||||
|
||||
"bypassWatchOnYoutube"
|
||||
],
|
||||
r => { // r = result
|
||||
r => {
|
||||
redirects.invidious = dataJson.invidious;
|
||||
if (r.youtubeRedirects) redirects = r.youtubeRedirects;
|
||||
|
||||
@ -628,99 +628,58 @@ async function init() {
|
||||
|
||||
export default {
|
||||
setYoutubeSettings,
|
||||
|
||||
getBypassWatchOnYoutube,
|
||||
|
||||
initPipedLocalStorage,
|
||||
initPipedMaterialLocalStorage,
|
||||
|
||||
getFrontend,
|
||||
|
||||
getYoutubeEmbedFrontend,
|
||||
|
||||
getRedirects,
|
||||
getCustomRedirects,
|
||||
setInvidiousRedirects,
|
||||
setPipedRedirects,
|
||||
|
||||
redirect,
|
||||
switchInstance,
|
||||
|
||||
isPipedorInvidious,
|
||||
|
||||
initInvidiousCookies,
|
||||
|
||||
getInvidiousAlwaysProxy,
|
||||
|
||||
getInvidiousQuality,
|
||||
|
||||
getInvidiousPlayerStyle,
|
||||
|
||||
getInvidiousVideoLoop,
|
||||
|
||||
|
||||
getDisable,
|
||||
setDisable,
|
||||
|
||||
getEnableCustomSettings,
|
||||
|
||||
getProtocol,
|
||||
|
||||
getOnlyEmbeddedVideo,
|
||||
|
||||
setVolume,
|
||||
getVolume,
|
||||
|
||||
setAutoplay,
|
||||
getAutoplay,
|
||||
|
||||
getInvidiousContinueAutoplay,
|
||||
|
||||
getInvidiousContinue,
|
||||
|
||||
getYoutubeListen,
|
||||
|
||||
getInvidiousSpeed,
|
||||
|
||||
getInvidiousQualityDash,
|
||||
|
||||
getInvidiousComments,
|
||||
|
||||
getInvidiousCaptions,
|
||||
|
||||
getInvidiousRelatedVideos,
|
||||
|
||||
getInvidiousAnnotations,
|
||||
|
||||
getInvidiousExtendDesc,
|
||||
|
||||
getInvidiousVrMode,
|
||||
|
||||
getInvidiousSavePlayerPos,
|
||||
|
||||
getPipedBufferGoal,
|
||||
|
||||
getPipedComments,
|
||||
|
||||
getPipedDisableLBRY,
|
||||
|
||||
getPipedEnabledCodecs,
|
||||
|
||||
getPipedHomepage,
|
||||
|
||||
getPipedMinimizeDescription,
|
||||
|
||||
getPipedProxyLBRY,
|
||||
|
||||
getPipedQuality,
|
||||
|
||||
getPipedRegion,
|
||||
|
||||
getPipedSelectedSkip,
|
||||
|
||||
getPipedSponsorblock,
|
||||
|
||||
getPipedWatchHistory,
|
||||
|
||||
getPipedMaterialSkipToLastPoint,
|
||||
|
||||
getInvidiousNormalRedirectsChecks,
|
||||
|
@ -165,10 +165,9 @@
|
||||
|
||||
<div class="some-block option-block">
|
||||
<h4 data-localise="__MSG_theme__">Theme</h4>
|
||||
<select name="theme">
|
||||
<select class="theme">
|
||||
<option value="Auto">Auto</option>
|
||||
<option value="Auto (Twitter)">Auto (Twitter)</option>
|
||||
<option value="Auto (Twitter)">Auto (Twitter)</option>
|
||||
<option value="Black">Black</option>
|
||||
<option value="Mastodon">Mastodon</option>
|
||||
<option value="Nitter">Nitter</option>
|
||||
@ -239,6 +238,12 @@
|
||||
<input class="proxyVideos" type="checkbox" />
|
||||
</div>
|
||||
|
||||
|
||||
<div class="some-block option-block">
|
||||
<h4 data-localise="__MSG_muteVideos__">Mute videos by default</h4>
|
||||
<input class="muteVideos" type="checkbox" />
|
||||
</div>
|
||||
|
||||
<div class="some-block option-block">
|
||||
<h4 data-localise="__MSG_autoplayGifs__">Autoplay gifs</h4>
|
||||
<input class="autoplayGifs" type="checkbox" />
|
||||
|
@ -7,13 +7,49 @@ let protocolElement = document.getElementById("protocol");
|
||||
let enableYoutubeCustomSettingsElement = document.getElementById("enable-twitter-custom-settings");
|
||||
let bypassWatchOnTwitterElement = document.getElementById("bypass-watch-on-twitter");
|
||||
|
||||
let theme = document.getElementById('nitter').getElementsByClassName("theme")[0];
|
||||
let infiniteScroll = document.getElementById('nitter').getElementsByClassName("infiniteScroll")[0];
|
||||
let stickyProfile = document.getElementById('nitter').getElementsByClassName('stickyProfile')[0];
|
||||
let bidiSupport = document.getElementById('nitter').getElementsByClassName('bidiSupport')[0];
|
||||
let hideTweetStats = document.getElementById('nitter').getElementsByClassName('hideTweetStats')[0];
|
||||
let hideBanner = document.getElementById('nitter').getElementsByClassName('hideBanner')[0];
|
||||
let hidePins = document.getElementById('nitter').getElementsByClassName('hidePins')[0];
|
||||
let hideReplies = document.getElementById('nitter').getElementsByClassName('hideReplies')[0];
|
||||
let squareAvatars = document.getElementById('nitter').getElementsByClassName('squareAvatars')[0];
|
||||
let mp4Playback = document.getElementById('nitter').getElementsByClassName('mp4Playback')[0];
|
||||
let hlsPlayback = document.getElementById('nitter').getElementsByClassName('hlsPlayback')[0];
|
||||
let proxyVideos = document.getElementById('nitter').getElementsByClassName('proxyVideos')[0];
|
||||
let muteVideos = document.getElementById('nitter').getElementsByClassName('muteVideos')[0];
|
||||
let autoplayGifs = document.getElementById('nitter').getElementsByClassName('autoplayGifs')[0];
|
||||
|
||||
let nitterElement = document.getElementById("nitter");
|
||||
document.addEventListener("change", _ => {
|
||||
document.addEventListener("change", async _ => {
|
||||
twitterHelper.setDisable(!disableTwitterElement.checked)
|
||||
twitterHelper.setProtocol(protocolElement.value);
|
||||
twitterHelper.setEnableCustomSettings(enableYoutubeCustomSettingsElement.checked);
|
||||
twitterHelper.setBypassWatchOnTwitter(bypassWatchOnTwitterElement.checked);
|
||||
changeProtocolSettings(protocolElement.value);
|
||||
|
||||
await twitterHelper.setSettings({
|
||||
// Display
|
||||
nitterTheme: theme.value,
|
||||
nitterInfiniteScroll: infiniteScroll.checked,
|
||||
nitterStickyProfile: stickyProfile.checked,
|
||||
nitterBidiSupport: bidiSupport.checked,
|
||||
nitterHideTweetStats: hideTweetStats.checked,
|
||||
nitterHideBanner: hideBanner.checked,
|
||||
nitterHidePins: hidePins.checked,
|
||||
nitterHideReplies: hideReplies.checked,
|
||||
nitterSquareAvatars: squareAvatars.checked,
|
||||
|
||||
// Media
|
||||
nitterMp4Playback: mp4Playback.checked,
|
||||
nitterHlsPlayback: hlsPlayback.checked,
|
||||
nitterProxyVideos: proxyVideos.checked,
|
||||
nitterMuteVideos: muteVideos.checked,
|
||||
nitterAutoplayGifs: autoplayGifs.checked,
|
||||
});
|
||||
init();
|
||||
})
|
||||
|
||||
function changeProtocolSettings(protocol) {
|
||||
@ -33,33 +69,51 @@ function changeProtocolSettings(protocol) {
|
||||
for (const item of customSettingsDivElement) item.style.display = 'none';
|
||||
}
|
||||
|
||||
twitterHelper.init().then(() => {
|
||||
disableTwitterElement.checked = !twitterHelper.getDisable();
|
||||
enableYoutubeCustomSettingsElement.checked = twitterHelper.getEnableCustomSettings();
|
||||
bypassWatchOnTwitterElement.checked = twitterHelper.getBypassWatchOnTwitter();
|
||||
function init() {
|
||||
twitterHelper.init().then(() => {
|
||||
disableTwitterElement.checked = !twitterHelper.getDisable();
|
||||
enableYoutubeCustomSettingsElement.checked = twitterHelper.getEnableCustomSettings();
|
||||
bypassWatchOnTwitterElement.checked = twitterHelper.getBypassWatchOnTwitter();
|
||||
|
||||
let protocol = twitterHelper.getProtocol();
|
||||
protocolElement.value = protocol;
|
||||
changeProtocolSettings(protocol);
|
||||
let protocol = twitterHelper.getProtocol();
|
||||
protocolElement.value = protocol;
|
||||
changeProtocolSettings(protocol);
|
||||
console.log('init');
|
||||
theme.value = twitterHelper.getTheme();
|
||||
infiniteScroll.checked = twitterHelper.getInfiniteScroll();
|
||||
stickyProfile.checked = twitterHelper.getStickyProfile();
|
||||
bidiSupport.checked = twitterHelper.getBidiSupport();
|
||||
hideTweetStats.checked = twitterHelper.getHideTweetStats();
|
||||
hideBanner.checked = twitterHelper.getHideBanner();
|
||||
hidePins.checked = twitterHelper.getHidePins();
|
||||
hideReplies.checked = twitterHelper.getHideReplies();
|
||||
squareAvatars.checked = twitterHelper.getSquareAvatars();
|
||||
mp4Playback.checked = twitterHelper.getMp4Playback();
|
||||
hlsPlayback.checked = twitterHelper.getHlsPlayback();
|
||||
proxyVideos.checked = twitterHelper.getProxyVideos();
|
||||
muteVideos.checked = twitterHelper.getMuteVideos();
|
||||
autoplayGifs.checked = twitterHelper.getAutoplayGifs();
|
||||
|
||||
commonHelper.processDefaultCustomInstances(
|
||||
'nitter',
|
||||
'normal',
|
||||
twitterHelper,
|
||||
document,
|
||||
twitterHelper.getNitterNormalRedirectsChecks,
|
||||
twitterHelper.setNitterNormalRedirectsChecks,
|
||||
twitterHelper.getNitterNormalCustomRedirects,
|
||||
twitterHelper.setNitterNormalCustomRedirects
|
||||
)
|
||||
commonHelper.processDefaultCustomInstances(
|
||||
'nitter',
|
||||
'tor',
|
||||
twitterHelper,
|
||||
document,
|
||||
twitterHelper.getNitterTorRedirectsChecks,
|
||||
twitterHelper.setNitterTorRedirectsChecks,
|
||||
twitterHelper.getNitterTorCustomRedirects,
|
||||
twitterHelper.setNitterTorCustomRedirects
|
||||
)
|
||||
});
|
||||
commonHelper.processDefaultCustomInstances(
|
||||
'nitter',
|
||||
'normal',
|
||||
twitterHelper,
|
||||
document,
|
||||
twitterHelper.getNitterNormalRedirectsChecks,
|
||||
twitterHelper.setNitterNormalRedirectsChecks,
|
||||
twitterHelper.getNitterNormalCustomRedirects,
|
||||
twitterHelper.setNitterNormalCustomRedirects
|
||||
)
|
||||
commonHelper.processDefaultCustomInstances(
|
||||
'nitter',
|
||||
'tor',
|
||||
twitterHelper,
|
||||
document,
|
||||
twitterHelper.getNitterTorRedirectsChecks,
|
||||
twitterHelper.setNitterTorRedirectsChecks,
|
||||
twitterHelper.getNitterTorCustomRedirects,
|
||||
twitterHelper.setNitterTorCustomRedirects
|
||||
)
|
||||
});
|
||||
}
|
||||
init();
|
||||
|
Loading…
x
Reference in New Issue
Block a user