Added export and import settings #58

This commit is contained in:
ManeraKai 2022-02-26 21:28:30 +03:00
parent 55b3271ed7
commit 8f0be7fb1a
No known key found for this signature in database
GPG Key ID: 5ABC31FFD562E337
9 changed files with 105 additions and 54 deletions

77
package-lock.json generated
View File

@ -6,6 +6,9 @@
"": { "": {
"name": "libredirect", "name": "libredirect",
"license": "GPL-3.0-only", "license": "GPL-3.0-only",
"dependencies": {
"buffer": "^6.0.3"
},
"devDependencies": { "devDependencies": {
"web-ext": "^6.7.0" "web-ext": "^6.7.0"
}, },
@ -727,7 +730,6 @@
"version": "1.5.1", "version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
"dev": true,
"funding": [ "funding": [
{ {
"type": "github", "type": "github",
@ -741,8 +743,7 @@
"type": "consulting", "type": "consulting",
"url": "https://feross.org/support" "url": "https://feross.org/support"
} }
], ]
"peer": true
}, },
"node_modules/bcrypt-pbkdf": { "node_modules/bcrypt-pbkdf": {
"version": "1.0.2", "version": "1.0.2",
@ -831,10 +832,9 @@
} }
}, },
"node_modules/buffer": { "node_modules/buffer": {
"version": "5.7.1", "version": "6.0.3",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
"dev": true,
"funding": [ "funding": [
{ {
"type": "github", "type": "github",
@ -849,10 +849,9 @@
"url": "https://feross.org/support" "url": "https://feross.org/support"
} }
], ],
"peer": true,
"dependencies": { "dependencies": {
"base64-js": "^1.3.1", "base64-js": "^1.3.1",
"ieee754": "^1.1.13" "ieee754": "^1.2.1"
} }
}, },
"node_modules/buffer-alloc": { "node_modules/buffer-alloc": {
@ -3022,7 +3021,6 @@
"version": "1.2.1", "version": "1.2.1",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
"dev": true,
"funding": [ "funding": [
{ {
"type": "github", "type": "github",
@ -3036,8 +3034,7 @@
"type": "consulting", "type": "consulting",
"url": "https://feross.org/support" "url": "https://feross.org/support"
} }
], ]
"peer": true
}, },
"node_modules/ignore": { "node_modules/ignore": {
"version": "5.2.0", "version": "5.2.0",
@ -5956,6 +5953,31 @@
"through": "^2.3.8" "through": "^2.3.8"
} }
}, },
"node_modules/unbzip2-stream/node_modules/buffer": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
"dev": true,
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
],
"peer": true,
"dependencies": {
"base64-js": "^1.3.1",
"ieee754": "^1.1.13"
}
},
"node_modules/unique-string": { "node_modules/unique-string": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
@ -6972,9 +6994,7 @@
"base64-js": { "base64-js": {
"version": "1.5.1", "version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
"dev": true,
"peer": true
}, },
"bcrypt-pbkdf": { "bcrypt-pbkdf": {
"version": "1.0.2", "version": "1.0.2",
@ -7054,14 +7074,12 @@
} }
}, },
"buffer": { "buffer": {
"version": "5.7.1", "version": "6.0.3",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
"dev": true,
"peer": true,
"requires": { "requires": {
"base64-js": "^1.3.1", "base64-js": "^1.3.1",
"ieee754": "^1.1.13" "ieee754": "^1.2.1"
} }
}, },
"buffer-alloc": { "buffer-alloc": {
@ -8767,9 +8785,7 @@
"ieee754": { "ieee754": {
"version": "1.2.1", "version": "1.2.1",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
"dev": true,
"peer": true
}, },
"ignore": { "ignore": {
"version": "5.2.0", "version": "5.2.0",
@ -11081,6 +11097,19 @@
"requires": { "requires": {
"buffer": "^5.2.1", "buffer": "^5.2.1",
"through": "^2.3.8" "through": "^2.3.8"
},
"dependencies": {
"buffer": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
"dev": true,
"peer": true,
"requires": {
"base64-js": "^1.3.1",
"ieee754": "^1.1.13"
}
}
} }
}, },
"unique-string": { "unique-string": {

View File

@ -22,5 +22,8 @@
"homepage": "https://github.com/LibRedirect/LibRedirect#readme", "homepage": "https://github.com/LibRedirect/LibRedirect#readme",
"devDependencies": { "devDependencies": {
"web-ext": "^6.7.0" "web-ext": "^6.7.0"
},
"dependencies": {
"buffer": "^6.0.3"
} }
} }

File diff suppressed because one or more lines are too long

View File

@ -74,7 +74,9 @@
"https://nitter.winscloud.net", "https://nitter.winscloud.net",
"https://nitter.tiekoetter.com", "https://nitter.tiekoetter.com",
"https://nitter.spaceint.fr", "https://nitter.spaceint.fr",
"https://twtr.bch.bar" "https://twtr.bch.bar",
"https://nitter.exonip.de",
"https://nitter.mastodon.pro"
], ],
"tor": [ "tor": [
"http://3nzoldnxplag42gqjs23xvghtzf6t6yzssrtytnntc6ppc7xxuoneoad.onion", "http://3nzoldnxplag42gqjs23xvghtzf6t6yzssrtytnntc6ppc7xxuoneoad.onion",
@ -272,6 +274,7 @@
"https://serx.cf", "https://serx.cf",
"https://spot.ecloud.global", "https://spot.ecloud.global",
"https://suche.dasnetzundich.de", "https://suche.dasnetzundich.de",
"https://suche.tromdienste.de",
"https://suche.uferwerk.org", "https://suche.uferwerk.org",
"https://swag.pw", "https://swag.pw",
"https://sx.catgirl.cloud", "https://sx.catgirl.cloud",

View File

@ -55,8 +55,7 @@ mightyList['nitter'] = nitterList
print('fetched Nitter') print('fetched Nitter')
# Bibliogram # Bibliogram
r = requests.get('https://bibliogram.art/api/instances') r = requests.get('https://bibliogram.1d4.us/api/instances')
print(r.text)
rJson = json.loads(r.text) rJson = json.loads(r.text)
bibliogramList = {} bibliogramList = {}
bibliogramList['normal'] = [] bibliogramList['normal'] = []

View File

@ -120,18 +120,24 @@
<option value="dark-theme">Dark</option> <option value="dark-theme">Dark</option>
</select> </select>
</div> </div>
<div class="buttons buttons-inline"> <div class="buttons buttons-inline">
<a class="button button-inline" id="update-instances"> <a class="button button-inline" id="update-instances">
<span>Update Instances</span> Update Instances
</a>
&nbsp; &nbsp;
<label for="import-settings" class="button button-inline">
Import Settings
<input type="file" class="button button-inline" style="display:none;" id="import-settings">
</label>
&nbsp; &nbsp;
<a class="button button-inline" id="export-settings">
Export Settings
</a> </a>
</div> </div>
<!-- <div class="buttons buttons-inline">
<a class="button button-inline" id="export-settings">
<span>Export Settings</span>
</a>
</div> -->
<div class="some-block option-block"> <div class="some-block option-block">
<h4>Exceptions</h4> <h4>Exceptions</h4>
</div> </div>

View File

@ -20,21 +20,34 @@ themeElement.addEventListener("change", (event) => {
browser.storage.local.set({ theme: value }); browser.storage.local.set({ theme: value });
}); });
document.querySelector("#update-instances").addEventListener("click", () => { document.getElementById("update-instances").addEventListener("click", () => {
document.querySelector("#update-instances").innerHTML = '...'; document.getElementById("update-instances").innerHTML = '...';
if (commonHelper.updateInstances()) { if (commonHelper.updateInstances()) {
document.querySelector("#update-instances").innerHTML = 'Done!'; document.getElementById("update-instances").innerHTML = 'Done!';
new Promise(resolve => setTimeout(resolve, 1500)).then( // sleep 1500ms new Promise(resolve => setTimeout(resolve, 1500)).then( // sleep 1500ms
() => document.querySelector("#update-instances").innerHTML = 'Update Instances' () => document.getElementById("update-instances").innerHTML = 'Update Instances'
) )
} }
else else
document.querySelector("#update-instances").innerHTML = 'Failed Miserabely'; document.getElementById("update-instances").innerHTML = 'Failed Miserabely';
}); });
// document.querySelector("#export-settings").addEventListener("click", () => { let exportSettingsElement = document.getElementById("export-settings");
// browser.storage.local.get(null, result => console.log(result)) browser.storage.local.get(null, result => {
// }); let resultString = JSON.stringify(result, null, ' ');
exportSettingsElement.href = 'data:application/json;base64,' + btoa(resultString);
exportSettingsElement.download = 'libredirect-settings.json';
});
let importSettingsElement = document.getElementById("import-settings");
importSettingsElement.addEventListener("change",
_ => {
let file = importSettingsElement.files[0];
const reader = new FileReader();
reader.readAsText(file);
reader.onload = () => browser.storage.local.set({ ...JSON.parse(reader.result) })
reader.onerror = error => reject(error);
})
let nameCustomInstanceInput = document.getElementById("exceptions-custom-instance"); let nameCustomInstanceInput = document.getElementById("exceptions-custom-instance");
let instanceTypeElement = document.getElementById("exceptions-custom-instance-type"); let instanceTypeElement = document.getElementById("exceptions-custom-instance-type");

