From f0684a5bb5860c2b9caffefb47dc55781092819e Mon Sep 17 00:00:00 2001 From: piplongrun Date: Wed, 12 Feb 2020 23:58:50 +0100 Subject: [PATCH 1/6] Add eTools engine --- searx/engines/etools.py | 54 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 searx/engines/etools.py diff --git a/searx/engines/etools.py b/searx/engines/etools.py new file mode 100644 index 00000000..a9eb0980 --- /dev/null +++ b/searx/engines/etools.py @@ -0,0 +1,54 @@ +""" + eTools (Web) + + @website https://www.etools.ch + @provide-api no + @using-api no + @results HTML + @stable no (HTML can change) + @parse url, title, content +""" + +from lxml import html +from searx.engines.xpath import extract_text +from searx.url_utils import quote +from searx.utils import eval_xpath + +categories = ['general'] +paging = False +language_support = False +safesearch = True + +base_url = 'https://www.etools.ch' +search_path = '/searchAdvancedSubmit.do'\ + '?query={search_term}'\ + '&pageResults=20'\ + '&safeSearch={safesearch}' + + +def request(query, params): + if params['safesearch']: + safesearch = 'true' + else: + safesearch = 'false' + + params['url'] = base_url + search_path.format(search_term=quote(query), safesearch=safesearch) + + return params + + +def response(resp): + results = [] + + dom = html.fromstring(resp.text) + + for result in eval_xpath(dom, '//table[@class="result"]//td[@class="record"]'): + url = eval_xpath(result, './a/@href')[0] + title = extract_text(eval_xpath(result, './a//text()')) + content = extract_text(eval_xpath(result, './/div[@class="text"]//text()')) + + results.append({'url': url, + 'title': title, + 'content': content}) + + return results From e1b60106b7dab37fe29cb68c9b625c5fe52c1385 Mon Sep 17 00:00:00 2001 From: piplongrun Date: Wed, 12 Feb 2020 23:59:18 +0100 Subject: [PATCH 2/6] Add etools engine to the list --- searx/settings.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/searx/settings.yml b/searx/settings.yml index ab3de395..08ff8dc6 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -202,6 +202,11 @@ engines: timeout: 3.0 disabled : True + - name : etools + engine : etools + shortcut : eto + disabled : True + - name : etymonline engine : xpath paging : True From 88f9ac58f4577e3efed63bceb91b51258060a8a0 Mon Sep 17 00:00:00 2001 From: Dalf Date: Fri, 14 Feb 2020 13:45:50 +0100 Subject: [PATCH 3/6] [mod] move public instance list to https://searx.space --- README.rst | 2 +- docs/conf.py | 2 +- docs/user/index.rst | 1 - docs/user/public_instances.rst | 319 +------------------------- searx/templates/__common__/about.html | 2 +- searx/templates/oscar/base.html | 2 +- searx/templates/simple/base.html | 2 +- 7 files changed, 7 insertions(+), 323 deletions(-) diff --git a/README.rst b/README.rst index afe413af..eb2c58ea 100644 --- a/README.rst +++ b/README.rst @@ -7,7 +7,7 @@ engine `__. Pronunciation: səːks List of `running -instances `__. +instances `__. See the `documentation `__ and the `wiki `__ for more information. diff --git a/docs/conf.py b/docs/conf.py index af255e23..cd61b697 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -94,7 +94,7 @@ html_context = { "project_links": [ ProjectLink("Source", GIT_URL), ProjectLink("Wiki", "https://github.com/asciimoo/searx/wiki"), - ProjectLink("Public instances", "https://asciimoo.github.io/searx/user/public_instances.html"), + ProjectLink("Public instances", "https://searx.space/"), ProjectLink("Twitter", "https://twitter.com/Searx_engine"), ] } diff --git a/docs/user/index.rst b/docs/user/index.rst index 329be3b1..b13aca21 100644 --- a/docs/user/index.rst +++ b/docs/user/index.rst @@ -5,6 +5,5 @@ User documentation .. toctree:: :maxdepth: 1 - public_instances search_syntax own-instance diff --git a/docs/user/public_instances.rst b/docs/user/public_instances.rst index 9665c58b..f58ab7a0 100644 --- a/docs/user/public_instances.rst +++ b/docs/user/public_instances.rst @@ -1,318 +1,3 @@ -.. _public instances: - -.. - links has been ported from markdown to reST by:: - - regexpr: \[([^\]]*)\]\(([^)]*)\) - substitution: `\1 <\2>`__ - - -====================== -Public Searx instances -====================== - -.. _mailing list: mailto:searx-instances@autistici.org -.. _subscription page: https://www.autistici.org/mailman/listinfo/searx-instances - - -Useful information -================== - -* Up-to-date health report available on https://stats.searx.xyz [1]_, for onion - (tor) services: https://stats.searx.xyz/tor.html - -* Searx instances `mailing list`_ & `subscription page`_. - -* Some of the Searx instances have a CAcert SSL certificate. You can install the - missing root cert `from here `__. - -* To add your own Searx instance to this page send us your PR. A GitHub account - is required to send PR or add an issue. - -.. [1] Note that most of the instances with a A+ grade in CSP column in this - site are not fully functional - for example auto-completion may not work. - - -List of public Searx instances -============================== - -Meta-searx instances -==================== - -These are websites that source from other searx instances. These are useful if -you can't decide which Searx instance to use: - - -.. flat-table:: Meta-searx instances - :header-rows: 1 - :stub-columns: 0 - :widths: 2 1 2 4 4 - - * - clearnet host - - onion host - - issuer - - source selection method - - extra privacy features - - * - `Neocities `__ - - n/a - - Comodo (`Verification `__) - - Redirects users directly to a random selection of any known running - server after entering query. Requires - Javascript. `Changelog `__. - - Excludes servers with user tracking and analytics or are proxied through - Cloudflare. - - * - `Searxes `__ @Danwin - - onion v3 `hidden service - `__ - - Let's Encrypt (`Verification - `__) - - sources data from a randomly selected running server that satisfies - admin's quality standards which is used for post-processing - - filters out privacy-hostile websites (like CloudFlare) and either marks - them as such or folds them below the high ranking results. - - -Alive and running -================= - -**BEFORE EDITING**: Please add your Searx instance by respecting the alphabetic order. - -.. note:: - - Public instances listed here may yield less accurate results as they have - much higher traffic and consequently have a higher chance of being blocked by - search providers such as Google, Qwant, Bing, Startpage, etc. Hosting your - own instance or using an instance that isn't listed here may give you a more - consistent search experience. - -* `ai.deafpray.wtf/searx `__ - Issuer: Let's Encrypt `Verification `__ -* `bamboozle.it `__ - Issuer: Let's Encrypt `Verification `__ -* `bee.jaekr.dev `__ - Issuer: Let's Encrypt `Verification `__ -* `beezboo.com `__ - Issuer: Let's Encrypt `Verification `__ -* `burtrum.org/searx `__ - Issuer: Let's Encrypt `Verification `__ -* `darmarit.cloud/searx `__ - Issuer: Let's Encrypt `Verification `__ -* `dc.ax `__ - Issuer: Let's Encrypt `Verification `__ -* `dynabyte.ca `__ - Issuer: Let's Encrypt `Verification `__ -* `goso.ga `__ - Issuer: Let's Encrypt `Verification `__ -* `gruble.de `__ - Issuer: Let's Encrypt `Verification `__ -* `haku.ahmia.fi `__ - Issuer: Let's Encrypt `Verification `__ -* `haku.lelux.fi `__ - Issuer: Let's Encrypt `Verification `__ -* `huyo.me `__ - Issuer: Let's Encrypt `Verification `__ -* `jsearch.pw `__ - Issuer: Let's Encrypt `Verification `__ -* `le-dahut.com/searx `__ - Issuer: Let's Encrypt `Verification `__ -* `mijisou.com `__ - Issuer: Let's Encrypt `Verification `__ -* `null.media `__ - Issuer: Let's Encrypt `Verification `__ -* `openworlds.info `__ - Issuer: Let's Encrypt -* `perfectpixel.de/searx/ `__ - Issuer: LetsEncrypt `Verification `__ -* `ransack.i2p `__ - I2P eepsite, only accessible with `I2P `__ (`base32 address `__) -* `rapu.nz `__ - Issuer: Let's Encrypt `Verification `__ -* `roflcopter.fr `__ - Issuer: Let's Encrypt `Verification `__ -* `roteserver.de/searx `__ - Issuer: Let's Encrypt `Verification `__ -* `s.cmd.gg `__ - Issuer: Let's Encrypt `Verification `__ -* `search.activemail.de `__ - Issuer: Let's Encrypt `Verification `__ -* `search.anonymize.com `__ - Issuer: Let's Encrypt `Verification `__ -* `search.azkware.net `__ - Issuer: Let's Encrypt `Verification `__ -* `search.biboumail.fr `__ - Issuer: Let's Encrypt `Verification `__ -* `search.blankenberg.eu `__ - Issuer: Let's Encrypt `Verification `__ -* `search.d4networks.com `__ - Issuer: Let's Encrypt `Verification `__ -* `search.datensturm.net `__ - Issuer: Let's Encrypt `Verification `__ -* `search.disroot.org `__ - Issuer: Let's Encrypt `Verification `__ -* `search.ethibox.fr `__ - Issuer: Let's Encrypt `Verification `__ -* `search.fossdaily.xyz `__ - Issuer: Let's Encrypt `Verification `__ -* `search.galaxy.cat `__ - Issuer: Let's Encrypt `Verification `__ -* `search.gibberfish.org `__ (as `Hidden Service `__ or `Proxied through Tor `__) - Issuer: Let's Encrypt `Verification `__ -* `search.koehn.com `__ - Issuer: Let's Encrypt `Verification `__ -* `search.lgbtq.cool `__ - Issuer: Let's Encrypt `Verification `__ -* `search.mdosch.de `__ (as `Hidden Service `__) - Issuer: Let's Encrypt `Verification `__ -* `search.modalogi.com `__ - Issuer: Let's Encrypt `Verification `__ -* `search.moravit.com `__ - Issuer: Let's Encrypt `Verification `__ -* `search.nebulacentre.net `__ - Issuer: Let's Encrypt `Verification `__ -* `search.paulla.asso.fr `__ - Issuer: Let's Encrypt `Verification `__ -* `search.pifferi.info `__ - Issuer: Let's Encrypt `Verification `__ -* `search.poal.co `__ - Issuer: Let's Encrypt `Verification `__ -* `search.privacytools.io `__ - Issuer: Let's Encrypt `Verification `__ - Uses Matomo for user tracking and analytics -* `search.seds.nl `__ - Issuer: Let's Encrypt `Verification `__ -* `search.snopyta.org `__ (as `Hidden Service `__) - Issuer: Let's Encrypt `Verification `__ -* `search.spaeth.me `__ - Issuer: Let's Encrypt `Verification `__ -* `search.st8.at `__ - Issuer: Let's Encrypt `Verification `__ -* `search.stinpriza.org `__ (as `Hidden Service `__) - Issuer: Let's Encrypt `Verification `__ -* `search.sudo-i.net `__ - Issuer: Let's Encrypt `Verification `__ -* `search.tolstoevsky.ml `__ - Issuer: Let's Encrypt `Verification `__ -* `searchsin.com/searx `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.anongoth.pl `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.be `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.ca `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.canox.net `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.cybt.de `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.de `__ - Issuer: COMODO `Verification `__ -* `searx.decatec.de `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.devol.it `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.dnswarden.com `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.drakonix.net `__ - (down) Issuer: Let's Encrypt `Verification `__ -* `searx.dresden.network `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.elukerio.org `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.everdot.org `__ - Issuer: Let's Encrypt `Verification `__ - Crawls using YaCy -* `searx.foo.li `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.fossencdi.org `__ (as `Hidden Service `__) - Issuer: Let's Encrypt `Verification `__ -* `searx.fr32k.de `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.good.one.pl `__ (as `Hidden Service `__) - Issuer: Let's Encrypt `Verification `__ -* `searx.gotrust.de `__ (as `Hidden Service `__) - Issuer: Let's Encrypt `Verification `__ -* `searx.hardwired.link `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.hlfh.space `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.info `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.itunix.eu `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.john-at-me.net `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.kvch.me `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.laquadrature.net `__ (as `Hidden Service `__) - Issuer: Let's Encrypt `Verification `__ -* `searx.lelux.fi `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.lhorn.de `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.li `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.libmail.eu `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.linux.pizza `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.lynnesbian.space `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.mastodontech.de `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.me `__ (as `Hidden Service `__) - Issuer: Let's Encrypt `Verification `__ -* `searx.mxchange.org `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.nakhan.net `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.nixnet.xyz `__ (as `Hidden Service `__) - Issuer: Let's Encrypt `Verification `__ -* `searx.nnto.net `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.openhoofd.nl `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.openpandora.org `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.operationtulip.com `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.orcadian.net `__ - Issuer: Comodo CA Limited `Verification `__ -* `searx.ouahpit.info `__ - Issuer: Let's Encrypt -* `searx.pofilo.fr `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.prvcy.eu `__ (as `Hidden Service `__) - Issuer: Let's Encrypt `Verification `__ -* `searx.pwoss.org `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.ro `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.ru `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.solusar.de `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.targaryen.house `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.tuxcloud.net `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.tyil.nl `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.wegeeks.win `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.win `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.xyz `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.zareldyn.net `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.zdechov.net `__ - Issuer: Let's Encrypt `Verification `__ -* `searxs.eu `__ - Issuer: Let's Encrypt `Verification `__ -* `seeks.hsbp.org `__ - Issuer: Let's Encrypt `Verification `__ - `PGP signed fingerprints of cert `__ -* `skyn3t.in/srx `__ - Issuer: Let's Encrypt | onion `hidden service `__ -* `spot.ecloud.global `__ - Issuer: Let's Encrypt `Verification `__ -* `srx.sx `__ - Issuer: Let's Encrypt `Verification `__ -* `stemy.me/searx `__ - Issuer: Let's Encrypt `Verification `__ -* `suche.dasnetzundich.de `__ - Issuer: Let's Encrypt `Verification `__ -* `suche.elaon.de `__ - Issuer: Let's Encrypt `Verification `__ -* `suche.xyzco456vwisukfg.onion `__ -* `suche.uferwerk.org `__ - Issuer: Let's Encrypt `Verification `__ -* `timdor.noip.me/searx `__ - Issuer: Let's Encrypt `Verification `__ -* `trovu.komun.org `__ - Issuer: Let's Encrypt `Verification `__ -* `unmonito.red `__ - Issuer: Let's Encrypt `Verification `__ -* `www.finden.tk `__ - Issuer: Let's Encrypt `Verification `__ -* `zoek.anchel.nl `__ - Issuer: Let's Encrypt `Verification `__ - - - -Running in exclusive private walled-gardens -=========================================== - -These instances run in walled-gardens that exclude some segment of the general -public (e.g. Tor users and users sharing IPs with many other users). Caution: -privacy is also compromised on these sites due to exposure of cleartext traffic -to a third party other than the website operator. - -* `intelme.com `__ - Issuer: Cloudflare `Verification `__ -* `search404.io `__ - Issuer: Cloudflare `Verification `__ -* `searx.com.au `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.lavatech.top `__ - Issuer: Cloudflare `Verification `__ -* `searchx.mobi `__ - Issuer: Cloudflare `Verification `__ -* `searx.org `__ - Issuer: Cloudflare `Verification `__ -* `searx.run `__ - Issuer: Cloudflare `Verification `__ -* `searx.world `__ - Issuer: Cloudflare `Verification `__ - Adds Amazon affiliate links - - -Running with an incorrect SSL certificate -========================================= - -* `listi.me `__ - Issuer: Let's Encrypt `Verification `__ -* `s.matejc.com `__ - Issuer: Let's Encrypt `Verification `__ -* `search.jollausers.de `__ - Incorrectly configured `SSL certificate `__ -* `search.paviro.de `__ - Issuer: LetsEncrypt `Verification `__ -* `searx.abenthung.it `__ - Issuer: Comodo CA Limited `Verification `__ -* `searx.coding4schoki.org `__ - Incorrectly configured `SSL Certificate `__ -* `searx.haxors.club `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.nulltime.net `__ (as `Hidden Service `__) - Issuer: Let's Encrypt `Verification `__ -* `searx.ch `__ - Issuer: Let's Encrypt `Verification `__ (cert clock problems) - - -Offline -======= - -* `a.searx.space `__ - Issuer: Let's Encrypt `Verification `__ (unstable, under construction). -* `anyonething.de `__ - (was found to have become a pastebin on or before 2019-03-01) Issuer: Comodo CA Limited (Warning: uses Cloudflare) `Verification `__ -* `h7jwxg5rakyfvikpi.onion `__ - available only as Tor Hidden Service (down on 2019-06-26) -* `hacktivis.me/searx `__ - (down) - Issuer: Let's Encrypt `Verification `__ -* `icebal.com `__ - (down) Issuer: Let's Encrypt -* `netrangler.host `__ - (down) - Issuer: Let's Encrypt `Verification `__ -* `opengo.nl `__ - (down) Issuer: Let's Encrypt `Verification `__ -* `p9e.de `__ - (down - timeout) Issuer: Let's Encrypt `Verification `__ -* `rubri.co `__ - (down) Issuer: Let's Encrypt -* `s.bacafe.xyz `__ - (down) Issuer: Let's Encrypt `Verification `__ -* `search.alecpap.com `__ - (down) Issuer: Let's Encrypt `Verification `__ -* `search.blackit.de `__ - (down) Let's Encrypt `Verification `__ -* `search.deblan.org `__ (down) - Issuer: COMODO via GANDI `Verification `__ -* `search.homecomputing.fr `__ - (down) Issuer: CAcert `Verification `__ -* `search.jpope.org `__ - (down - timeout) Issuer: Let's Encrypt `Verification `__ -* `search.kakise.xyz `__ - down -* `search.kosebamse.com `__ - Issuer: LetsEncrypt `Verification `__ -* `search.kujiu.org `__ - (down) Issuer: Let's Encrypt -* `search.mailaender.coffee `__ - Issuer: Let's Encrypt `Verification `__ -* `search.matrix.ac `__ - (down) Issuer: Let's Encrypt `Verification `__ -* `search.mypsc.ca `__ - Issuer: Let's Encrypt `Verification `__ -* `search.namedkitten.pw `__ - (SSL error) - Issuer: Let's Encrypt `Verification `__ -* `search.opentunisia.org `__ - Issuer: Let's Encrypt `Verification `__ -* `search.r3d007.com `__ - (down) Issuer: Let's Encrypt -* `search.static.lu `__ - (down) Issuer: StartCom `Verification `__ -* `search.teej.xyz `__ - (down) Issuer: LetsEncrypt `Verification `__ -* `search.wxzm.sx `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.4ray.co `__ - (no longer an instance, redirects to main page) Issuer: Let's Encrypt `Verification `__ -* `searx.32bitflo.at `__ - (down) Issuer: Let's Encrypt `Verification `__ -* `searx.ahh.si `__ - (down) - Issuer: Let's Encrypt `Verification `__ -* `searx.angristan.xyz `__ - (down) Issuer: Let's Encrypt `Verification `__ -* `searx.antirep.net `__ - (return a 502 HTTP error) Issuer: Let's Encrypt `Verification `__ -* `searx.aquilenet.fr `__ - (down - 429 HTTP error) Issuer: Let's Encrypt `Verification `__ -* `searx.at `__ - (return "request exception" at every search) Issuer: Let's Encrypt `Verification `__ -* `searx.cc `__ - (down on 2019-06-26) Issuer: Let's Encrypt `Verification `__ -* `searx.dk `__ - (down - 429 HTTP error) Issuer: Let's Encrypt `Verification `__ -* `searx.ehrmanns.ch `__ - (down) Issuer: Let's Encrypt -* `searx.glibre.net `__ - Issuer: Let's Encrypt `Verification `__ -* `searx.infini.fr `__ - (return a page stating that the website is not installed) Issuer: Let's Encrypt `Verification `__ -* `searx.jeanphilippemorvan.info `__ - (down) Issuer: StartCom `Verification `__ -* `searx.lhorn.de `__ - (redirect the Searx's github repository page) Issuer: Let's Encrypt `Verification `__ (only reachable from european countries) -* `searx.lvweb.host `__ - (down) Issuer: Let's Encrypt `Verification `__ -* `searx.mrtino.eu `__ - (down) Issuer: Let's Encrypt `Verification `__ -* `searx.netzspielplatz.de `__ - (error page about GDPR even when browsing it from USA and Asia) - Issuer: Let's Encrypt `Verification `__ -* `searx.new-admin.net `__ - (down) Issuer: Let's Encrypt -* `searx.nogafa.org `__ - (broken CSS) Issuer: Let's Encrypt `Verification `__ -* `searx.potato.hu `__ - (not a searx instance) - Issuer: Let's Encrypt `Verification `__ -* `searx.rubbeldiekatz.info `__ - (down) Issuer: Let's Encrypt `Verification `__ -* `searx.s42.space `__ - (down) Issuer: Let's Encrypt `Verification `__ -* `searx.salcay.hu `__ - (down - blank page) Issuer: Let's Encrypt `Verification `__ -* `searx.selea.se `__ - (Leads to default Apache page) Issuer: RapidSSL (HSTS preloaded, DNSSEC) `Verification `__ | `HSTS Preload `__ -* `searx.steinscraft.net `__ - (down) Issuer: Cloudflare -* `searx.techregion.de `__ - (domain expired) - Issuer: Let's Encrypt `Verification `__ -* `searx.tognella.com `__ - (down) Issuer: Cloudflare -* `searx.xi.ht `__ - (return a 502 HTTP error) Issuer: Let's Encrypt `Verification `__ -* `searxist.com `__ - (down) - Issuer: Let's Encrypt `Verification `__ -* `so.sb `__ - (down) - Issuer: Let's Encrypt `Verification `__ -* `srx.stdout.net `__ - Issuer: Let's Encrypt `Verification `__ -* `w6f7cgdm54cyvohcuhraaafhajctyj3ihenrovuxogoagrr5g43qmoid.onion `__ - Hidden Service -* `win8linux.nohost.me `__ - (down) Issuer: Let's Encrypt -* `wiznet.tech `__ - (down) - Issuer: Let's Encrypt `Verification `__ -* `www.mercurius.space `__ - (down) Issuer: Let's Encrypt -* `www.ready.pm `__ - Issuer: WoSign `Verification `__ -* `z.awsmppl.com `__ - (down) Issuer: Let's Encrypt `Verification `__ -* `zlsdzh.tk `__ - (down - 404 HTTP error) Issuer: TrustAsia Technologies, Inc. `Verification `__ * +:orphan: +This page page has been moved to `searx.space `__ diff --git a/searx/templates/__common__/about.html b/searx/templates/__common__/about.html index bf173335..ff86ddd2 100644 --- a/searx/templates/__common__/about.html +++ b/searx/templates/__common__/about.html @@ -22,7 +22,7 @@ Searx can be added to your browser's search bar; moreover, it can be set as the

