index.rst 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392
  1. ********
  2. searx-qt
  3. ********
  4. Lightweight desktop application for searx
  5. #########################################
  6. This document is work in progress; as is the searx-qt project.
  7. .. _index:
  8. ******
  9. Index
  10. ******
  11. - `Index <index_>`_
  12. - `About <about_>`_
  13. - - `Summary <about/summary_>`_
  14. - - `Source <about/source_>`_
  15. - - `License <about/license_>`_
  16. - - `Dependencies <about/dependencies_>`_
  17. - `Getting started <getting_started_>`_
  18. - - `Install dependencies <getting_started/install_dependencies_>`_
  19. - - `Installation <getting_started/installation_>`_
  20. - `Usage <usage_>`_
  21. - - `Settings <usage/settings_>`_
  22. - - `Instances <usage/instances_>`_
  23. - - `Search <usage/search_>`_
  24. .. _about:
  25. ******
  26. About
  27. ******
  28. .. _about/summary:
  29. Summary
  30. #######
  31. searx-qt is a lightweight desktop application that lets you search on
  32. public searx instances listed on `https://searx.space`.
  33. Technically searx-qt is a client application that does magic with the searx
  34. API and searx-stats2 it's instances.json
  35. searx
  36. -----
  37. Actual search requests will be made to a server running searx software, there
  38. are many public available. We call such servers 'instances'.
  39. If you are not familiar with the searx project; you can checkout their page
  40. here: https://asciimoo.github.io/searx/ or https://searx.me/
  41. - API Docs: https://asciimoo.github.io/searx/dev/search_api.html
  42. - Source: https://github.com/asciimoo/searx
  43. - License: GPLv3
  44. searx-stats2
  45. ------------
  46. The searx-stats2 project lists public searx instances with statistics. The
  47. original instance is running at https://searx.space/. This is where searx-qt
  48. will request a list with instances when the update button is pressed.
  49. - Source: https://github.com/dalf/searx-stats2
  50. - License: GPLv3
  51. .. _about/source:
  52. Source
  53. ######
  54. - git: https://notabug.org/CYBERDEViL/searx-qt
  55. - ssh: git@notabug.org:CYBERDEViL/searx-qt.git
  56. .. _about/license:
  57. License
  58. #######
  59. - GPLv3
  60. - https://www.gnu.org/licenses/gpl-3.0.en.html
  61. .. _about/dependencies:
  62. Dependencies
  63. ############
  64. ======== ========= ========= =====
  65. name version license URL
  66. ======== ========= ========= =====
  67. python 3 PSFL https://docs.python.org/3/license.html
  68. requests Apache 2 http://docs.python-requests.org/en/master/
  69. PyQt5 GPLv3 https://www.riverbankcomputing.com/software/pyqt/intro
  70. ======== ========= ========= =====
  71. Optional for socks proxy support:
  72. ======== ========= ========= =====
  73. name version license URL
  74. ======== ========= ========= =====
  75. pysocks BSD https://github.com/Anorov/PySocks
  76. ======== ========= ========= =====
  77. .. _getting_started:
  78. ****************
  79. Getting started
  80. ****************
  81. .. _getting_started/install_dependencies:
  82. Install dependencies
  83. ####################
  84. Debian / Ubuntu based
  85. ---------------------
  86. Install required dependencies::
  87. # apt update
  88. # apt upgrade
  89. # apt install python3 python3-requests python3-pyqt5
  90. **Optional** for socks proxy support::
  91. # apt install python3-socks
  92. Arch based
  93. ----------
  94. Install required dependencies::
  95. # pacman -Syu python python-requests python-pyqt5
  96. **Optional** for socks proxy support::
  97. # pacman -S python-pysocks
  98. .. _getting_started/installation:
  99. Installation
  100. ############
  101. TODO
  102. .. _usage:
  103. ******
  104. Usage
  105. ******
  106. .. _usage/settings:
  107. Settings
  108. ########
  109. .. image:: images/settings.png
  110. :align: right
  111. Verify (SSL)
  112. ------------
  113. Request will fail on a invalid SSL/TLS certificate.
  114. Leave checked if unsure.
  115. See https://requests.readthedocs.io/en/master/user/advanced/#ssl-cert-verification
  116. for a more technical description.
  117. Timeout
  118. -------
  119. Timeout in seconds for a single request.
  120. Leave it at the default value of 10 seconds if unsure.
  121. See https://requests.readthedocs.io/en/master/user/advanced/#timeouts for a
  122. more technical description.
  123. Proxy
  124. -----
  125. Here you can set a proxy that will be used for every connection searx-qt
  126. makes. Leave the input field blank to use no proxy.
  127. The 'Http' section can be used to proxy plain http:// requests to for
  128. example instances without a certificate. The 'Https' section can be used
  129. to proxy all https:// requests to instances (including fetching the
  130. instances list data from https://searx.space) with a certificate. So you
  131. can use a separate proxy for both protocols.
  132. If you use a socks4 or socks5 proxy you probably want to make sure the
  133. 'Proxy DNS' checkbox is checked so DNS requests will also go through the
  134. proxy. DNS proxy is not available for a http proxy type.
  135. .. _usage/instances:
  136. Instances
  137. #########
  138. .. image:: images/instances.png
  139. :align: right
  140. A instance is a server running the searx project. Since we want to
  141. preform searches to searx instance(s) we need addresses of those
  142. instance(s); those will be fetched from
  143. ``https://searx.space/data/instances.json``. The ``instances.json``
  144. from ``search.space`` also contains a lot of other data about the
  145. instances it lists which we can use to filter instances based on our
  146. preferences.
  147. The interface to manage instances is on the right. This is used to update
  148. the instances data with a press on the 'Update' button; filter the
  149. instances and browse/use the leftover instances in the instances table.
  150. Update instances table
  151. ----------------------
  152. If searx-qt is used for the first time you will need to update the
  153. instances table. There is a 'Update' button between the Filter and the
  154. Table that can be used for this. searx-qt will not update this automatically!
  155. It maybe useful to update the instances data so now and then since public
  156. instances appear, disappear and their stats change over time.
  157. Instances table
  158. ---------------
  159. The instances table can be used to browse instances with their data that
  160. remain after all filters. The table is also used to set the current
  161. instance by left-clicking on one.
  162. Right-clicking in the table opens a context-menu from where you can do the following:
  163. - Blacklist selected instance(s).
  164. - Copy selected instance(s) it's/their URL(s).
  165. - Select All instances (CTRL+A should do the same).
  166. - Hide or show columns.
  167. The currently used instance should also be visible bottom right in the
  168. application it's status-bar.
  169. Filter instances
  170. ----------------
  171. When a filter is enabled and the instance it's value that is being
  172. matched is unknown then it is excluded by default!
  173. Network
  174. =======
  175. Filter instances on network type. Only instances that match one of the
  176. checked network types remain.
  177. Require ASN privacy
  178. ===================
  179. Excludes instances that run their server at a known malicious network. Like for example CloudFlare, Google, Akamai etc..
  180. This does not give any guarantee, it only filters **known** privacy violators!
  181. For a full list of known malicious networks (technical): https://github.com/dalf/searx-stats2/blob/master/searxstats/data/asn.py
  182. Require IPv6
  183. ============
  184. Exclude instances that don't have at least one IPv6 address.
  185. Version
  186. =======
  187. Include only instances that have a searx version that has been added to
  188. this widget. Leave empty to allow all searx version.
  189. Blacklist
  190. =========
  191. Here are the URLs of the instances that have been manually blacklisted
  192. listed. There is a button right to each blacklist item to remove it from
  193. the blacklist.
  194. You can manually blacklist a instance by right clicking on a instance in
  195. the instances table and click 'Add to blacklist'; multiple instances can
  196. be blacklisted at once.
  197. .. _usage/search:
  198. Search
  199. ######
  200. Search bar
  201. ------------------------
  202. .. image:: images/search_bar.png
  203. Fallback
  204. ========
  205. If checked it will pick a random instance from the instances table if a
  206. search request fails one way or another and re-try the same request with
  207. the freshly picked instance. There is a maximum amount of 10 tries (10
  208. different instances to try the same request on).
  209. What is fail?
  210. - Connection errors including timeout.
  211. - Wrong status code (not 200).
  212. - No or malformed results returned.
  213. Random every
  214. ============
  215. If checked it will automatically pick a random instance on a search request,
  216. it will also hide the 'Random search button' because it makes it obsolete.
  217. If not checked it will do search requests on the same instance unless the
  218. request fails somehow and 'Fallback' is checked. Exception is when the
  219. 'Random search button' is used for the search request.
  220. Random search button
  221. ====================
  222. When pressed it will pick a random instance from the list and preform the
  223. search request.
  224. Reload button
  225. =============
  226. When pressed it basically preforms a search request without 'Fallback'
  227. whenever it is enabled or not, it also doesn't reset the page number. So
  228. it can act as a reload button thus it's name, but it does more.
  229. Note: When a search argument like the search query, instance URL,
  230. categories/engines etc. has changed by user interaction it will do the
  231. request with those changes, that isn't a real reload of the previous
  232. request.
  233. Dev-note: Probably this behavior should change or the name/icon should
  234. change to something more fitting.
  235. Search button
  236. =============
  237. Preform a search request on the currently selected instance.
  238. Page number is reset, 'Fallback' and 'Random Every' options are honored.
  239. Search query input
  240. ==================
  241. The query you like to search for.
  242. See https://asciimoo.github.io/searx/user/search_syntax.html for what is
  243. possible.
  244. It will do a search request on ``enter`` key pressed, same behavior as when the 'Search button' has been pressed.
  245. Search options
  246. --------------
  247. .. image:: images/search_options.png
  248. Right clicking in (on the picture above) the dark area opens a
  249. context-menu where you can manage what options you want to be visible or
  250. not.
  251. .. _usage/search/options/categories:
  252. Categories
  253. ==========
  254. These are predefined by searx but can vary by instance. Example if
  255. 'Images' is checked it will only use engines with images enabled. If
  256. 'Files' is checked it will only use engines with files enabled.
  257. searx-qt only passes this info to a searx instance with a search request,
  258. it will not automatically filter the instances table (yet).
  259. Engines
  260. =======
  261. Here you can toggle what search engines should be enabled. It will
  262. automatically filter out all instances from the instances table that doesn't
  263. have at least one of the checked engines enabled. The checked engines will
  264. be send with a search request to a searx instance with the `enabled_engines`
  265. param. You should only get results from engines that are checked.
  266. If no engine is checked it means that it may return results of any engine
  267. in the list, unless one or more of the `categories <usage/search/options/categories_>`_ are checked.
  268. The list with engines is created with data from the instances table, so
  269. only engines are listed that are available from the instances table.
  270. Period
  271. ======
  272. Search period you like results from. Options are ``Last day``,
  273. ``Last week``, ``Last month`` or ``Last year``.
  274. Language
  275. ========
  276. If you want results in a specific language than you can select one here.