Added export and import settings #58
This commit is contained in:
parent
55b3271ed7
commit
8f0be7fb1a
77
package-lock.json
generated
77
package-lock.json
generated
@ -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": {
|
||||||
|
@ -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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
1
src/assets/javascripts/helpers/buffer.js
Normal file
1
src/assets/javascripts/helpers/buffer.js
Normal file
File diff suppressed because one or more lines are too long
@ -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",
|
||||||
|
@ -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'] = []
|
||||||
|
@ -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>
|
||||||
|
|
||||||
|
<label for="import-settings" class="button button-inline">
|
||||||
|
Import Settings
|
||||||
|
<input type="file" class="button button-inline" style="display:none;" id="import-settings">
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<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>
|
||||||
|
@ -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");
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user