How can I make it my own?

-

Searx appreciates your concern regarding logs, so take the code and run it yourself!
Add your Searx to this list to help other people reclaim their privacy and make the Internet freer! +

Searx appreciates your concern regarding logs, so take the code and run it yourself!
Add your Searx to this list to help other people reclaim their privacy and make the Internet freer!
The more decentralized the Internet is, the more freedom we have!

diff --git a/searx/templates/oscar/base.html b/searx/templates/oscar/base.html index 66a9e602..9465ca58 100644 --- a/searx/templates/oscar/base.html +++ b/searx/templates/oscar/base.html @@ -88,7 +88,7 @@ {{ _('Powered by') }} searx - {{ searx_version }} - {{ _('a privacy-respecting, hackable metasearch engine') }}
{{ _('Source code') }} | {{ _('Issue tracker') }} | - {{ _('Public instances') }} + {{ _('Public instances') }}

diff --git a/searx/templates/simple/base.html b/searx/templates/simple/base.html index 92597b65..bba02dbf 100644 --- a/searx/templates/simple/base.html +++ b/searx/templates/simple/base.html @@ -53,7 +53,7 @@ {{ _('Powered by') }} searx - {{ searx_version }} - {{ _('a privacy-respecting, hackable metasearch engine') }}
{{ _('Source code') }} | {{ _('Issue tracker') }} | - {{ _('Public instances') }} + {{ _('Public instances') }}

