Repository Analysis

searxng/searxng

SearXNG is a free internet metasearch engine which aggregates results from various search services and databases. Users are neither tracked nor profiled.

6.8 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of searxng/searxng, a Python project with 33,858 GitHub stars. SynthScan v2.0 examined 133,550 lines of code across 610 source files, recording 715 pattern matches distributed across 17 syntactic categories. The overall adjusted score of 6.8 places this repository in the Low AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

6.8
Adjusted Score
6.8
Raw Score
100%
Time Factor
2026-07-13
Last Push
33.9K
Stars
Python
Language
133.6K
Lines of Code
610
Files
715
Pattern Hits
2026-07-14
Scan Date
0.05
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 0HIGH 29MEDIUM 50LOW 636

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 715 distinct pattern matches across 17 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Unused Imports269 hits · 269 pts
SeverityFileLineSnippetContext
LOWsearx/settings_defaults.py3CODE
LOWsearx/external_bang.py14CODE
LOWsearx/webutils.py14CODE
LOWsearx/webutils.py27CODE
LOWsearx/webutils.py28CODE
LOWsearx/webutils.py29CODE
LOWsearx/webutils.py30CODE
LOWsearx/__init__.py3CODE
LOWsearx/extended_types.py31CODE
LOWsearx/extended_types.py32CODE
LOWsearx/extended_types.py33CODE
LOWsearx/extended_types.py33CODE
LOWsearx/extended_types.py33CODE
LOWsearx/exceptions.py7CODE
LOWsearx/autocomplete.py28CODE
LOWsearx/brand.py7CODE
LOWsearx/metrics/__init__.py11CODE
LOWsearx/metrics/__init__.py11CODE
LOWsearx/answerers/__init__.py45CODE
LOWsearx/answerers/__init__.py45CODE
LOWsearx/favicons/__init__.py17CODE
LOWsearx/favicons/__init__.py17CODE
LOWsearx/plugins/tor_check.py19CODE
LOWsearx/plugins/tor_check.py20CODE
LOWsearx/plugins/tor_check.py21CODE
LOWsearx/plugins/infinite_scroll.py11CODE
LOWsearx/plugins/oa_doi_rewrite.py16CODE
LOWsearx/plugins/oa_doi_rewrite.py17CODE
LOWsearx/plugins/oa_doi_rewrite.py18CODE
LOWsearx/plugins/oa_doi_rewrite.py18CODE
LOWsearx/plugins/oa_doi_rewrite.py19CODE
LOWsearx/plugins/self_info.py15CODE
LOWsearx/plugins/self_info.py16CODE
LOWsearx/plugins/self_info.py17CODE
LOWsearx/plugins/time_zone.py15CODE
LOWsearx/plugins/time_zone.py16CODE
LOWsearx/plugins/time_zone.py17CODE
LOWsearx/plugins/__init__.py102CODE
LOWsearx/plugins/__init__.py102CODE
LOWsearx/plugins/__init__.py102CODE
LOWsearx/plugins/hostnames.py98CODE
LOWsearx/plugins/hostnames.py99CODE
LOWsearx/plugins/hostnames.py100CODE
LOWsearx/plugins/hostnames.py101CODE
LOWsearx/plugins/hostnames.py102CODE
LOWsearx/plugins/unit_converter.py22CODE
LOWsearx/plugins/unit_converter.py23CODE
LOWsearx/plugins/unit_converter.py24CODE
LOWsearx/plugins/_core.py20CODE
LOWsearx/plugins/_core.py21CODE
LOWsearx/plugins/_core.py21CODE
LOWsearx/plugins/_core.py21CODE
LOWsearx/plugins/_core.py22CODE
LOWsearx/plugins/calculator.py11CODE
LOWsearx/plugins/ahmia_filter.py14CODE
LOWsearx/plugins/ahmia_filter.py15CODE
LOWsearx/plugins/ahmia_filter.py16CODE
LOWsearx/plugins/ahmia_filter.py17CODE
LOWsearx/plugins/ahmia_filter.py18CODE
LOWsearx/plugins/hash_plugin.py14CODE
209 more matches not shown…
Hyper-Verbose Identifiers107 hits · 114 pts
SeverityFileLineSnippetContext
LOWsearxng_extra/update/update_engine_descriptions.py225def fetch_wikidata_descriptions():STRING
LOWsearxng_extra/update/update_engine_descriptions.py250def fetch_wikipedia_descriptions():STRING
LOWsearxng_extra/update/update_engine_descriptions.py293def fetch_website_description(engine_name: str, website: str):STRING
LOWsearxng_extra/update/update_engine_descriptions.py346def fetch_website_descriptions():STRING
LOWsearxng_extra/update/update_engine_descriptions.py354def get_engine_descriptions_filename():STRING
LOWsearxng_extra/update/update_firefox_version.py60def fetch_firefox_last_versions():CODE
LOWsearxng_extra/update/update_currencies.py92def wikidata_request_result_iterator(request):STRING
LOWsearx/external_bang.py30def get_bang_definition_and_ac(external_bangs_db: dict[str, t.Any], bang: str):CODE
LOWsearx/external_bang.py64def get_bang_definition_and_autocomplete(CODE
LOWsearx/external_urls.py56def get_earth_coordinates_url(latitude, longitude, osm_zoom, alternative='default'):CODE
LOWsearx/query.py311 def get_autocomplete_full_query(self, text):CODE
LOWsearx/utils.py479def get_string_replaces_function(replaces: dict[str, str]) -> Callable[[str], str]:CODE
LOWsearx/exceptions.py82 def _get_default_suspended_time(self) -> int:CODE
LOWsearx/webadapter.py16def deduplicate_engineref_list(engineref_list: List[EngineRef]) -> List[EngineRef]:CODE
LOWsearx/webadapter.py158def get_engineref_from_category_list( # pylint: disable=invalid-nameCODE
LOWsearx/webadapter.py221def get_search_query_from_webapp(CODE
LOWsearx/metrics/error_recorder.py110def get_request_exception_messages(CODE
LOWsearx/plugins/hostnames.py161 def _load_regular_expressions(self, settings_key) -> dict[re.Pattern, str] | set | None:CODE
LOWsearx/network/raise_for_httperror.py33def raise_for_cloudflare_captcha(resp: "SXNG_Response"):CODE
LOWsearx/network/client.py114def get_transport_for_socks_proxy(CODE
LOWsearx/network/network.py239 def extract_do_raise_for_httperror(kwargs: dict[str, t.Any]):CODE
LOWsearx/network/network.py318def check_network_configuration():CODE
LOWsearx/search/processors/abstract.py235 def extend_container_if_suspended(self, result_container: "ResultContainer") -> bool:CODE
LOWsearx/engines/elasticsearch.py116def _simple_query_string_query(query):CODE
LOWsearx/engines/command.py156def _get_results_from_process(res: EngineResults, cmd, pageno):CODE
LOWsearx/engines/swisscows.py98def caesar_shift_with_switch_case(s: str, offset: int = 13) -> str:CODE
LOWsearx/engines/swisscows.py131def generate_nonce_and_signature(base_path: str, args: dict[str, t.Any]) -> tuple[str, str]:CODE
LOWsearx/engines/__init__.py235def update_attributes_for_tor(engine: "Engine | types.ModuleType"):CODE
LOWsearx/engines/__init__.py241def is_missing_required_attributes(engine: "Engine | types.ModuleType"):CODE
LOWsearx/engines/luxxle.py120def _extract_url_from_redirect(url: str):CODE
LOWsearx/engines/sogou.py118def _parse_results_with_image(item, item_html):CODE
LOWsearx/engines/fireball.py62def _get_search_settings_cookie(params: 'OnlineParams') -> str:CODE
LOWsearx/engines/google_cse.py85def _get_start_and_end_date_str(time_range: str) -> tuple[str, str]:CODE
LOWsearx/engines/wikidata.py820def debug_explain_wikidata_query(query: str, method: str = "GET"):CODE
LOWsearx/engines/quark.py241def parse_life_show_general_image(data):CODE
LOWsearx/engines/quark.py367def parse_travel_dest_overview(data):CODE
LOWsearx/engines/quark.py375def parse_travel_ranking_list(data):CODE
LOWsearx/engines/youtube_noapi.py110def parse_first_page_response(response_text):CODE
LOWsearx/botdetection/ip_lists.py73def ip_is_subnet_of_member_in_list(CODE
LOWtests/unit/test_webadapter.py26 def test_with_incorrect_token(self):CODE
LOWtests/unit/test_webutils.py31 def test_highlight_content_none(self, content, query, expected):CODE
LOWtests/unit/test_webutils.py34 def test_highlight_content_same(self):CODE
LOWtests/unit/test_webutils.py77 def test_highlight_content_equal(self, query: str, content: str, expected: str):CODE
LOWtests/unit/test_utils.py53 def test_extract_text_allow_none(self):STRING
LOWtests/unit/test_utils.py56 def test_extract_text_error_none(self):STRING
LOWtests/unit/test_utils.py60 def test_extract_text_error_empty(self):STRING
LOWtests/unit/test_utils.py95 def test_html_to_text_with_a_style_span(self):STRING
LOWtests/unit/test_utils.py147 def test_eval_xpath_unregistered_function(self):CODE
LOWtests/unit/test_preferences.py33 def test_map_setting_invalid_default_value(self):CODE
LOWtests/unit/test_preferences.py37 def test_map_setting_invalid_choice(self):CODE
LOWtests/unit/test_preferences.py42 def test_map_setting_valid_default(self):CODE
LOWtests/unit/test_preferences.py46 def test_map_setting_valid_choice(self):CODE
LOWtests/unit/test_preferences.py54 def test_enum_setting_invalid_default_value(self):CODE
LOWtests/unit/test_preferences.py58 def test_enum_setting_invalid_choice(self):CODE
LOWtests/unit/test_preferences.py63 def test_enum_setting_valid_default(self):CODE
LOWtests/unit/test_preferences.py67 def test_enum_setting_valid_choice(self):CODE
LOWtests/unit/test_preferences.py75 def test_multiple_setting_invalid_default_value(self):CODE
LOWtests/unit/test_preferences.py79 def test_multiple_setting_invalid_choice(self):CODE
LOWtests/unit/test_preferences.py84 def test_multiple_setting_valid_default(self):CODE
LOWtests/unit/test_preferences.py88 def test_multiple_setting_valid_choice(self):CODE
47 more matches not shown…
Cross-File Repetition18 hits · 90 pts
SeverityFileLineSnippetContext
HIGHsearx/plugins/oa_doi_rewrite.py0returns bool ``true`` to use url unchanged (``false`` to ignore url). if url should be modified, the returned string is STRING
HIGHsearx/plugins/hostnames.py0returns bool ``true`` to use url unchanged (``false`` to ignore url). if url should be modified, the returned string is STRING
HIGHsearx/plugins/tracker_url_remover.py0returns bool ``true`` to use url unchanged (``false`` to ignore url). if url should be modified, the returned string is STRING
HIGHsearx/engines/wolframalpha_noapi.py0persistent (sqlite) key/value cache that deletes its values after ``expire`` seconds.STRING
HIGHsearx/engines/radio_browser.py0persistent (sqlite) key/value cache that deletes its values after ``expire`` seconds.STRING
HIGHsearx/engines/demo_offline.py0persistent (sqlite) key/value cache that deletes its values after ``expire`` seconds.STRING
HIGHsearx/engines/azure.py0persistent (sqlite) key/value cache that deletes its values after ``expire`` seconds.STRING
HIGHsearx/engines/soundcloud.py0persistent (sqlite) key/value cache that deletes its values after ``expire`` seconds.STRING
HIGHsearx/engines/semantic_scholar.py0persistent (sqlite) key/value cache that deletes its values after ``expire`` seconds.STRING
HIGHsearx/engines/startpage.py0persistent (sqlite) key/value cache that deletes its values after ``expire`` seconds.STRING
HIGHsearx/engines/duckduckgo.py0persistent (sqlite) key/value cache that deletes its values after ``expire`` seconds.STRING
HIGHsearx/engines/wikidata.py0persistent (sqlite) key/value cache that deletes its values after ``expire`` seconds.STRING
HIGHsearx/engines/astrophysics_data_system.py0initialization of the core_ engine, checks whether the :py:obj:`api_key` is set, otherwise the engine is inactive.STRING
HIGHsearx/engines/springer.py0initialization of the core_ engine, checks whether the :py:obj:`api_key` is set, otherwise the engine is inactive.STRING
HIGHsearx/engines/core.py0initialization of the core_ engine, checks whether the :py:obj:`api_key` is set, otherwise the engine is inactive.STRING
HIGHsearx/engines/google_images.py0`google max 50 pages`_ .. _google max 50 pages: https://github.com/searxng/searxng/issues/2982STRING
HIGHsearx/engines/google.py0`google max 50 pages`_ .. _google max 50 pages: https://github.com/searxng/searxng/issues/2982STRING
HIGHsearx/engines/google_scholar.py0`google max 50 pages`_ .. _google max 50 pages: https://github.com/searxng/searxng/issues/2982STRING
Deep Nesting79 hits · 79 pts
SeverityFileLineSnippetContext
LOWsearxng_extra/update/update_engine_descriptions.py225CODE
LOWsearxng_extra/update/update_engine_descriptions.py250CODE
LOWsearxng_extra/update/update_engine_descriptions.py358CODE
LOWsearx/settings_defaults.py142CODE
LOWsearx/babel_extract.py30CODE
LOWsearx/results.py272CODE
LOWsearx/results.py82CODE
LOWsearx/results.py154CODE
LOWsearx/results.py191CODE
LOWsearx/settings_loader.py127CODE
LOWsearx/preferences.py526CODE
LOWsearx/preferences.py540CODE
LOWsearx/utils.py595CODE
LOWsearx/utils.py698CODE
LOWsearx/webadapter.py117CODE
LOWsearx/webadapter.py172CODE
LOWsearx/metrics/models.py70CODE
LOWsearx/metrics/models.py85CODE
LOWsearx/favicons/cache.py381CODE
LOWsearx/plugins/unit_converter.py47CODE
LOWsearx/network/network.py336CODE
LOWsearx/network/network.py122CODE
LOWsearx/result_types/_base.py114CODE
LOWsearx/result_types/file.py72CODE
LOWsearx/search/__init__.py78CODE
LOWsearx/engines/wolframalpha_noapi.py77CODE
LOWsearx/engines/presearch.py248CODE
LOWsearx/engines/uxwing.py28CODE
LOWsearx/engines/tiger.py133CODE
LOWsearx/engines/ccc_media.py29CODE
LOWsearx/engines/tineye.py152CODE
LOWsearx/engines/springer.py120CODE
LOWsearx/engines/command.py156CODE
LOWsearx/engines/command.py196CODE
LOWsearx/engines/swisscows.py242CODE
LOWsearx/engines/brave.py418CODE
LOWsearx/engines/acfun.py36CODE
LOWsearx/engines/github_code.py162CODE
LOWsearx/engines/azure.py157CODE
LOWsearx/engines/adobe_stock.py148CODE
LOWsearx/engines/adobe_stock.py202CODE
LOWsearx/engines/bing.py115CODE
LOWsearx/engines/bing.py158CODE
LOWsearx/engines/yandex.py88CODE
LOWsearx/engines/google.py361CODE
LOWsearx/engines/doku.py47CODE
LOWsearx/engines/core.py89CODE
LOWsearx/engines/bing_news.py80CODE
LOWsearx/engines/startpagina.py52CODE
LOWsearx/engines/tusksearch.py100CODE
LOWsearx/engines/duckduckgo_definitions.py78CODE
LOWsearx/engines/dogpile.py51CODE
LOWsearx/engines/neosearch.py42CODE
LOWsearx/engines/openstreetmap.py211CODE
LOWsearx/engines/tokyotoshokan.py38CODE
LOWsearx/engines/privacywall.py177CODE
LOWsearx/engines/xpath.py278CODE
LOWsearx/engines/jisho.py34CODE
LOWsearx/engines/duckduckgo_extra.py187CODE
LOWsearx/engines/startpage.py402CODE
19 more matches not shown…
Decorative Section Separators25 hits · 75 pts
SeverityFileLineSnippetContext
MEDIUMsearx/compat.py8# ------------------------------COMMENT
MEDIUMsearx/engines/google.py68# ------------------------COMMENT
MEDIUMsearx/engines/duckduckgo_extra.py94 # ============COMMENT
MEDIUMsearx/engines/duckduckgo_extra.py108 # ================COMMENT
MEDIUMsearx/engines/duckduckgo.py376 # ============COMMENT
MEDIUMsearx/engines/duckduckgo.py396 # ===========================COMMENT
MEDIUMutils/lib_nvm.sh16# -------------------------COMMENT
MEDIUMutils/lib_nvm.sh24# -------------------------COMMENT
MEDIUMutils/lib_nvm.sh55# -----------------------COMMENT
MEDIUMutils/lib_nvm.sh89# --------------------------COMMENT
MEDIUMutils/lib.sh757# ----------COMMENT
MEDIUMutils/lib.sh852# ---------------COMMENT
MEDIUMutils/lib.sh1499# ------------------------COMMENT
MEDIUMutils/lib.sh1596# -----------COMMENT
MEDIUMutils/searxng.sh1011# ----------------------------------------------------------------------------COMMENT
MEDIUMutils/searxng.sh1013# ----------------------------------------------------------------------------COMMENT
MEDIUMutils/lib_govm.sh12# --------------------------------------COMMENT
MEDIUMutils/lib_govm.sh28# -----------------------COMMENT
MEDIUMutils/lib_govm.sh103# -----------------------------COMMENT
MEDIUMutils/templates/etc/uwsgi/apps-available/searxng.ini5# ----------COMMENT
MEDIUMutils/templates/etc/uwsgi/apps-available/searxng.ini58# --------------COMMENT
MEDIUMutils/templates/etc/uwsgi/apps-available/searxng.ini73# -----------------COMMENT
MEDIUMutils/templates/etc/uwsgi/apps-archlinux/searxng.ini5# ----------COMMENT
MEDIUMutils/templates/etc/uwsgi/apps-archlinux/searxng.ini55# --------------COMMENT
MEDIUMutils/templates/etc/uwsgi/apps-archlinux/searxng.ini70# -----------------COMMENT
Over-Commented Block52 hits · 50 pts
SeverityFileLineSnippetContext
LOWsearxng_extra/__init__.py1# SPDX-License-Identifier: AGPL-3.0-or-laterCOMMENT
LOWsearxng_extra/update/__init__.py1# SPDX-License-Identifier: AGPL-3.0-or-laterCOMMENT
LOWsearx/sqlitedb.py301 """COMMENT
LOWsearx/weather.py61COMMENT
LOWsearx/utils.py701 if js_obj_str == "":COMMENT
LOWsearx/utils.py721 # since JSON supports only double quote for stringCOMMENT
LOWsearx/utils.py741 # * the current part is a single quoteCOMMENT
LOWsearx/locales.py341 # language, then the percentage might be 100% (--> 100 people) but inCOMMENT
LOWsearx/settings.yml21 docs_url: https://docs.searxng.org/COMMENT
LOWsearx/settings.yml41 # Filter results. 0: None, 1: Moderate, 2: StrictCOMMENT
LOWsearx/settings.yml61 # - deCOMMENT
LOWsearx/settings.yml121valkey:COMMENT
LOWsearx/settings.yml141 # Default interface locale - leave blank to detect from browser information orCOMMENT
LOWsearx/settings.yml161# - languageCOMMENT
LOWsearx/settings.yml181 # max_request_timeout: 10.0COMMENT
LOWsearx/settings.yml201 #COMMENT
LOWsearx/settings.yml261# Configuration of the "Hostnames plugin":COMMENT
LOWsearx/settings.yml1401 # kagi_categ: searchCOMMENT
LOWsearx/settings.yml1961 shortcut: pvCOMMENT
LOWsearx/settings.yml1981 # image proxy of https://pixivfe.ducks.partyCOMMENT
LOWsearx/settings.yml2121 # timeout: 30.0COMMENT
LOWsearx/settings.yml2181 # engine: valkey_serverCOMMENT
LOWsearx/settings.yml2401 # - name: mediathekviewCOMMENT
LOWsearx/settings.yml2501 # shortcut: tubaCOMMENT
LOWsearx/settings.yml2801 # query_str: 'SELECT * from mytable WHERE fieldname=%(query)s'COMMENT
LOWsearx/settings.yml3361 # disabled: trueCOMMENT
LOWsearx/settings.yml3381COMMENT
LOWsearx/settings.yml3401# keys: ['filepath', 'code']COMMENT
LOWsearx/settings.yml3421# - name: findCOMMENT
LOWsearx/settings.yml3441# disabled: trueCOMMENT
LOWsearx/favicons/favicons.toml21# HOLD_TIME = 5184000 # 60 days / default: 30 daysCOMMENT
LOWsearx/engines/google.py181 # '!go 日 :zh-TW' --> https://zh.m.wiktionary.org/zh-hant/%E6%97%A5COMMENT
LOWsearx/engines/google.py201 # lr parameter:COMMENT
LOWsearx/engines/google.py221 # particular country.COMMENT
LOWsearx/engines/google.py241 # https://github.com/searxng/searxng/issues/2515#issuecomment-1606294635COMMENT
LOWsearx/engines/google.py321 # 'vet': '12ahUKEwik3ZbIzfn7AhXMX_EDHbUDBh0QxK8CegQIARAC..i',COMMENT
LOWsearx/engines/bing_news.py141 # bing for this market. Alternatively we use the the market code from HonkCOMMENT
LOWtests/unit/test_js_variable_to_python.py141 ("[0]", [0]),COMMENT
LOWtests/unit/test_js_variable_to_python.py261 # ("aaaaaaaaaaaaaaaa", []),COMMENT
LOWtests/unit/network/__init__.py1# SPDX-License-Identifier: AGPL-3.0-or-laterCOMMENT
LOWtests/unit/processors/__init__.py1# SPDX-License-Identifier: AGPL-3.0-or-laterCOMMENT
LOWtests/unit/engines/__init__.py1# SPDX-License-Identifier: AGPL-3.0-or-laterCOMMENT
LOWtests/robot/__init__.py1# SPDX-License-Identifier: AGPL-3.0-or-laterCOMMENT
LOWutils/lib_nvm.sh1#!/usr/bin/env bashCOMMENT
LOWutils/lib_sxng_weblate.sh121 pyenv.cmd wlc unlockCOMMENT
LOWutils/lib.sh401 echoCOMMENT
LOWutils/lib.sh1601 # usage:COMMENT
LOWutils/templates/etc/searxng/settings.yml21 # by ${SEARXNG_BASE_URL}.COMMENT
LOWutils/templates/etc/searxng/settings.yml41# - name: mediathekviewwebCOMMENT
LOWutils/templates/etc/uwsgi/apps-available/searxng.ini1# -*- mode: conf; coding: utf-8 -*-COMMENT
LOWutils/templates/etc/uwsgi/apps-available/searxng.ini41lazy-apps = trueCOMMENT
LOWutils/templates/etc/uwsgi/apps-archlinux/searxng.ini41plugin = pythonCOMMENT
Excessive Try-Catch Wrapping42 hits · 47 pts
SeverityFileLineSnippetContext
LOWsearxng_extra/update/update_engine_descriptions.py145 except Exception as e: # pylint: disable=broad-exceptSTRING
LOWsearxng_extra/update/update_engine_descriptions.py174 except Exception: # pylint: disable=broad-exceptSTRING
LOWsearx/settings_defaults.py168 except Exception as e: # pylint: disable=broad-exceptCODE
LOWsearx/webapp.py188 except Exception as e: # pylint: disable=broad-exceptCODE
LOWsearx/webapp.py476 except Exception as e: # pylint: disable=broad-exceptCODE
LOWsearx/webapp.py492 except Exception as e: # pylint: disable=broad-exceptCODE
LOWsearx/webapp.py658 except Exception as e: # pylint: disable=broad-exceptCODE
LOWsearx/sqlitedb.py87 except Exception: # pylint: disable=broad-exception-caughtCODE
MEDIUMsearx/sqlitedb.py77def __del__(self):CODE
LOWsearx/plugins/_core.py222 except Exception as exc: # pylint: disable=broad-exception-caughtCODE
LOWsearx/plugins/_core.py259 except Exception: # pylint: disable=broad-exceptCODE
LOWsearx/plugins/_core.py273 except Exception: # pylint: disable=broad-exceptCODE
LOWsearx/plugins/_core.py301 except Exception: # pylint: disable=broad-exceptCODE
LOWsearx/enginelib/traits.py219 except Exception as exc:CODE
LOWsearx/network/__init__.py132 except Exception as e: # pylint: disable=broad-exceptCODE
LOWsearx/network/__init__.py219 except Exception as e: # pylint: disable=broad-exceptCODE
LOWsearx/network/network.py325 except Exception: # pylint: disable=broad-exceptCODE
LOWsearx/result_types/_base.py133 except Exception as exc: # pylint: disable=broad-exception-caughtCODE
LOWsearx/result_types/image.py106 except Exception as exc: # pylint: disable=broad-exception-caughtCODE
LOWsearx/search/processors/abstract.py159 except Exception as e: # pylint: disable=broad-exceptCODE
LOWsearx/search/processors/online.py282 except Exception as e: # pylint: disable=broad-exceptCODE
LOWsearx/search/processors/offline.py30 except Exception as e: # pylint: disable=broad-exceptCODE
LOWsearx/engines/elasticsearch.py110 except Exception as e:CODE
LOWsearx/engines/elasticsearch.py135 except Exception as e:CODE
LOWsearx/engines/elasticsearch.py150 except Exception as e:CODE
LOWsearx/engines/radio_browser.py72 except Exception:CODE
LOWsearx/engines/360search_videos.py35 except Exception as e:CODE
MEDIUMsearx/engines/360search_videos.py32def response(resp):CODE
LOWsearx/engines/sogou_videos.py39 except Exception as e:CODE
MEDIUMsearx/engines/sogou_videos.py36def response(resp):CODE
LOWsearx/engines/chinaso.py111 except Exception as e:CODE
MEDIUMsearx/engines/chinaso.py108def response(resp):CODE
LOWsearx/engines/solr.py79 except Exception as e:CODE
LOWsearx/engines/iqiyi.py64 except Exception as e:CODE
MEDIUMsearx/engines/iqiyi.py61def response(resp):CODE
LOWsearx/engines/__init__.py283 except Exception as e: # pylint: disable=broad-exceptCODE
LOWsearx/engines/google.py417 except Exception as e: # pylint: disable=broad-exceptCODE
LOWsearx/engines/wikidata.py431 except Exception: # pylint: disable=broad-exceptCODE
LOWsearx/engines/wikidata.py840 except Exception:CODE
LOWsearx/engines/wikipedia.py172 except Exception: # pylint: disable=broad-exceptCODE
LOWtests/robot/__main__.py61 except Exception: # pylint: disable=broad-exceptCODE
MEDIUMtests/robot/__main__.py62 print('Error occurred: {0}'.format(traceback.format_exc()))CODE
Modern Structural Boilerplate41 hits · 40 pts
SeverityFileLineSnippetContext
LOWsearxng_extra/update/update_engine_descriptions.py96def update_description(engine_name: str, lang: str, description: str, source: str, replace: bool = True) -> None:STRING
LOWsearx/valkeydb.py30logger = logging.getLogger(__name__)CODE
LOWsearx/external_bang.py4__all__ = ["get_bang_url"]CODE
LOWsearx/weather.py5__all__ = [CODE
LOWsearx/cache.py8__all__ = ["ExpireCacheCfg", "ExpireCacheStats", "ExpireCache", "ExpireCacheSQLite"]CODE
LOWsearx/extended_types.py24__all__ = ["SXNG_Request", "sxng_request", "SXNG_Response"]CODE
LOWsearx/wikidata_units.py9__all__ = ["convert_from_si", "convert_to_si", "symbol_to_si"]CODE
LOWsearx/autocomplete.py31def update_kwargs(**kwargs) -> None: # type: ignoreCODE
LOWsearx/brand.py9__all__ = ["SettingsBrand"]CODE
LOWsearx/metrics/models.py12__all__ = ["Histogram", "HistogramStorage", "CounterStorage"]CODE
LOWsearx/metrics/__init__.py13__all__ = [CODE
LOWsearx/answerers/__init__.py42__all__ = ["AnswererInfo", "Answerer", "AnswerStorage"]CODE
LOWsearx/favicons/resolvers.py10__all__ = ["DEFAULT_RESOLVER_MAP", "allesedv", "duckduckgo", "google", "yandex"]CODE
LOWsearx/favicons/__init__.py12__all__ = ["init", "favicon_url", "favicon_proxy"]CODE
LOWsearx/plugins/__init__.py98__all__ = ["PluginInfo", "Plugin", "PluginStorage", "PluginCfg"]CODE
LOWsearx/plugins/_core.py4__all__ = ["PluginInfo", "Plugin", "PluginCfg", "PluginStorage"]CODE
LOWsearx/enginelib/__init__.py27__all__ = ["EngineCache", "Engine", "EngineAbout", "ENGINES_CACHE"]CODE
LOWsearx/enginelib/traits.py138 def set_traits(self, engine: "Engine | types.ModuleType") -> None:CODE
LOWsearx/enginelib/traits.py149 def _set_traits_v1(self, engine: "Engine") -> None:CODE
LOWsearx/infopage/__init__.py21__all__ = ['InfoPage', 'InfoPageSet']CODE
LOWsearx/network/__init__.py4__all__ = ["get_network", "initialize", "check_network_configuration", "raise_for_httperror"]CODE
LOWsearx/network/network.py5__all__ = ["get_network"]CODE
LOWsearx/result_types/_base.py19__all__ = ["Result"]CODE
LOWsearx/result_types/keyvalue.py17__all__ = ["KeyValue"]CODE
LOWsearx/result_types/answer.py32__all__ = ["AnswerSet", "Answer", "Translations", "WeatherAnswer"]CODE
LOWsearx/result_types/code.py17__all__ = ["Code"]CODE
LOWsearx/result_types/paper.py24__all__ = ["Paper"]CODE
LOWsearx/result_types/__init__.py15__all__ = [CODE
LOWsearx/result_types/file.py17__all__ = ["File"]CODE
LOWsearx/result_types/image.py15__all__ = ["Image", "ImageRef"]CODE
LOWsearx/search/__init__.py4__all__ = ["SearchWithPlugins"]CODE
LOWsearx/search/processors/online.py4__all__ = ["OnlineProcessor", "OnlineParams"]CODE
LOWsearx/search/processors/__init__.py4__all__ = [CODE
LOWsearx/engines/duckduckgo.py230def set_vqd(query: str | int, value: str, params: "OnlineParams") -> None:CODE
LOWsearx/data/tracker_patterns.py7__all__ = ["TrackerPatternsDB"]CODE
LOWsearx/data/__init__.py9__all__ = ["ahmia_blacklist_loader", "data_dir", "get_cache"]CODE
LOWsearx/data/currencies.py4__all__ = ["CurrenciesDB"]CODE
LOWsearx/botdetection/valkeydb.py7__all__ = ["set_valkey_client", "get_valkey_client"]CODE
LOWsearx/botdetection/config.py18__all__ = ['Config', 'UNSET', 'SchemaIssue', 'set_global_cfg', 'get_global_cfg']CODE
LOWsearx/botdetection/__init__.py9__all__ = ["init", "dump_request", "get_network", "too_many_requests", "ProxyFix"]CODE
LOWsearx/botdetection/_helpers.py6__all__ = ["log_error_only_once", "dump_request", "get_network", "logger", "too_many_requests"]CODE
Fake / Example Data34 hits · 36 pts
SeverityFileLineSnippetContext
LOWsearx/utils.py160 >>> html_to_text(r'<p><b>Lorem ipsum </i>dolor sit amet</p>')STRING
LOWsearx/utils.py160 >>> html_to_text(r'<p><b>Lorem ipsum </i>dolor sit amet</p>')STRING
LOWsearx/utils.py161 'Lorem ipsum </i>dolor sit amet</p>'STRING
LOWsearx/utils.py161 'Lorem ipsum </i>dolor sit amet</p>'STRING
LOWsearx/infopage/fa_IR/search-syntax.md63 - {{search('md5 lorem ipsum')}}CODE
LOWsearx/infopage/fa_IR/search-syntax.md64 - {{search('sha512 lorem ipsum')}}CODE
LOWsearx/infopage/it/search-syntax.md88 - {{search('md5 lorem ipsum')}}CODE
LOWsearx/infopage/it/search-syntax.md89 - {{search('sha512 lorem ipsum')}}CODE
LOWsearx/infopage/de/search-syntax.md92 - {{search('md5 lorem ipsum')}}CODE
LOWsearx/infopage/de/search-syntax.md93 - {{search('sha512 lorem ipsum')}}CODE
LOWsearx/infopage/fr/search-syntax.md96 - {{search('md5 lorem ipsum')}}CODE
LOWsearx/infopage/fr/search-syntax.md97 - {{search('sha512 lorem ipsum')}}CODE
LOWsearx/infopage/en/search-syntax.md83 - {{search('md5 lorem ipsum')}}CODE
LOWsearx/infopage/en/search-syntax.md84 - {{search('sha512 lorem ipsum')}}CODE
LOWsearx/result_types/__init__.py85 res.add( res.types.Answer(answer="lorem ipsum ..", url="https://example.org") )STRING
LOWsearx/engines/github_code.py153 params['headers']['Authorization'] = "placeholder"CODE
LOWtests/unit/test_utils.py88 (r'<p><b>Lorem ipsum </i>dolor sit amet</p>', 'Lorem ipsum </i>dolor sit amet</p>'),STRING
LOWtests/unit/test_utils.py88 (r'<p><b>Lorem ipsum </i>dolor sit amet</p>', 'Lorem ipsum </i>dolor sit amet</p>'),STRING
LOWtests/unit/test_results.py33 result = dict(suggestion="lorem ipsum ..")CODE
LOWtests/unit/test_results.py46 url="https://example.org", title="very long title, lorem ipsum", content="Lorem ipsum dolor sit amet .."CODE
LOWtests/unit/test_results.py46 url="https://example.org", title="very long title, lorem ipsum", content="Lorem ipsum dolor sit amet .."CODE
LOWtests/unit/test_results.py50 eng2 = dict(url="http://example.org", title=result.title, content="lorem ipsum", engine="duckduckgo")CODE
LOWtests/unit/test_plugins.py104 get_search_mock("lorem ipsum", user_plugins=["plg001", "plg002"]),CODE
LOWtests/unit/test_engine_github_code.py91 "fragment": "placeholder",CODE
LOWtests/unit/test_engine_github_code.py96 "placeholder",CODE
LOWtests/unit/test_plugin_self_info.py121 "USER-AgenT lorem ipsum",CODE
LOWtests/unit/network/test_network.py114 a_text = 'Lorem Ipsum'CODE
LOWtests/unit/network/test_network.py125 TEXT = 'Lorem Ipsum'CODE
LOWtests/unit/network/test_network.py201 TEXT = 'Lorem Ipsum'CODE
LOWutils/lib.sh151 # usage: RST_INDENT=1 rst_para "lorem ipsum ..."COMMENT
LOWdocs/dev/csv_table.txt1stub col row 1, column, "loremLorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumyCODE
LOWdocs/dev/csv_table.txt1stub col row 1, column, "loremLorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumyCODE
LOWdocs/dev/csv_table.txt5kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.", columnCODE
LOWdocs/dev/csv_table.txt5kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.", columnCODE
Cross-Language Confusion7 hits · 35 pts
SeverityFileLineSnippetContext
HIGHsearx/webapp.py857 """Render preferences page && save user preferences"""STRING
HIGHsearx/engines/yandex.py114 html_sample, '{"location":"/images/search/', 'advRsyaSearchColumn":null}}', default="fail"CODE
HIGHsearx/engines/yandex.py116 json_data = '{"location":"/images/search/' + content_between_tags + 'advRsyaSearchColumn":null}}'CODE
HIGHsearx/engines/seekninja.py54 sha256(nonce || solution).startswith("0" * leading)STRING
HIGHtests/unit/test_js_variable_to_python.py80 ("{'a': true, 'b': false, 'c': null}", {'a': True, 'b': False, 'c': None}),CODE
HIGHtests/unit/test_js_variable_to_python.py113 ('{"a": undefined}', {"a": None}), # chompjs returns {"a": "undefined"}CODE
HIGHtests/unit/test_js_variable_to_python.py114 ('[undefined, undefined]', [None, None]), # chompjs returns ["undefined", "undefined"]CODE
Docstring Block Structure3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHsearx/utils.py142Extract text from a HTML string Args: * html_str (str): string HTML Returns: * str: extracted STRING
HIGHsearx/utils.py183Extract text from a Markdown string Args: * markdown_str (str): string Markdown Returns: * strSTRING
HIGHsearx/utils.py250Normalize URL: add protocol, join URL with base_url, add trailing slash if there is no path Args: * url (stSTRING
Slop Phrases10 hits · 14 pts
SeverityFileLineSnippetContext
LOWsearx/webapp.py1034 # we make sure to close the response between searxng and the HTTP serverCOMMENT
MEDIUMsearx/settings.yml277# Alternatively you can use external files for configuring the "Hostnames plugin":COMMENT
MEDIUMsearx/engines/meilisearch.py23Here is a simple example to query a Meilisearch instance:STRING
MEDIUMsearx/engines/xpath.py55Here is a simple example of a XPath engine configured in the :ref:`settingsSTRING
MEDIUMsearx/engines/json_engine.py57Here is a simple example of a JSON engine configure in the :ref:`settingsSTRING
LOWutils/lib_sxng_weblate.sh119 ( # make sure to always unlock weblateCODE
LOWutils/lib_sxng_weblate.sh221 ( # make sure to always unlock weblateCODE
MEDIUMutils/lib.sh417 # replacements you can use::COMMENT
LOWutils/searxng.sh363 info_msg "Don't forget to install HTTP site."CODE
LOWutils/searxng.sh386 MSG="** Don't forget to remove your public site! (${SEARXNG_URL}) **" wait_key 10CODE
Self-Referential Comments9 hits · 13 pts
SeverityFileLineSnippetContext
MEDIUMsearx/babel_extract.py2"""This module implements the :origin:`searxng_msg <babel.cfg>` extractor toSTRING
MEDIUMsearx/extended_types.py2"""This module implements the type extensions applied by SearXNG.STRING
MEDIUMsearx/autocomplete.py2"""This module implements functions needed for the autocompleter."""STRING
MEDIUMsearx/search/processors/online.py119 """This method is called in a thread, and before the base method isSTRING
MEDIUMsearx/engines/zlibrary.py230 # Create a Locale object for the current localeCOMMENT
MEDIUMsearx/engines/wikidata.py2"""This module implements the Wikidata engine.STRING
MEDIUMsearx/engines/wikipedia.py2"""This module implements the Wikipedia engine. Some of this implementationsSTRING
MEDIUMsearx/botdetection/link_token.py94 """This function is called by a request to URL ``/client<token>.css``. IfSTRING
MEDIUMsearx/botdetection/link_token.py146 # This function is also called when limiter is inactive / no valkey DBCOMMENT
AI Slop Vocabulary9 hits · 13 pts
SeverityFileLineSnippetContext
MEDIUMsearx/preferences.py199 """Setting of a value that has to be translated in order to be storable"""STRING
MEDIUMsearx/preferences.py228 """Setting of a boolean value that has to be translated in order to be storable"""STRING
LOWsearx/favicons/resolvers.py33 # will just return a 200 regardless of the favicon existing or notCOMMENT
LOWsearx/favicons/proxy.py142 # if resolver is empty or not valid, just return HTTP 400.COMMENT
LOWsearx/favicons/proxy.py219 # if resolver is empty or not valid, just return nothing.COMMENT
LOWsearx/search/processors/abstract.py281 # search processor, just pass the value from user's choice unchanged toCOMMENT
MEDIUMsearx/engines/postgresql.py2"""PostgreSQL is a powerful and robust open source database. Before configuringSTRING
MEDIUMsearx/engines/core.py2"""CORE_ (COnnecting REpositories) provides a comprehensive bibliographicSTRING
MEDIUMsearx/engines/recoll.py130 # facilitate preview support for known mime typesCOMMENT
Redundant / Tautological Comments4 hits · 6 pts
SeverityFileLineSnippetContext
LOWutils/lib_sxng_container.sh23 # Check if podman or docker is installedCOMMENT
LOWutils/lib_sxng_container.sh76 # Check if it is a git repositoryCOMMENT
LOWcontainer/entrypoint.sh5# Check if it's a valid fileCOMMENT
LOWcontainer/entrypoint.sh20# Check if it's a valid directoryCOMMENT
AI Structural Patterns5 hits · 5 pts
SeverityFileLineSnippetContext
LOWsearx/webutils.py174CODE
LOWsearx/network/network.py68CODE
LOWsearx/search/models.py31CODE
LOWsearx/engines/genius.py71CODE
LOWtests/unit/test_plugins.py39CODE
Magic Placeholder Names1 hit · 2 pts
SeverityFileLineSnippetContext
HIGHsearx/engines/braveapi.py21 api_key: 'YOUR-API-KEY' # requiredSTRING