This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<spanid="wikipedia"></span><spanid="wikipedia-engine"></span><h2><aclass="toc-backref"href="#id1"role="doc-backlink">Wikipedia</a><aclass="headerlink"href="#module-searx.engines.wikipedia"title="Link to this heading">¶</a></h2>
<p>This module implements the Wikipedia engine. Some of this implementations
<p>The list of supported languages is <aclass="reference internal"href="#searx.engines.wikipedia.fetch_wikimedia_traits"title="searx.engines.wikipedia.fetch_wikimedia_traits"><codeclass="xref py py-obj docutils literal notranslate"><spanclass="pre">fetched</span></code></a> from
the article linked by <aclass="reference internal"href="#searx.engines.wikipedia.list_of_wikipedias"title="searx.engines.wikipedia.list_of_wikipedias"><codeclass="xref py py-obj docutils literal notranslate"><spanclass="pre">list_of_wikipedias</span></code></a>.</p>
<p>Unlike traditional search engines, wikipedia does not support one Wikipedia for
all languages, but there is one Wikipedia for each supported language. Some of
these Wikipedias have a <aclass="reference external"href="https://www.mediawiki.org/wiki/Writing_systems#LanguageConverter">LanguageConverter</a> enabled
<p>A <aclass="reference external"href="https://www.mediawiki.org/wiki/Writing_systems#LanguageConverter">LanguageConverter</a> (LC) is a system based on language variants that
automatically converts the content of a page into a different variant. A variant
is mostly the same language in a different script.</p>
<ulclass="simple">
<li><p><aclass="reference external"href="https://meta.wikimedia.org/wiki/Wikipedias_in_multiple_writing_systems">Wikipedias in multiple writing systems</a></p></li>
<li><p><aclass="reference external"href="https://en.wikipedia.org/wiki/Chinese_Wikipedia#Automatic_conversion_between_traditional_and_simplified_Chinese_characters">Automatic conversion between traditional and simplified Chinese characters</a></p></li>
</ul>
<dlclass="simple">
<dt><aclass="reference external"href="https://github.com/searx/searx/pull/2554">PR-2554</a>:</dt><dd><p>The Wikipedia link returned by the API is still the same in all cases
(<aclass="reference external"href="https://zh.wikipedia.org/wiki/%E5%87%BA%E7%A7%9F%E8%BB%8A">https://zh.wikipedia.org/wiki/出租車</a>) but if your browser’s
<codeclass="docutils literal notranslate"><spanclass="pre">Accept-Language</span></code> is set to any of <codeclass="docutils literal notranslate"><spanclass="pre">zh</span></code>, <codeclass="docutils literal notranslate"><spanclass="pre">zh-CN</span></code>, <codeclass="docutils literal notranslate"><spanclass="pre">zh-TW</span></code>, <codeclass="docutils literal notranslate"><spanclass="pre">zh-HK</span></code>
or .. Wikipedia’s LC automatically returns the desired script in their
web-page.</p>
<ulclass="simple">
<li><p>You can test the API here: <aclass="reference external"href="https://reqbin.com/gesg2kvx">https://reqbin.com/gesg2kvx</a></p></li>
</ul>
</dd>
</dl>
<p>To support Wikipedia’s <aclass="reference external"href="https://www.mediawiki.org/wiki/Writing_systems#LanguageConverter">LanguageConverter</a>, a SearXNG request to Wikipedia uses
<p>To test in SearXNG, query for <codeclass="docutils literal notranslate"><spanclass="pre">!wp</span><spanclass="pre">出租車</span></code> with each of the available Chinese
options:</p>
<ulclass="simple">
<li><p><codeclass="docutils literal notranslate"><spanclass="pre">!wp</span><spanclass="pre">出租車</span><spanclass="pre">:zh</span></code> should show 出租車</p></li>
<li><p><codeclass="docutils literal notranslate"><spanclass="pre">!wp</span><spanclass="pre">出租車</span><spanclass="pre">:zh-CN</span></code> should show 出租车</p></li>
<li><p><codeclass="docutils literal notranslate"><spanclass="pre">!wp</span><spanclass="pre">出租車</span><spanclass="pre">:zh-TW</span></code> should show 計程車</p></li>
<li><p><codeclass="docutils literal notranslate"><spanclass="pre">!wp</span><spanclass="pre">出租車</span><spanclass="pre">:zh-HK</span></code> should show 的士</p></li>
<li><p><codeclass="docutils literal notranslate"><spanclass="pre">!wp</span><spanclass="pre">出租車</span><spanclass="pre">:zh-SG</span></code> should show 德士</p></li>
<spanclass="sig-prename descclassname"><spanclass="pre">searx.engines.wikipedia.</span></span><spanclass="sig-name descname"><spanclass="pre">display_type</span></span><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre">['infobox']</span></em><aclass="headerlink"href="#searx.engines.wikipedia.display_type"title="Link to this definition">¶</a></dt>
<dd><p>A list of display types composed from <codeclass="docutils literal notranslate"><spanclass="pre">infobox</span></code> and <codeclass="docutils literal notranslate"><spanclass="pre">list</span></code>. The latter
one will add a hit to the result list. The first one will show a hit in the
info box. Both values can be set, or one of the two can be set.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">searx.engines.wikipedia.</span></span><spanclass="sig-name descname"><spanclass="pre">send_accept_language_header</span></span><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre">True</span></em><aclass="headerlink"href="#searx.engines.wikipedia.send_accept_language_header"title="Link to this definition">¶</a></dt>
<dd><p>The HTTP <codeclass="docutils literal notranslate"><spanclass="pre">Accept-Language</span></code> header is needed for wikis where
<aclass="reference external"href="https://www.mediawiki.org/wiki/Writing_systems#LanguageConverter">LanguageConverter</a> is enabled.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">searx.engines.wikipedia.</span></span><spanclass="sig-name descname"><spanclass="pre">list_of_wikipedias</span></span><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre">'https://meta.wikimedia.org/wiki/List_of_Wikipedias'</span></em><aclass="headerlink"href="#searx.engines.wikipedia.list_of_wikipedias"title="Link to this definition">¶</a></dt>
<dd><p><aclass="reference external"href="https://meta.wikimedia.org/wiki/List_of_Wikipedias">List of all wikipedias</a></p>
<spanclass="sig-prename descclassname"><spanclass="pre">searx.engines.wikipedia.</span></span><spanclass="sig-name descname"><spanclass="pre">wikipedia_article_depth</span></span><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre">'https://meta.wikimedia.org/wiki/Wikipedia_article_depth'</span></em><aclass="headerlink"href="#searx.engines.wikipedia.wikipedia_article_depth"title="Link to this definition">¶</a></dt>
<dd><p>The <em>editing depth</em> of Wikipedia is one of several possible rough indicators
of the encyclopedia’s collaborative quality, showing how frequently its articles
are updated. The measurement of depth was introduced after some limitations of
the classic measurement of article count were realized.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">searx.engines.wikipedia.</span></span><spanclass="sig-name descname"><spanclass="pre">rest_v1_summary_url</span></span><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre">'https://{wiki_netloc}/api/rest_v1/page/summary/{title}'</span></em><aclass="headerlink"href="#searx.engines.wikipedia.rest_v1_summary_url"title="Link to this definition">¶</a></dt>
<dd><dlclass="simple">
<dt><aclass="reference external"href="https://en.wikipedia.org/api/rest_v1/#/Page%20content/get_page_summary__title_">wikipedia rest_v1 summary API</a>:</dt><dd><p>The summary response includes an extract of the first paragraph of the page in
plain text and HTML as well as the type of page. This is useful for page
previews (fka. Hovercards, aka. Popups) on the web and link previews in the
apps.</p>
</dd>
<dt>HTTP <codeclass="docutils literal notranslate"><spanclass="pre">Accept-Language</span></code> header (<aclass="reference internal"href="#searx.engines.wikipedia.send_accept_language_header"title="searx.engines.wikipedia.send_accept_language_header"><codeclass="xref py py-obj docutils literal notranslate"><spanclass="pre">send_accept_language_header</span></code></a>):</dt><dd><p>The desired language variant code for wikis where <aclass="reference external"href="https://www.mediawiki.org/wiki/Writing_systems#LanguageConverter">LanguageConverter</a> is
<spanclass="sig-prename descclassname"><spanclass="pre">searx.engines.wikipedia.</span></span><spanclass="sig-name descname"><spanclass="pre">wiki_lc_locale_variants</span></span><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre">{'zh':</span><spanclass="pre">('zh-CN',</span><spanclass="pre">'zh-HK',</span><spanclass="pre">'zh-MO',</span><spanclass="pre">'zh-MY',</span><spanclass="pre">'zh-SG',</span><spanclass="pre">'zh-TW'),</span><spanclass="pre">'zh-classical':</span><spanclass="pre">('zh-classical',)}</span></em><aclass="headerlink"href="#searx.engines.wikipedia.wiki_lc_locale_variants"title="Link to this definition">¶</a></dt>
<dd><p>Mapping rule of the <aclass="reference external"href="https://www.mediawiki.org/wiki/Writing_systems#LanguageConverter">LanguageConverter</a> to map a language and its variants to
a Locale (used in the HTTP <codeclass="docutils literal notranslate"><spanclass="pre">Accept-Language</span></code> header). For example see <aclass="reference external"href="https://meta.wikimedia.org/wiki/Wikipedias_in_multiple_writing_systems#Chinese">LC
<spanclass="sig-prename descclassname"><spanclass="pre">searx.engines.wikipedia.</span></span><spanclass="sig-name descname"><spanclass="pre">get_wiki_params</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">sxng_locale</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">eng_traits</span></span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../../../_modules/searx/engines/wikipedia.html#get_wiki_params"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#searx.engines.wikipedia.get_wiki_params"title="Link to this definition">¶</a></dt>
<dd><p>Returns the Wikipedia language tag and the netloc that fits to the
<codeclass="docutils literal notranslate"><spanclass="pre">sxng_locale</span></code>. To support <aclass="reference external"href="https://www.mediawiki.org/wiki/Writing_systems#LanguageConverter">LanguageConverter</a> this function rates a locale
(region) higher than a language (compare <aclass="reference internal"href="#searx.engines.wikipedia.wiki_lc_locale_variants"title="searx.engines.wikipedia.wiki_lc_locale_variants"><codeclass="xref py py-obj docutils literal notranslate"><spanclass="pre">wiki_lc_locale_variants</span></code></a>).</p>
<spanclass="sig-prename descclassname"><spanclass="pre">searx.engines.wikipedia.</span></span><spanclass="sig-name descname"><spanclass="pre">request</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">query</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">params</span></span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../../../_modules/searx/engines/wikipedia.html#request"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#searx.engines.wikipedia.request"title="Link to this definition">¶</a></dt>
<dd><p>Assemble a request (<aclass="reference external"href="https://en.wikipedia.org/api/rest_v1/#/Page%20content/get_page_summary__title_">wikipedia rest_v1 summary API</a>).</p>
<spanclass="sig-prename descclassname"><spanclass="pre">searx.engines.wikipedia.</span></span><spanclass="sig-name descname"><spanclass="pre">fetch_wikimedia_traits</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">engine_traits</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><aclass="reference internal"href="../enginelib.html#searx.enginelib.traits.EngineTraits"title="searx.enginelib.traits.EngineTraits"><spanclass="pre">EngineTraits</span></a></span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../../../_modules/searx/engines/wikipedia.html#fetch_wikimedia_traits"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#searx.engines.wikipedia.fetch_wikimedia_traits"title="Link to this definition">¶</a></dt>
<dd><p>Fetch languages from Wikipedia. Not all languages from the
<aclass="reference internal"href="#searx.engines.wikipedia.list_of_wikipedias"title="searx.engines.wikipedia.list_of_wikipedias"><codeclass="xref py py-obj docutils literal notranslate"><spanclass="pre">list_of_wikipedias</span></code></a> are supported by SearXNG locales, only those
known from <aclass="reference internal"href="../../../src/searx.locales.html#searx.locales.LOCALE_NAMES"title="searx.locales.LOCALE_NAMES"><codeclass="xref py py-obj docutils literal notranslate"><spanclass="pre">searx.locales.LOCALE_NAMES</span></code></a> or those with a minimal
<spanid="wikidata"></span><spanid="wikidata-engine"></span><h2><aclass="toc-backref"href="#id2"role="doc-backlink">Wikidata</a><aclass="headerlink"href="#module-searx.engines.wikidata"title="Link to this heading">¶</a></h2>
<p>This module implements the Wikidata engine. Some implementations are shared
from <aclass="reference internal"href="#wikipedia-engine"><spanclass="std std-ref">Wikipedia</span></a>.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">searx.engines.wikidata.</span></span><spanclass="sig-name descname"><spanclass="pre">display_type</span></span><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre">['infobox']</span></em><aclass="headerlink"href="#searx.engines.wikidata.display_type"title="Link to this definition">¶</a></dt>
<dd><p>A list of display types composed from <codeclass="docutils literal notranslate"><spanclass="pre">infobox</span></code> and <codeclass="docutils literal notranslate"><spanclass="pre">list</span></code>. The latter
one will add a hit to the result list. The first one will show a hit in the
info box. Both values can be set, or one of the two can be set.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">searx.engines.wikidata.</span></span><spanclass="sig-name descname"><spanclass="pre">get_thumbnail</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">img_src</span></span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../../../_modules/searx/engines/wikidata.html#get_thumbnail"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#searx.engines.wikidata.get_thumbnail"title="Link to this definition">¶</a></dt>
<dd><p>Get Thumbnail image from wikimedia commons</p>
<p>Images from commons.wikimedia.org are (HTTP) redirected to
upload.wikimedia.org. The redirected URL can be calculated by this
<spanclass="sig-prename descclassname"><spanclass="pre">searx.engines.wikidata.</span></span><spanclass="sig-name descname"><spanclass="pre">fetch_traits</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">engine_traits</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><aclass="reference internal"href="../enginelib.html#searx.enginelib.traits.EngineTraits"title="searx.enginelib.traits.EngineTraits"><spanclass="pre">EngineTraits</span></a></span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../../../_modules/searx/engines/wikidata.html#fetch_traits"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#searx.engines.wikidata.fetch_traits"title="Link to this definition">¶</a></dt>
<dd><p>Uses languages evaluated from <aclass="reference internal"href="#searx.engines.wikipedia.fetch_wikimedia_traits"title="searx.engines.wikipedia.fetch_wikimedia_traits"><codeclass="xref py py-obj docutils literal notranslate"><spanclass="pre">wikipedia.fetch_wikimedia_traits</span></code></a> and removes</p>
<ulclass="simple">
<li><p><codeclass="docutils literal notranslate"><spanclass="pre">traits.custom['wiki_netloc']</span></code>: wikidata does not have net-locations for
the languages and the list of all</p></li>
<li><p><codeclass="docutils literal notranslate"><spanclass="pre">traits.custom['WIKIPEDIA_LANGUAGES']</span></code>: not used in the wikipedia engine</p></li>