mirror of
https://github.com/davegallant/rfd-redirect-stripper.git
synced 2025-08-05 08:13:40 +00:00
Start to consolidate source code for both browsers
This commit is contained in:
6
js/background.js
Normal file
6
js/background.js
Normal file
@@ -0,0 +1,6 @@
|
||||
chrome.runtime.onInstalled.addListener(() => {
|
||||
updateRedirects();
|
||||
setDefaultConfig();
|
||||
});
|
||||
|
||||
setInterval(updateRedirects, 1 * 60 * 60 * 1000);
|
31
js/content.js
Normal file
31
js/content.js
Normal 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
25
js/popup.js
Normal 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
22
js/utils.js
Normal 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",
|
||||
});
|
||||
}
|
Reference in New Issue
Block a user