From 6df41728872934fe0e7f12c0a272d370f50d26a9 Mon Sep 17 00:00:00 2001 From: Adam Tauber Date: Tue, 18 Feb 2020 00:56:27 +0100 Subject: [PATCH 4/6] [fix] allow settin custom locale from settins.yml --- searx/preferences.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/searx/preferences.py b/searx/preferences.py index 669232b1..37d4f13a 100644 --- a/searx/preferences.py +++ b/searx/preferences.py @@ -11,7 +11,7 @@ if version[0] == '3': COOKIE_MAX_AGE = 60 * 60 * 24 * 365 * 5 # 5 years -LANGUAGE_CODES = [l[0] for l in languages] +LANGUAGE_CODES = [l[0].split('-')[0] for l in languages] LANGUAGE_CODES.append('all') DISABLED = 0 ENABLED = 1 From a9d184473f8da473918ad02ca1b3346420b296fc Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Thu, 20 Feb 2020 18:11:34 +0100 Subject: [PATCH 5/6] docs: fix dead Searx-instance links to https://searx.space Related to #1853 / BTW update year of copyright note Signed-off-by: Markus Heiser --- docs/conf.py | 2 +- docs/dev/reST.rst | 2 +- docs/index.rst | 6 ++++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index cd61b697..ebcd102b 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -11,7 +11,7 @@ DOCS_URL = os.environ.get("DOCS_URL", "https://asciimoo.github.io/searx/") # Project -------------------------------------------------------------- project = u'searx' -copyright = u'2015-2019, Adam Tauber, Noémi Ványi' +copyright = u'2015-2020, Adam Tauber, Noémi Ványi' author = u'Adam Tauber' release, version = VERSION_STRING, VERSION_STRING highlight_language = 'none' diff --git a/docs/dev/reST.rst b/docs/dev/reST.rst index 4dc1279f..4835cbbc 100644 --- a/docs/dev/reST.rst +++ b/docs/dev/reST.rst @@ -285,7 +285,7 @@ content becomes smart. :rst:role:`pep` :pep:`8` ``:pep:`8``` sphinx.ext.extlinks_ -------------------------------------------------------------------------------------------------- - project's wiki article :wiki:`Searx-instances` ``:wiki:`Searx-instances``` + project's wiki article :wiki:`Offline-engines` ``:wiki:`Offline-engines``` to docs public URL :docs:`dev/reST.html` ``:docs:`dev/reST.html``` files & folders origin :origin:`docs/dev/reST.rst` ``:origin:`docs/dev/reST.rst``` pull request :pull:`1756` ``:pull:`1756``` diff --git a/docs/index.rst b/docs/index.rst index d9503fef..b62f4dc5 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -20,8 +20,8 @@ Searx is a free internet metasearch engine which aggregates results from more than 70 search services. Users are neither tracked nor profiled. Additionally, searx can be used over Tor for online anonymity. -Get started with searx by using one of the :wiki:`Searx-instances`. If you -don't trust anyone, you can set up your own, see :ref:`installation`. +Get started with searx by using one of the Searx-instances_. If you don't trust +anyone, you can set up your own, see :ref:`installation`. .. toctree:: :maxdepth: 2 @@ -30,3 +30,5 @@ don't trust anyone, you can set up your own, see :ref:`installation`. admin/index dev/index blog/index + +.. _Searx-instances: https://searx.space From c0006cadf70f0ee457d881bbd4ec40e30b0acd8f Mon Sep 17 00:00:00 2001 From: Marc Abonce Seguin Date: Sun, 23 Feb 2020 02:03:42 -0700 Subject: [PATCH 6/6] fix default locale and language issues --- searx/preferences.py | 9 +++++++-- searx/settings.yml | 1 + searx/webapp.py | 22 +++++++++++----------- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/searx/preferences.py b/searx/preferences.py index 37d4f13a..6e31aa18 100644 --- a/searx/preferences.py +++ b/searx/preferences.py @@ -4,6 +4,7 @@ from sys import version from searx import settings, autocomplete from searx.languages import language_codes as languages +from searx.utils import match_language from searx.url_utils import parse_qs, urlencode if version[0] == '3': @@ -11,7 +12,7 @@ if version[0] == '3': COOKIE_MAX_AGE = 60 * 60 * 24 * 365 * 5 # 5 years -LANGUAGE_CODES = [l[0].split('-')[0] for l in languages] +LANGUAGE_CODES = [l[0] for l in languages] LANGUAGE_CODES.append('all') DISABLED = 0 ENABLED = 1 @@ -132,6 +133,10 @@ class SetSetting(Setting): class SearchLanguageSetting(EnumStringSetting): """Available choices may change, so user's value may not be in choices anymore""" + def _validate_selection(self, selection): + if not match_language(selection, self.choices, fallback=None) and selection != "": + raise ValidationException('Invalid language code: "{0}"'.format(selection)) + def parse(self, data): if data not in self.choices and data != self.value: # hack to give some backwards compatibility with old language cookies @@ -268,7 +273,7 @@ class Preferences(object): super(Preferences, self).__init__() self.key_value_settings = {'categories': MultipleChoiceSetting(['general'], choices=categories + ['none']), - 'language': SearchLanguageSetting(settings['ui']['default_locale'], + 'language': SearchLanguageSetting(settings['search']['default_lang'], choices=list(LANGUAGE_CODES) + ['']), 'locale': EnumStringSetting(settings['ui']['default_locale'], choices=list(settings['locales'].keys()) + ['']), diff --git a/searx/settings.yml b/searx/settings.yml index ab3de395..65f42af8 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -5,6 +5,7 @@ general: search: safe_search : 0 # Filter results. 0: None, 1: Moderate, 2: Strict autocomplete : "" # Existing autocomplete backends: "dbpedia", "duckduckgo", "google", "startpage", "wikipedia" - leave blank to turn it off by default + default_lang : "" # Default search language - leave blank to detect from browser information or use codes from 'languages.py' ban_time_on_fail : 5 # ban time in seconds after engine errors max_ban_time_on_fail : 120 # max ban time in seconds after engine errors diff --git a/searx/webapp.py b/searx/webapp.py index a856c07d..8712cc3c 100644 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -157,14 +157,16 @@ _category_names = (gettext('files'), outgoing_proxies = settings['outgoing'].get('proxies') or None +def _get_browser_language(request, lang_list): + for lang in request.headers.get("Accept-Language", "en").split(","): + locale = match_language(lang, lang_list, fallback=None) + if locale is not None: + return locale + + @babel.localeselector def get_locale(): - locale = "en-US" - - for lang in request.headers.get("Accept-Language", locale).split(","): - locale = match_language(lang, settings['locales'].keys(), fallback=None) - if locale is not None: - break + locale = _get_browser_language(request, settings['locales'].keys()) logger.debug("default locale from browser info is `%s`", locale) @@ -372,8 +374,7 @@ def render(template_name, override_theme=None, **kwargs): kwargs['language_codes'] = languages if 'current_language' not in kwargs: kwargs['current_language'] = match_language(request.preferences.get_value('language'), - LANGUAGE_CODES, - fallback=locale) + LANGUAGE_CODES) # override url_for function in templates kwargs['url_for'] = url_for_theme @@ -444,11 +445,10 @@ def pre_request(): request.errors.append(gettext('Invalid settings')) # init search language and locale - locale = get_locale() if not preferences.get_value("language"): - preferences.parse_dict({"language": locale}) + preferences.parse_dict({"language": _get_browser_language(request, LANGUAGE_CODES)}) if not preferences.get_value("locale"): - preferences.parse_dict({"locale": locale}) + preferences.parse_dict({"locale": get_locale()}) # request.user_plugins request.user_plugins = []