Start to consolidate source code for both browsers

This commit is contained in:
Dave Gallant
2023-04-09 16:01:01 -04:00
parent c099bddf0d
commit 6abdd3ebbe
13 changed files with 5565 additions and 21 deletions

6
js/background.js Normal file
View File

@@ -0,0 +1,6 @@
chrome.runtime.onInstalled.addListener(() => {
updateRedirects();
setDefaultConfig();
});
setInterval(updateRedirects, 1 * 60 * 60 * 1000);

31
js/content.js Normal file
View File

@@ -0,0 +1,31 @@
function stripRedirect(URL, redirectRegex) {
for (var i = 0; i < redirectRegex.length; i++) {
var rule = redirectRegex[i];
var result = new RegExp(rule.pattern).exec(URL);
if (result) {
var newURL = result.groups.baseUrl;
try {
return decodeURIComponent(newURL);
} catch (e) {
console.log(e);
return URL;
}
}
}
return URL;
}
function stripRedirects() {
var Links = document.querySelectorAll("a.postlink, a.autolinker_link");
browser.storage.local.get("redirects", function (result) {
Links.forEach(function (Link) {
var ReferralURL = Link.href;
Link.href = stripRedirect(ReferralURL, result["redirects"]);
});
});
}
stripRedirects();

25
js/popup.js Normal file
View File

@@ -0,0 +1,25 @@
const inputField = document.getElementById("input-field");
const saveButton = document.getElementById("save-button");
const resetButton = document.getElementById("reset-button");
const defaultConfig =
"https://raw.githubusercontent.com/davegallant/rfd-redirect-stripper/main/redirects.json";
browser.storage.local.get("config").then((result) => {
const value = result.config;
if (value) {
inputField.value = value;
}
});
saveButton.addEventListener("click", () => {
const value = inputField.value;
browser.storage.local.set({ config: value });
updateRedirects();
});
resetButton.addEventListener("click", () => {
setDefaultConfig();
inputField.value = defaultConfig;
updateRedirects();
});

22
js/utils.js Normal file
View File

@@ -0,0 +1,22 @@
function updateRedirects() {
browser.storage.local.get("config", function (URL) {
fetch(URL.config)
.then((res) => res.json())
.then((res) => {
browser.storage.local
.set({
redirects: res,
})
.catch((error) => {
console.log(error);
});
});
});
}
function setDefaultConfig() {
browser.storage.local.set({
config:
"https://raw.githubusercontent.com/davegallant/rfd-redirect-stripper/main/redirects.json",
});
}