mobile support and shit

This commit is contained in:
sky
2025-11-14 21:53:45 -05:00
parent 896b2a0133
commit 7596d7283d
10 changed files with 436 additions and 74 deletions

View File

@ -142,21 +142,37 @@
}
}
function downloadData() {
// grab localstorage
// grab cookies
// json.stringify
// base64
alert("not completed");
let storage = JSON.stringify(localStorage);
let cookies = document.cookie;
let data = btoa(JSON.stringify({localStorage: storage, cookies: cookies}));
let file = new Blob([data], {type: "text"});
let a = document.createElement("a");
a.href = URL.createObjectURL(file);
a.download = "selenite.dat";
a.click();
}
function uploadData() {
if(prompt("Are you sure you want to upload data?\nThis may overwrite any previous data you had stored.\n\nType \"i am sure\" to continue.") == "i am sure") {
// prompt file upload
// read file
// atob
// set cookies
// set localstorage
alert("not completed");
}
let input = document.createElement("input");
input.type = "file";
input.accept = "dat";
input.click();
input.addEventListener("change", e => {
if(prompt("Are you sure you want to upload data?\nThis may overwrite any previous data you had stored.\n\nType \"i am sure\" to continue.") == "i am sure") {
let fileReader = new FileReader();
fileReader.addEventListener("load", e => {
let data = JSON.parse(atob(e.target.result));
let local = JSON.parse(data["localStorage"]);
let cookies = data["cookies"];
document.cookie = cookies;
Object.keys(local).forEach(e => {
localStorage.setItem(e, local[e]);
})
});
fileReader.readAsText(e.target.files[0]);
}
})
}
async function deleteAllCaches() {
try {
@ -164,7 +180,6 @@
await Promise.all(
cacheNames.map(cacheName => {
console.log(`Deleting cache: ${cacheName}`);
return caches.delete(cacheName);
})
);
@ -220,9 +235,8 @@
</section>
<section>
<h2>manage data</h2>
<p>download & upload currently unfinished, use the cloud backups</p>
<button id="downloadData">download</button>
<button id="uploadData">upload</button>
<button onclick="downloadData()">download</button>
<button onclick="uploadData()">upload</button>
<button onclick="wipeData()">wipe (erases all game data)</button>
<button onclick="deleteAllCaches()">wipe all cache</button>
</section>