a WebExtension to make firefox refresh the page & keep the backblaze session alive so you don't get logged out.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

47 lines
1.4 KiB

console.log("hello my name is backblaze-session-keepalive");
let timeout;
const resetTimeout = () => {
//console.log("backblaze-session-keepalive: resetTimeout");
if(timeout) {
clearTimeout(timeout);
}
timeout = setTimeout(async () => {
console.log("backblaze-session-keepalive: step1");
await browser.storage.local.set({"returnToURL": String(window.location)});
const navLinks = document.querySelectorAll(".left_nav_links a");
const bucketsButton = Array.from(navLinks).filter(x => x.textContent == "Buckets")[0];
if(bucketsButton) {
bucketsButton.click();
}
}, 4*60*1000);
};
const onPageLoaded = async () => {
const returnToURL = (await browser.storage.local.get("returnToURL")).returnToURL;
const returnToURL2 = (await browser.storage.local.get("returnToURL2")).returnToURL2;
const navigateFilesButton = document.querySelectorAll('.storage-buckets .button_restore')[0];
if(navigateFilesButton && returnToURL) {
console.log("backblaze-session-keepalive: step2");
await browser.storage.local.set({"returnToURL": null, "returnToURL2": returnToURL});
navigateFilesButton.click();
}
if(returnToURL2) {
console.log("backblaze-session-keepalive: step3");
await browser.storage.local.set({"returnToURL": null, "returnToURL2": null});
window.location = returnToURL2;
}
window.addEventListener("mousemove", () => {
resetTimeout();
});
resetTimeout();
};
onPageLoaded();