about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorBobIsMyManager <bimmgitsignature.nly8m@simplelogin.co>2022-07-14 16:39:04 +0100
committerBobIsMyManager <bimmgitsignature.nly8m@simplelogin.co>2022-07-14 16:39:04 +0100
commitc531943e484347e2cdaa823bf69dfcc483e01541 (patch)
treefd10d4d8f70f19d13deec87b4dcd77abbdc23082
parentforgot to add get_instances.py (diff)
downloadlibredirect-c531943e484347e2cdaa823bf69dfcc483e01541.zip
Add support for unifying settings
-rw-r--r--README.md2
-rw-r--r--src/assets/javascripts/search.js68
-rw-r--r--src/assets/javascripts/utils.js3
-rw-r--r--src/instances/get_instances.py2
-rw-r--r--src/pages/background/background.js3
-rw-r--r--src/pages/background/incognito.js3
-rw-r--r--src/pages/options/widgets/general.js1
7 files changed, 70 insertions, 12 deletions
diff --git a/README.md b/README.md
index 2c80a614..bf3be985 100644
--- a/README.md
+++ b/README.md
@@ -32,7 +32,7 @@ Quora => [Quetre](https://github.com/zyachel/quetre)\
 IMDb => [Libremdb](https://github.com/zyachel/libremdb)\
 PeerTube => [SimpleerTube](https://git.sr.ht/~metalune/simpleweb_peertube)\
 LBRY/Odysee => [Librarian](https://codeberg.org/librarian/librarian)\
-Search => [SearXNG](https://github.com/searxng/searxng), [SearX](https://searx.github.io/searx/), [Whoogle](https://benbusby.com/projects/whoogle-search/)\
+Search => [SearXNG](https://github.com/searxng/searxng), [SearX](https://searx.github.io/searx/), [Whoogle](https://benbusby.com/projects/whoogle-search/), [Librex](https://github.com/hnhx/librex/)\
 Translate => [SimplyTranslate](https://git.sr.ht/~metalune/simplytranslate_web), [LingvaTranslate](https://github.com/TheDavidDelta/lingva-translate)\
 Maps => [OpenStreetMap](https://www.openstreetmap.org/), [FacilMap](https://github.com/FacilMap/facilmap)\
 Send Files => [Send](https://gitlab.com/timvisee/send)
diff --git a/src/assets/javascripts/search.js b/src/assets/javascripts/search.js
index 93bb10ae..c19f4d4a 100644
--- a/src/assets/javascripts/search.js
+++ b/src/assets/javascripts/search.js
@@ -66,7 +66,7 @@ function setRedirects(val) {
       if (c > -1) whoogleNormalRedirectsChecks.splice(c, 1);
 
       const d = librexNormalRedirectsChecks.indexOf(instance);
-      if (c > -1) librexNormalRedirectsChecks.splice(d, 1);
+      if (d > -1) librexNormalRedirectsChecks.splice(d, 1);
     }
     browser.storage.local.set({
       searchRedirects: redirects,
@@ -224,8 +224,9 @@ function pasteSearxCookies() {
     await init();
     if (disableSearch || searchFrontend != 'searx') { resolve(); return; }
     let checkedInstances;
-    if (searchProtocol == 'normal') checkedInstances = [...searxNormalRedirectsChecks, ...searxNormalCustomRedirects]
-    else if (searchProtocol == 'tor') checkedInstances = [...searxTorRedirectsChecks, ...searxTorCustomRedirects]
+    if (searchProtocol == 'normal') checkedInstances = [...searxNormalRedirectsChecks, ...searxNormalCustomRedirects];
+    else if (searchProtocol == 'tor') checkedInstances = [...searxTorRedirectsChecks, ...searxTorCustomRedirects];
+    else if (searchProtocol == 'i2p') checkedInstances = [...searxI2pRedirectsChecks, ...searxI2pCustomRedirects];
     utils.getCookiesFromStorage('searx', checkedInstances, 'advanced_search');
     utils.getCookiesFromStorage('searx', checkedInstances, 'autocomplete');
     utils.getCookiesFromStorage('searx', checkedInstances, 'categories');
@@ -294,8 +295,9 @@ function pasteSearxngCookies() {
     await init();
     if (disableSearch || searchFrontend != 'searxng', searchProtocol === undefined) { resolve(); return; }
     let checkedInstances;
-    if (searchProtocol == 'normal') checkedInstances = [...searxngNormalRedirectsChecks, ...searxngNormalCustomRedirects]
-    else if (searchProtocol == 'tor') checkedInstances = [...searxngTorRedirectsChecks, ...searxngTorCustomRedirects]
+    if (searchProtocol == 'normal') checkedInstances = [...searxngNormalRedirectsChecks, ...searxngNormalCustomRedirects];
+    else if (searchProtocol == 'tor') checkedInstances = [...searxngTorRedirectsChecks, ...searxngTorCustomRedirects];
+    else if (searchProtocol == 'i2p') checkedInstances = [...searxngI2pRedirectsChecks, ...searxngI2pCustomRedirects];
     utils.getCookiesFromStorage('searxng', checkedInstances, 'autocomplete');
     utils.getCookiesFromStorage('searxng', checkedInstances, 'categories');
     utils.getCookiesFromStorage('searxng', checkedInstances, 'disabled_engines');
@@ -319,6 +321,56 @@ function pasteSearxngCookies() {
   })
 }
 
+function initLibrexCookies(test, from) {
+  return new Promise(async resolve => {
+    await init();
+    let protocolHost = utils.protocolHost(from);
+    if (![
+      ...librexNormalRedirectsChecks,
+      ...librexNormalCustomRedirects,
+      ...librexTorRedirectsChecks,
+      ...librexTorCustomRedirects,
+      ...librexI2pRedirectsChecks,
+      ...librexI2pCustomRedirects,
+    ].includes(protocolHost)) { resolve(); return; }
+
+    if(!test) {
+      let checkedInstances;
+      if (searchProtocol == 'normal') checkedInstances = [...librexNormalRedirectsChecks, ...librexNormalCustomRedirects];
+      else if (searchProtocol == 'tor') checkedInstances = [...librexTorRedirectsChecks, ...librexTorCustomRedirects];
+      else if (searchProtocol == 'i2p') checkedInstances = [...librexI2pRedirectsChecks, ...librexI2pCustomRedirects];
+      await utils.copyCookie('librex', from, checkedInstances, 'bibliogram');
+      await utils.copyCookie('librex', from, checkedInstances, 'disable_special');
+      await utils.copyCookie('librex', from, checkedInstances, 'invidious');
+      await utils.copyCookie('librex', from, checkedInstances, 'libreddit');
+      await utils.copyCookie('librex', from, checkedInstances, 'nitter');
+      await utils.copyCookie('librex', from, checkedInstances, 'proxitok');
+      await utils.copyCookie('librex', from, checkedInstances, 'theme');
+      await utils.copyCookie('librex', from, checkedInstances, 'wikiless');
+    }
+    resolve(true);
+  })
+}
+
+function pasteLibrexCookies() {
+  return new Promise(async resolve => {
+    await init();
+    if (disableSearch || searchFrontend != 'librex', searchProtocol === undefined) { resolve(); return; }
+    let checkedInstances;
+    if (searchProtocol == 'normal') checkedInstances = [...librexNormalRedirectsChecks, ...librexNormalCustomRedirects];
+    else if (searchProtocol == 'tor') checkedInstances = [...librexTorRedirectsChecks, ...librexTorCustomRedirects];
+    else if (searchProtocol == 'i2p') checkedInstances = [...librexI2pRedirectsChecks, ...librexI2pCustomRedirects];
+    utils.getCookiesFromStorage('librex', checkedInstances, 'bibliogram');
+    utils.getCookiesFromStorage('librex', checkedInstances, 'disable_special');
+    utils.getCookiesFromStorage('librex', checkedInstances, 'invidious');
+    utils.getCookiesFromStorage('librex', checkedInstances, 'libreddit');
+    utils.getCookiesFromStorage('librex', checkedInstances, 'nitter');
+    utils.getCookiesFromStorage('librex', checkedInstances, 'proxitok');
+    utils.getCookiesFromStorage('librex', checkedInstances, 'theme');
+    utils.getCookiesFromStorage('librex', checkedInstances, 'wikiless');
+    resolve();
+  })
+}
 
 function redirect(url, disableOverride) {
   if (disableSearch && !disableOverride) return;
@@ -523,10 +575,10 @@ function initDefaults() {
           librexNormalRedirectsChecks: librexNormalRedirectsChecks,
           librexNormalCustomRedirects: [],
 
-          librexTorRedirectsChecks: librexTorRedirectsChecks,
+          librexTorRedirectsChecks: [...redirects.librex.tor],
           librexTorCustomRedirects: [],
 
-          librexI2pRedirectsChecks: librexI2pRedirectsChecks,
+          librexI2pRedirectsChecks: [...redirects.librex.i2p],
           librexI2pCustomRedirects: []
         }, () => resolve())
       })
@@ -540,6 +592,8 @@ export default {
   pasteSearxCookies,
   initSearxngCookies,
   pasteSearxngCookies,
+  initLibrexCookies,
+  pasteLibrexCookies,
   redirect,
   initDefaults,
   switchInstance,
diff --git a/src/assets/javascripts/utils.js b/src/assets/javascripts/utils.js
index c03ca31c..a5300364 100644
--- a/src/assets/javascripts/utils.js
+++ b/src/assets/javascripts/utils.js
@@ -46,7 +46,7 @@ function updateInstances() {
       instagramHelper.setRedirects(instances.bibliogram);
       redditHelper.setRedirects({ 'libreddit': instances.libreddit, 'teddit': instances.teddit });
       translateHelper.setRedirects({ "simplyTranslate": instances.simplyTranslate, "lingva": instances.lingva });
-      searchHelper.setRedirects({ 'searx': instances.searx, 'searxng': instances.searxng, 'whoogle': instances.whoogle });
+      searchHelper.setRedirects({ 'searx': instances.searx, 'searxng': instances.searxng, 'whoogle': instances.whoogle, 'librex': instances.librex });
       wikipediaHelper.setRedirects(instances.wikiless);
       mediumHelper.setRedirects(instances.scribe);
       quoraHelper.setRedirects(instances.quetre);
@@ -384,6 +384,7 @@ function unify(test) {
 
           if (!result) result = await searchHelper.initSearxCookies(test, url);
           if (!result) result = await searchHelper.initSearxngCookies(test, url);
+          if (!result) result = await searchHelper.initLibrexCookies(test, url);
 
           if (!result) result = await tiktokHelper.initProxiTokCookies(test, url);
 
diff --git a/src/instances/get_instances.py b/src/instances/get_instances.py
index f8789248..35144070 100644
--- a/src/instances/get_instances.py
+++ b/src/instances/get_instances.py
@@ -385,7 +385,7 @@ def librex():
     _list['i2p'] = []
 
     tmp = re.findall(
-            r"\| \[(?:(?:[a-zA-Z0-9]+\.)+[a-zA-Z]{2,}|✅)\]\((https?:\/{2}(?:[a-zA-Z0-9]+\.)+[a-zA-Z0-9]{2,})", r.text)
+            r"\| {1,2}\[(?:(?:[a-zA-Z0-9]+\.)+[a-zA-Z]{2,}|✅)\]\((https?:\/{2}(?:[a-zA-Z0-9]+\.)+[a-zA-Z0-9]{2,})", r.text)
     tmp = filterLastSlash(tmp)
 
     for item in tmp:
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index 832d6533..fd7b5dcf 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -81,6 +81,7 @@ twitterHelper.pasteNitterCookies();
 wikipediaHelper.pasteWikilessCookies();
 searchHelper.pasteSearxCookies();
 searchHelper.pasteSearxngCookies();
+searchHelper.pasteLibrexCookies();
 redditHelper.pasteLibredditCookies();
 redditHelper.pasteTedditCookies();
 tiktokHelper.pasteProxiTokCookies();
@@ -257,4 +258,4 @@ browser.contextMenus.onClicked.addListener(
 browser.runtime.onMessage.addListener((message, sender, sendResponse) => {
   if (message.function === 'unify') utils.unify(false).then(r => sendResponse({ response: r }))
   return true;
-});
\ No newline at end of file
+});
diff --git a/src/pages/background/incognito.js b/src/pages/background/incognito.js
index 872a83c8..f42eadcf 100644
--- a/src/pages/background/incognito.js
+++ b/src/pages/background/incognito.js
@@ -14,8 +14,9 @@ await twitterHelper.pasteNitterCookies();
 await wikipediaHelper.pasteWikilessCookies();
 await searchHelper.pasteSearxCookies();
 await searchHelper.pasteSearxngCookies();
+await searchHelper.pasteLibrexCookies();
 await redditHelper.pasteLibredditCookies();
 await redditHelper.pasteTedditCookies();
 await tiktokHelper.pasteProxiTokCookies();
 
-window.close()
\ No newline at end of file
+window.close()
diff --git a/src/pages/options/widgets/general.js b/src/pages/options/widgets/general.js
index 721ad2b0..c0faf410 100644
--- a/src/pages/options/widgets/general.js
+++ b/src/pages/options/widgets/general.js
@@ -83,6 +83,7 @@ importSettingsElement.addEventListener("change",
 
                 await searchHelper.pasteSearxCookies();
                 await searchHelper.pasteSearxngCookies();
+                await searchHelper.pasteLibrexCookies();
 
                 await redditHelper.pasteLibredditCookies();
                 await redditHelper.pasteTedditCookies();