Skip to content

Releases: AlttiRi/i-have-been-here

1.41.0.20241101

01 Nov 09:17
Compare
Choose a tag to compare

1.37.0.20241101

01 Nov 04:36
Compare
Choose a tag to compare

1.20.2.20240707

07 Jul 05:23
Compare
Choose a tag to compare

Full Changelog: 1.15.0...1.20.2.20240707


Console snippets

// full export
chrome.storage.local.get(o => {
    const text = JSON.stringify(o, null, 2);
    // @ts-ignore
    downloadBlob(new Blob([text]), `[ihbh] full export ${Date.now()}.json`);
    // @ts-ignore
    function downloadBlob(blob, name, url) {
        const anchor = document.createElement("a");
        anchor.setAttribute("download", name || "");
        const blobUrl = URL.createObjectURL(blob);
        anchor.href = blobUrl + (url ? ("#" + url) : "");
        anchor.click();
        setTimeout(() => URL.revokeObjectURL(blobUrl), 1000);
    }
});

// to wipe storage (before full import)
chrome.storage.local.get(null, obj => {
    Object.keys(obj).forEach(key => {
        chrome.storage.local.remove(key);
    });
});

// to import the full export
const input = document.createElement("input");
input.type = "file";
input.accept = "application/json";
document.body.prepend(input);
input.addEventListener("change", async event => {
    // @ts-ignore
    const json = JSON.parse(await input.files[0].text());
    if (!("version" in json)) {
        json.version = 1;
    }

    console.log("json", json);
    // @ts-ignore
    globalThis.json = json;
    chrome.storage.local.set(json, () => {
        chrome.runtime.reload();
    });
});

1.15.0.20240506

07 May 00:23
Compare
Choose a tag to compare

Total rewriting.

Full Changelog: 1.6.6...1.15.0


Console snippets

// full export
chrome.storage.local.get(o => {
    const text = JSON.stringify(o, null, 2);
    // @ts-ignore
    downloadBlob(new Blob([text]), `[ihbh] full export ${Date.now()}.json`);
    // @ts-ignore
    function downloadBlob(blob, name, url) {
        const anchor = document.createElement("a");
        anchor.setAttribute("download", name || "");
        const blobUrl = URL.createObjectURL(blob);
        anchor.href = blobUrl + (url ? ("#" + url) : "");
        anchor.click();
        setTimeout(() => URL.revokeObjectURL(blobUrl), 1000);
    }
});

// to wipe storage (before full import)
chrome.storage.local.get(null, obj => {
    Object.keys(obj).forEach(key => {
        chrome.storage.local.remove(key);
    });
});

// to import the full export
const input = document.createElement("input");
input.type = "file";
input.accept = "application/json";
document.body.prepend(input);
input.addEventListener("change", async event => {
    // @ts-ignore
    const json = JSON.parse(await input.files[0].text());
    if (!("version" in json)) {
        json.version = 1;
    }

    console.log("json", json);
    // @ts-ignore
    globalThis.json = json;
    chrome.storage.local.set(json, () => {
        chrome.runtime.reload();
    });
});

1.6.6

25 Nov 00:25
Compare
Choose a tag to compare
Bump

URL can have no `://`, for example: `about:addons`

1.6.2

19 Nov 04:13
Compare
Choose a tag to compare
Bump

1.0.0

29 Jul 18:11
469a20e
Compare
Choose a tag to compare
Update canvas.html