diff --git a/README.md b/README.md index 2c80a61..bf3be98 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 93bb10a..c19f4d4 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 c03ca31..a530036 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 f878924..3514407 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 832d653..fd7b5dc 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 872a83c..f42eadc 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 721ad2b..c0faf41 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();