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

View File

@ -22,5 +22,8 @@
"homepage": "https://github.com/LibRedirect/LibRedirect#readme",
"devDependencies": {
"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.tiekoetter.com",
"https://nitter.spaceint.fr",
"https://twtr.bch.bar"
"https://twtr.bch.bar",
"https://nitter.exonip.de",
"https://nitter.mastodon.pro"
],
"tor": [
"http://3nzoldnxplag42gqjs23xvghtzf6t6yzssrtytnntc6ppc7xxuoneoad.onion",
@ -272,6 +274,7 @@
"https://serx.cf",
"https://spot.ecloud.global",
"https://suche.dasnetzundich.de",
"https://suche.tromdienste.de",
"https://suche.uferwerk.org",
"https://swag.pw",
"https://sx.catgirl.cloud",

View File

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

View File

@ -120,18 +120,24 @@
<option value="dark-theme">Dark</option>
</select>
</div>
<div class="buttons buttons-inline">
<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>
</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">
<h4>Exceptions</h4>
</div>

View File

@ -20,21 +20,34 @@ themeElement.addEventListener("change", (event) => {
browser.storage.local.set({ theme: value });
});
document.querySelector("#update-instances").addEventListener("click", () => {
document.querySelector("#update-instances").innerHTML = '...';
document.getElementById("update-instances").addEventListener("click", () => {
document.getElementById("update-instances").innerHTML = '...';
if (commonHelper.updateInstances()) {
document.querySelector("#update-instances").innerHTML = 'Done!';
document.getElementById("update-instances").innerHTML = 'Done!';
new Promise(resolve => setTimeout(resolve, 1500)).then( // sleep 1500ms
() => document.querySelector("#update-instances").innerHTML = 'Update Instances'
() => document.getElementById("update-instances").innerHTML = 'Update Instances'
)
}
else
document.querySelector("#update-instances").innerHTML = 'Failed Miserabely';
document.getElementById("update-instances").innerHTML = 'Failed Miserabely';
});
// document.querySelector("#export-settings").addEventListener("click", () => {
// browser.storage.local.get(null, result => console.log(result))
// });
let exportSettingsElement = document.getElementById("export-settings");
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 instanceTypeElement = document.getElementById("exceptions-custom-instance-type");

View File

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

View File

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