Update Reddit-related text for consistency, bugfix
Even when on an old Reddit view, redirect from desktop or mobile depending on whichever one the redirect is set to.
This commit is contained in:
parent
a8103915af
commit
2603e7a9ea
|
@ -88,14 +88,14 @@ const redditDomains = [
|
||||||
"www.reddit.com",
|
"www.reddit.com",
|
||||||
"np.reddit.com",
|
"np.reddit.com",
|
||||||
"new.reddit.com",
|
"new.reddit.com",
|
||||||
"amp.reddit.com"
|
"amp.reddit.com",
|
||||||
];
|
];
|
||||||
const redditBypassPaths = /\/(gallery\/poll\/rpan\/settings\/topics)/;
|
const redditBypassPaths = /\/(gallery\/poll\/rpan\/settings\/topics)/;
|
||||||
const redditVersions = [
|
const oldRedditViews = [
|
||||||
"https://old.reddit.com",
|
"https://old.reddit.com", // desktop
|
||||||
"https://i.reddit.com" // Old Mobile view
|
"https://i.reddit.com" // mobile
|
||||||
];
|
];
|
||||||
const redditDefault = redditVersions[0];
|
const redditDefault = oldRedditViews[0];
|
||||||
const googleMapsRegex = /https?:\/\/(((www|maps)\.)?(google\.).*(\/maps)|maps\.(google\.).*)/;
|
const googleMapsRegex = /https?:\/\/(((www|maps)\.)?(google\.).*(\/maps)|maps\.(google\.).*)/;
|
||||||
const mapCentreRegex = /@(-?\d[0-9.]*),(-?\d[0-9.]*),(\d{1,2})[.z]/;
|
const mapCentreRegex = /@(-?\d[0-9.]*),(-?\d[0-9.]*),(\d{1,2})[.z]/;
|
||||||
const dataLatLngRegex = /(!3d|!4d)(-?[0-9]{1,10}.[0-9]{1,10})/g;
|
const dataLatLngRegex = /(!3d|!4d)(-?[0-9]{1,10}.[0-9]{1,10})/g;
|
||||||
|
@ -117,12 +117,12 @@ let disableNitter;
|
||||||
let disableInvidious;
|
let disableInvidious;
|
||||||
let disableBibliogram;
|
let disableBibliogram;
|
||||||
let disableOsm;
|
let disableOsm;
|
||||||
let disableRedditVersion;
|
let disableOldReddit;
|
||||||
let nitterInstance;
|
let nitterInstance;
|
||||||
let invidiousInstance;
|
let invidiousInstance;
|
||||||
let bibliogramInstance;
|
let bibliogramInstance;
|
||||||
let osmInstance;
|
let osmInstance;
|
||||||
let redditVersion;
|
let oldRedditView;
|
||||||
let alwaysProxy;
|
let alwaysProxy;
|
||||||
let onlyEmbeddedVideo;
|
let onlyEmbeddedVideo;
|
||||||
let videoQuality;
|
let videoQuality;
|
||||||
|
@ -141,12 +141,12 @@ browser.storage.sync.get(
|
||||||
"invidiousInstance",
|
"invidiousInstance",
|
||||||
"bibliogramInstance",
|
"bibliogramInstance",
|
||||||
"osmInstance",
|
"osmInstance",
|
||||||
"redditVersion",
|
"oldRedditView",
|
||||||
"disableNitter",
|
"disableNitter",
|
||||||
"disableInvidious",
|
"disableInvidious",
|
||||||
"disableBibliogram",
|
"disableBibliogram",
|
||||||
"disableOsm",
|
"disableOsm",
|
||||||
"disableRedditVersion",
|
"disableOldReddit",
|
||||||
"alwaysProxy",
|
"alwaysProxy",
|
||||||
"onlyEmbeddedVideo",
|
"onlyEmbeddedVideo",
|
||||||
"videoQuality",
|
"videoQuality",
|
||||||
|
@ -162,12 +162,12 @@ browser.storage.sync.get(
|
||||||
disableInvidious = result.disableInvidious;
|
disableInvidious = result.disableInvidious;
|
||||||
disableBibliogram = result.disableBibliogram;
|
disableBibliogram = result.disableBibliogram;
|
||||||
disableOsm = result.disableOsm;
|
disableOsm = result.disableOsm;
|
||||||
disableRedditVersion = result.disableRedditVersion;
|
disableOldReddit = result.disableOldReddit;
|
||||||
nitterInstance = result.nitterInstance;
|
nitterInstance = result.nitterInstance;
|
||||||
invidiousInstance = result.invidiousInstance;
|
invidiousInstance = result.invidiousInstance;
|
||||||
bibliogramInstance = result.bibliogramInstance;
|
bibliogramInstance = result.bibliogramInstance;
|
||||||
osmInstance = result.osmInstance || osmDefault;
|
osmInstance = result.osmInstance || osmDefault;
|
||||||
redditVersion = result.redditVersion || redditDefault;
|
oldRedditView = result.oldRedditView || redditDefault;
|
||||||
alwaysProxy = result.alwaysProxy;
|
alwaysProxy = result.alwaysProxy;
|
||||||
onlyEmbeddedVideo = result.onlyEmbeddedVideo;
|
onlyEmbeddedVideo = result.onlyEmbeddedVideo;
|
||||||
videoQuality = result.videoQuality;
|
videoQuality = result.videoQuality;
|
||||||
|
@ -197,8 +197,8 @@ browser.storage.onChanged.addListener((changes) => {
|
||||||
if ("osmInstance" in changes) {
|
if ("osmInstance" in changes) {
|
||||||
osmInstance = changes.osmInstance.newValue || osmDefault;
|
osmInstance = changes.osmInstance.newValue || osmDefault;
|
||||||
}
|
}
|
||||||
if ("redditVersion" in changes) {
|
if ("oldRedditView" in changes) {
|
||||||
redditVersion = changes.redditVersion.newValue || redditDefault;
|
oldRedditView = changes.oldRedditView.newValue || redditDefault;
|
||||||
}
|
}
|
||||||
if ("disableNitter" in changes) {
|
if ("disableNitter" in changes) {
|
||||||
disableNitter = changes.disableNitter.newValue;
|
disableNitter = changes.disableNitter.newValue;
|
||||||
|
@ -212,8 +212,8 @@ browser.storage.onChanged.addListener((changes) => {
|
||||||
if ("disableOsm" in changes) {
|
if ("disableOsm" in changes) {
|
||||||
disableOsm = changes.disableOsm.newValue;
|
disableOsm = changes.disableOsm.newValue;
|
||||||
}
|
}
|
||||||
if ("disableRedditVersion" in changes) {
|
if ("disableOldReddit" in changes) {
|
||||||
disableRedditVersion = changes.disableRedditVersion.newValue;
|
disableOldReddit = changes.disableOldReddit.newValue;
|
||||||
}
|
}
|
||||||
if ("alwaysProxy" in changes) {
|
if ("alwaysProxy" in changes) {
|
||||||
alwaysProxy = changes.alwaysProxy.newValue;
|
alwaysProxy = changes.alwaysProxy.newValue;
|
||||||
|
@ -498,23 +498,18 @@ function redirectGoogleMaps(url, initiator) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function redirectReddit(url, initiator, type) {
|
function redirectReddit(url, initiator, type) {
|
||||||
if (disableRedditVersion || isException(url, initiator)) {
|
if (disableOldReddit || isException(url, initiator)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
// Do not redirect old or mobile Reddit versions on normal Reddit links
|
// Do not redirect when already on the selected view
|
||||||
if (
|
if (initiator && initiator.origin === oldRedditView || url.origin === oldRedditView) {
|
||||||
initiator &&
|
|
||||||
(initiator.origin === redditVersion ||
|
|
||||||
redditVersions.includes(initiator.origin) ||
|
|
||||||
redditVersions.includes(initiator.host))
|
|
||||||
) {
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
// Do not redirect anything other than main_frame
|
// Do not redirect anything other than main_frame
|
||||||
if (type !== "main_frame" || url.pathname.match(redditBypassPaths)) {
|
if (type !== "main_frame" || url.pathname.match(redditBypassPaths)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return `${redditVersion}${url.pathname}${url.search}`;
|
return `${oldRedditView}${url.pathname}${url.search}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
browser.webRequest.onBeforeRequest.addListener(
|
browser.webRequest.onBeforeRequest.addListener(
|
||||||
|
@ -543,7 +538,7 @@ browser.webRequest.onBeforeRequest.addListener(
|
||||||
redirect = {
|
redirect = {
|
||||||
redirectUrl: redirectGoogleMaps(url, initiator),
|
redirectUrl: redirectGoogleMaps(url, initiator),
|
||||||
};
|
};
|
||||||
} else if (redditDomains.includes(url.host)) {
|
} else if (redditDomains.includes(url.host) || oldRedditViews.includes(url.origin)) {
|
||||||
redirect = {
|
redirect = {
|
||||||
redirectUrl: redirectReddit(url, initiator, details.type),
|
redirectUrl: redirectReddit(url, initiator, details.type),
|
||||||
}
|
}
|
||||||
|
|
|
@ -121,22 +121,22 @@
|
||||||
</table>
|
</table>
|
||||||
</section>
|
</section>
|
||||||
<section class="settings-block">
|
<section class="settings-block">
|
||||||
<table class="option" aria-label="Toggle Reddit version redirects">
|
<table class="option" aria-label="Toggle old Reddit redirects">
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<h1 data-localise="__MSG_disableRedditVersion__">
|
<h1 data-localise="__MSG_disableOldReddit__">
|
||||||
Reddit Version Redirects
|
Old Reddit Redirects
|
||||||
</h1>
|
</h1>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input
|
<input
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
id="disable-reddit-version"
|
id="disable-old-reddit"
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
checked
|
checked
|
||||||
/>
|
/>
|
||||||
<label for="disable-reddit-version" class="checkbox-label"> </label>
|
<label for="disable-old-reddit" class="checkbox-label"> </label>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
@ -184,10 +184,10 @@
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<section class="settings-block">
|
<section class="settings-block">
|
||||||
<h1 data-localise="__MSG_redditVersion__">Reddit Version</h1>
|
<h1 data-localise="__MSG_oldRedditView__">Old Reddit View (Desktop or Mobile)</h1>
|
||||||
<div class="autocomplete">
|
<div class="autocomplete">
|
||||||
<input
|
<input
|
||||||
id="reddit-version"
|
id="old-reddit-view"
|
||||||
type="url"
|
type="url"
|
||||||
placeholder="https://old.reddit.com"
|
placeholder="https://old.reddit.com"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -45,28 +45,28 @@ const bibliogramInstances = [
|
||||||
"https://bibliogram.ggc-project.de",
|
"https://bibliogram.ggc-project.de",
|
||||||
];
|
];
|
||||||
const osmInstances = ["https://openstreetmap.org"];
|
const osmInstances = ["https://openstreetmap.org"];
|
||||||
const redditVersions = [
|
const oldRedditViews = [
|
||||||
"https://old.reddit.com",
|
"https://old.reddit.com", // desktop
|
||||||
"https://i.reddit.com"
|
"https://i.reddit.com" // mobile
|
||||||
];
|
];
|
||||||
const autocompletes = [
|
const autocompletes = [
|
||||||
{ id: "nitter-instance", instances: nitterInstances },
|
{ id: "nitter-instance", instances: nitterInstances },
|
||||||
{ id: "invidious-instance", instances: invidiousInstances },
|
{ id: "invidious-instance", instances: invidiousInstances },
|
||||||
{ id: "bibliogram-instance", instances: bibliogramInstances },
|
{ id: "bibliogram-instance", instances: bibliogramInstances },
|
||||||
{ id: "osm-instance", instances: osmInstances },
|
{ id: "osm-instance", instances: osmInstances },
|
||||||
{ id: "reddit-version", instances: redditVersions },
|
{ id: "old-reddit-view", instances: oldRedditViews },
|
||||||
];
|
];
|
||||||
|
|
||||||
let nitterInstance = document.getElementById("nitter-instance");
|
let nitterInstance = document.getElementById("nitter-instance");
|
||||||
let invidiousInstance = document.getElementById("invidious-instance");
|
let invidiousInstance = document.getElementById("invidious-instance");
|
||||||
let bibliogramInstance = document.getElementById("bibliogram-instance");
|
let bibliogramInstance = document.getElementById("bibliogram-instance");
|
||||||
let osmInstance = document.getElementById("osm-instance");
|
let osmInstance = document.getElementById("osm-instance");
|
||||||
let redditVersion = document.getElementById("reddit-version");
|
let oldRedditView = document.getElementById("old-reddit-view");
|
||||||
let disableNitter = document.getElementById("disable-nitter");
|
let disableNitter = document.getElementById("disable-nitter");
|
||||||
let disableInvidious = document.getElementById("disable-invidious");
|
let disableInvidious = document.getElementById("disable-invidious");
|
||||||
let disableBibliogram = document.getElementById("disable-bibliogram");
|
let disableBibliogram = document.getElementById("disable-bibliogram");
|
||||||
let disableOsm = document.getElementById("disable-osm");
|
let disableOsm = document.getElementById("disable-osm");
|
||||||
let disableRedditVersion = document.getElementById("disable-reddit-version");
|
let disableOldReddit = document.getElementById("disable-old-reddit");
|
||||||
let alwaysProxy = document.getElementById("always-proxy");
|
let alwaysProxy = document.getElementById("always-proxy");
|
||||||
let onlyEmbeddedVideo = document.getElementById("only-embed");
|
let onlyEmbeddedVideo = document.getElementById("only-embed");
|
||||||
let videoQuality = document.getElementById("video-quality");
|
let videoQuality = document.getElementById("video-quality");
|
||||||
|
@ -110,12 +110,12 @@ browser.storage.sync.get(
|
||||||
"invidiousInstance",
|
"invidiousInstance",
|
||||||
"bibliogramInstance",
|
"bibliogramInstance",
|
||||||
"osmInstance",
|
"osmInstance",
|
||||||
"redditVersion",
|
"oldRedditView",
|
||||||
"disableNitter",
|
"disableNitter",
|
||||||
"disableInvidious",
|
"disableInvidious",
|
||||||
"disableBibliogram",
|
"disableBibliogram",
|
||||||
"disableOsm",
|
"disableOsm",
|
||||||
"disableRedditVersion",
|
"disableOldReddit",
|
||||||
"alwaysProxy",
|
"alwaysProxy",
|
||||||
"onlyEmbeddedVideo",
|
"onlyEmbeddedVideo",
|
||||||
"videoQuality",
|
"videoQuality",
|
||||||
|
@ -136,12 +136,12 @@ browser.storage.sync.get(
|
||||||
invidiousInstance.value = result.invidiousInstance || "";
|
invidiousInstance.value = result.invidiousInstance || "";
|
||||||
bibliogramInstance.value = result.bibliogramInstance || "";
|
bibliogramInstance.value = result.bibliogramInstance || "";
|
||||||
osmInstance.value = result.osmInstance || "";
|
osmInstance.value = result.osmInstance || "";
|
||||||
redditVersion.value = result.redditVersion || "";
|
oldRedditView.value = result.oldRedditView || "";
|
||||||
disableNitter.checked = !result.disableNitter;
|
disableNitter.checked = !result.disableNitter;
|
||||||
disableInvidious.checked = !result.disableInvidious;
|
disableInvidious.checked = !result.disableInvidious;
|
||||||
disableBibliogram.checked = !result.disableBibliogram;
|
disableBibliogram.checked = !result.disableBibliogram;
|
||||||
disableOsm.checked = !result.disableOsm;
|
disableOsm.checked = !result.disableOsm;
|
||||||
disableRedditVersion.checked = !result.disableRedditVersion;
|
disableOldReddit.checked = !result.disableOldReddit;
|
||||||
alwaysProxy.checked = result.alwaysProxy;
|
alwaysProxy.checked = result.alwaysProxy;
|
||||||
onlyEmbeddedVideo.checked = result.onlyEmbeddedVideo;
|
onlyEmbeddedVideo.checked = result.onlyEmbeddedVideo;
|
||||||
videoQuality.value = result.videoQuality || "";
|
videoQuality.value = result.videoQuality || "";
|
||||||
|
@ -284,14 +284,14 @@ let osmInstanceChange = debounce(() => {
|
||||||
}, 500);
|
}, 500);
|
||||||
osmInstance.addEventListener("input", osmInstanceChange);
|
osmInstance.addEventListener("input", osmInstanceChange);
|
||||||
|
|
||||||
let redditVersionChange = debounce(() => {
|
let oldRedditViewChange = debounce(() => {
|
||||||
if (redditVersion.checkValidity()) {
|
if (oldRedditView.checkValidity()) {
|
||||||
browser.storage.sync.set({
|
browser.storage.sync.set({
|
||||||
redditVersion: parseURL(redditVersion.value),
|
oldRedditView: parseURL(oldRedditView.value),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}, 500);
|
}, 500);
|
||||||
redditVersion.addEventListener("input", redditVersionChange);
|
oldRedditView.addEventListener("input", oldRedditViewChange);
|
||||||
|
|
||||||
disableNitter.addEventListener("change", (event) => {
|
disableNitter.addEventListener("change", (event) => {
|
||||||
browser.storage.sync.set({ disableNitter: !event.target.checked });
|
browser.storage.sync.set({ disableNitter: !event.target.checked });
|
||||||
|
@ -309,8 +309,8 @@ disableOsm.addEventListener("change", (event) => {
|
||||||
browser.storage.sync.set({ disableOsm: !event.target.checked });
|
browser.storage.sync.set({ disableOsm: !event.target.checked });
|
||||||
});
|
});
|
||||||
|
|
||||||
disableRedditVersion.addEventListener("change", (event) => {
|
disableOldReddit.addEventListener("change", (event) => {
|
||||||
browser.storage.sync.set({ disableRedditVersion: !event.target.checked });
|
browser.storage.sync.set({ disableOldReddit: !event.target.checked });
|
||||||
});
|
});
|
||||||
|
|
||||||
alwaysProxy.addEventListener("change", (event) => {
|
alwaysProxy.addEventListener("change", (event) => {
|
||||||
|
|
|
@ -117,22 +117,22 @@
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="settings-block">
|
<section class="settings-block">
|
||||||
<table class="option" aria-label="Toggle Reddit version redirects">
|
<table class="option" aria-label="Toggle old Reddit redirects">
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<h1 data-localise="__MSG_disableRedditVersion__">
|
<h1 data-localise="__MSG_disableOldReddit__">
|
||||||
Reddit Version Redirects
|
Old Reddit Redirects
|
||||||
</h1>
|
</h1>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input
|
<input
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
id="disable-reddit-version"
|
id="disable-old-reddit"
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
checked
|
checked
|
||||||
/>
|
/>
|
||||||
<label for="disable-reddit-version" class="checkbox-label"> </label>
|
<label for="disable-old-reddit" class="checkbox-label"> </label>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
|
@ -4,7 +4,7 @@ let disableNitter = document.querySelector("#disable-nitter");
|
||||||
let disableInvidious = document.querySelector("#disable-invidious");
|
let disableInvidious = document.querySelector("#disable-invidious");
|
||||||
let disableBibliogram = document.querySelector("#disable-bibliogram");
|
let disableBibliogram = document.querySelector("#disable-bibliogram");
|
||||||
let disableOsm = document.querySelector("#disable-osm");
|
let disableOsm = document.querySelector("#disable-osm");
|
||||||
let disableRedditVersion = document.querySelector("#disable-reddit-version");
|
let disableOldReddit = document.querySelector("#disable-old-reddit");
|
||||||
let version = document.querySelector("#version");
|
let version = document.querySelector("#version");
|
||||||
|
|
||||||
window.browser = window.browser || window.chrome;
|
window.browser = window.browser || window.chrome;
|
||||||
|
@ -15,7 +15,7 @@ browser.storage.sync.get(
|
||||||
"disableInvidious",
|
"disableInvidious",
|
||||||
"disableBibliogram",
|
"disableBibliogram",
|
||||||
"disableOsm",
|
"disableOsm",
|
||||||
"disableRedditVersion",
|
"disableOldReddit",
|
||||||
"theme",
|
"theme",
|
||||||
],
|
],
|
||||||
(result) => {
|
(result) => {
|
||||||
|
@ -24,7 +24,7 @@ browser.storage.sync.get(
|
||||||
disableInvidious.checked = !result.disableInvidious;
|
disableInvidious.checked = !result.disableInvidious;
|
||||||
disableBibliogram.checked = !result.disableBibliogram;
|
disableBibliogram.checked = !result.disableBibliogram;
|
||||||
disableOsm.checked = !result.disableOsm;
|
disableOsm.checked = !result.disableOsm;
|
||||||
disableRedditVersion.checked = !result.disableRedditVersion;
|
disableOldReddit.checked = !result.disableOldReddit;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -46,8 +46,8 @@ disableOsm.addEventListener("change", (event) => {
|
||||||
browser.storage.sync.set({ disableOsm: !event.target.checked });
|
browser.storage.sync.set({ disableOsm: !event.target.checked });
|
||||||
});
|
});
|
||||||
|
|
||||||
disableRedditVersion.addEventListener("change", (event) => {
|
disableOldReddit.addEventListener("change", (event) => {
|
||||||
browser.storage.sync.set({ disableRedditVersion: !event.target.checked });
|
browser.storage.sync.set({ disableOldReddit: !event.target.checked });
|
||||||
});
|
});
|
||||||
|
|
||||||
document.querySelector("#more-options").addEventListener("click", () => {
|
document.querySelector("#more-options").addEventListener("click", () => {
|
||||||
|
|
Loading…
Reference in New Issue