about summary refs log tree commit diff stats
path: root/src/pages/options/twitter.js
blob: 21ee66b7634f43dabcab51ffb36abfa90650d22c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import twitterHelper from "../../assets/javascripts/helpers/twitter.js";
import commonHelper from "../../assets/javascripts/helpers/common.js";
import shared from "./shared.js";

const nitterInstances = twitterHelper.redirects;

let nitterInstanceElement = document.getElementById("nitter-instance");
let removeTwitterSWElement = document.getElementById("remove-twitter-sw");
let disableNitterElement = document.getElementById("disable-nitter");
let nitterRandomPoolElement = document.getElementById("nitter-random-pool");
let nitterRandomPoolListElement = document.getElementById('nitter-random-pool-list');

let nitterRandomPool

browser.storage.sync.get(
    [
        "nitterInstance",
        "disableNitter",
        "nitterRandomPool",
        "removeTwitterSW",
    ],
    (result) => {
        nitterInstanceElement.value = result.nitterInstance || "";
        disableNitterElement.checked = !result.disableNitter;
        removeTwitterSWElement.checked = !result.removeTwitterSW;

        nitterRandomPool = result.nitterRandomPool || commonHelper.filterInstances(nitterInstances)
        nitterRandomPoolElement.value = nitterRandomPool.join("\n");
        commonHelper.updateListElement(nitterRandomPoolListElement, nitterRandomPool);

        let id = "nitter-instance"
        let instances = nitterRandomPool
        shared.autocompletes.push({ id: id, instances: instances })
        shared.autocomplete(document.getElementById(id), instances);
    }
)

nitterInstanceElement.addEventListener("input", commonHelper.debounce(() => {
    if (nitterInstanceElement.checkValidity()) {
        browser.storage.sync.set({
            nitterInstance: shared.parseURL(nitterInstanceElement.value),
        });
    }
}, 500));

disableNitterElement.addEventListener("change", (event) => {
    browser.storage.sync.set({ disableNitter: !event.target.checked });
});

removeTwitterSWElement.addEventListener("change", (event) => {
    browser.storage.sync.set({ removeTwitterSW: !event.target.checked });
});

nitterRandomPoolElement.addEventListener("input", commonHelper.debounce(() => {
    nitterRandomPool = commonHelper.filterList(nitterRandomPoolElement.value.split("\n"))
    commonHelper.updateListElement(nitterRandomPoolListElement, nitterRandomPool);
    browser.storage.sync.set({ nitterRandomPool: nitterRandomPool });
}, 50));

browser.storage.onChanged.addListener((changes) => {
    if ("nitterRandomPool" in changes) {
        nitterRandomPool = changes.nitterRandomPool.newValue;
        nitterRandomPoolElement.value = nitterRandomPool.join("\n");
        commonHelper.updateListElement(nitterRandomPoolListElement, nitterRandomPool);
    }
})