View File

@ -77,7 +77,7 @@ themeElement.addEventListener("change",
); );
let volumeElement = document.getElementById("invidious-volume"); let volumeElement = document.getElementById("invidious-volume");
let volumeValueElement = document.querySelector("#volume-value"); let volumeValueElement = document.getElementById("volume-value");
volumeElement.addEventListener("input", volumeElement.addEventListener("input",
() => { () => {
youtubeHelper.setVolume(volumeElement.value); youtubeHelper.setVolume(volumeElement.value);

View File

@ -17,7 +17,7 @@ body {
font-family: Sans-Serif; font-family: Sans-Serif;
background-color: var(--bg-main); background-color: var(--bg-main);
color: var(--text); color: var(--text);
overflow-x:hidden overflow-x: hidden
} }
div.some-block input[type="checkbox"] { div.some-block input[type="checkbox"] {
@ -61,17 +61,14 @@ select {
border-radius: 3px; border-radius: 3px;
} }
/* a.button * {
vertical-align: middle;
} */
a.button:hover { .button:hover {
background-color: var(--active); background-color: var(--active);
color: var(--text); color: var(--text);
stroke: var(--text); stroke: var(--text);
} }
a.button:active { .button:active {
background-color: var(--active); background-color: var(--active);
box-shadow: 0 var(--space) var(--bg-main); box-shadow: 0 var(--space) var(--bg-main);
transform: translateY(4px); transform: translateY(4px);
@ -213,9 +210,10 @@ div.buttons {
margin-top: 15px; margin-top: 15px;
} }
a.button { .button {
stroke: var(--text); stroke: var(--text);
display: flex; display: flex;
text-align: center;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
border-radius: 5px; border-radius: 5px;
@ -223,7 +221,6 @@ a.button {
color: var(--text); color: var(--text);
font-size: 12px; font-size: 12px;
font-weight: bold; font-weight: bold;
/* width: 180px; */
margin: 8px 20px; margin: 8px 20px;
padding: 10px; padding: 10px;
text-decoration: none; text-decoration: none;
@ -237,18 +234,18 @@ div.buttons-inline {
padding: 0 15px; padding: 0 15px;
} }
a.button-inline { .button-inline {
display: inline-block; display: inline-block;
margin: 7.5px 0; margin: 7.5px 0;
} }
a.button:hover { .button:hover {
background-color: var(--active); background-color: var(--active);
color: var(--text); color: var(--text);
stroke: var(--text); stroke: var(--text);
} }
a.button:active { .button:active {
background-color: var(--active); background-color: var(--active);
box-shadow: 0 var(--space) var(--bg-main); box-shadow: 0 var(--space) var(--bg-main);
transform: translateY(1px); transform: translateY(1px);