AI Slop Code RIsk Monitor

searxng/searxng

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

8.4 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for searxng/searxng, a Python project with 38,198 GitHub stars. SynthScan examined 142,511 lines of code across 623 source files, recording 801 pattern matches distributed across 18 syntactic categories. The legacy adjusted pattern signal is 8.4 (Moderate pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

8.4
Adjusted Signal
8.4
Raw Pattern Score
100%
Time Factor
2026-10-09
Last Push
38.2K
Stars
Python
Language
142.5K
Lines of Code
623
Files
801
Pattern Hits
2026-10-12
Scan Date
0.13
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 10.1/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 268 finding(s).

Hallucinated Dependency & Supply Chain Risk 12.6/100 · LOW

Are imports declared and package/API names verified? 354 finding(s).

Agent Over-Engineering Ratio 20.0/100 · LOW

Are wrappers, guards, and repeated structures necessary? 291 finding(s).

PR Review Velocity Impact 36.9/100 · MEDIUM

Which changes need focused human review? 801 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 0HIGH 81MEDIUM 52LOW 668

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 801 distinct pattern matches across 18 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Unused Imports313 hits · 313 pts
SeverityFileLineSnippetContext
LOWsearx/settings_defaults.py4CODE
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.py35CODE
LOWsearx/extended_types.py36CODE
LOWsearx/extended_types.py37CODE
LOWsearx/extended_types.py37CODE
LOWsearx/extended_types.py37CODE
LOWsearx/exceptions.py7CODE
LOWsearx/autocomplete.py28CODE
LOWsearx/brand.py8CODE
LOWsearx/metrics/__init__.py11CODE
LOWsearx/metrics/__init__.py11CODE
LOWsearx/answerers/__init__.py44CODE
LOWsearx/answerers/__init__.py44CODE
LOWsearx/favicons/__init__.py16CODE
LOWsearx/favicons/__init__.py16CODE
LOWsearx/plugins/tor_check.py20CODE
LOWsearx/plugins/tor_check.py21CODE
LOWsearx/plugins/tor_check.py22CODE
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__.py120CODE
LOWsearx/plugins/__init__.py120CODE
LOWsearx/plugins/__init__.py120CODE
LOWsearx/plugins/hostnames.py98CODE
LOWsearx/plugins/hostnames.py99CODE
LOWsearx/plugins/hostnames.py100CODE
LOWsearx/plugins/hostnames.py101CODE
LOWsearx/plugins/hostnames.py102CODE
LOWsearx/plugins/unit_converter.py23CODE
LOWsearx/plugins/unit_converter.py24CODE
LOWsearx/plugins/unit_converter.py25CODE
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
253 more matches not shown…
Empty Error Handlers53 hits · 265 pts
SeverityFileLineSnippetContext
HIGHsearx/sqlitedb.py87except Exception: # pylint: disable=broad-exception-caughtCODE
HIGHsearx/sqlitedb.py235except sqlite3.OperationalError:CODE
HIGHsearx/utils.py813except (ValueError, TypeError):CODE
HIGHsearx/autocomplete.py280except json.JSONDecodeError:CODE
HIGHsearx/autocomplete.py325except json.JSONDecodeError:CODE
HIGHsearx/favicons/proxy.py187except (RequestException, SearxEngineResponseException):CODE
HIGHsearx/network/client.py40except RequestException:CODE
HIGHsearx/network/__init__.py211except StreamConsumedError:CODE
HIGHsearx/network/network.py233except RequestException:CODE
HIGHsearx/result_types/code.py120except ClassNotFound:CODE
HIGHsearx/result_types/code.py116except ClassNotFound:CODE
HIGHsearx/search/models.py59except babel.core.UnknownLocaleError:CODE
HIGHsearx/engines/searchrockit.py60except parser.ParserError:CODE
HIGHsearx/engines/keenable.py54except ValueError:CODE
HIGHsearx/engines/postgresql.py28except ImportError:CODE
HIGHsearx/engines/postgresql.py99except psycopg2.ProgrammingError:CODE
HIGHsearx/engines/piratebay.py84except: # pylint: disable=bare-exceptCODE
HIGHsearx/engines/tiger.py156except parser.ParserError:CODE
HIGHsearx/engines/apple_maps.py40except: # pylint: disable=bare-exceptCODE
HIGHsearx/engines/wikicommons.py148except OverflowError:CODE
HIGHsearx/engines/pubmed.py136except ValueError:CODE
HIGHsearx/engines/chinaso.py130except (ValueError, TypeError):CODE
HIGHsearx/engines/acfun.py87except (ValueError, TypeError):CODE
HIGHsearx/engines/acfun.py95except (ValueError, TypeError):CODE
HIGHsearx/engines/iqiyi.py47except (ValueError, TypeError):CODE
HIGHsearx/engines/mongodb.py45except ImportError:CODE
HIGHsearx/engines/jina.py77except parser.ParserError:CODE
HIGHsearx/engines/solidtorrents.py70except ValueError:CODE
HIGHsearx/engines/naver.py118except (ValueError, TypeError, SearxEngineXPathException):CODE
HIGHsearx/engines/naver.py180except (ValueError, TypeError, SearxEngineXPathException):CODE
HIGHsearx/engines/naver.py207except (ValueError, TypeError, SearxEngineXPathException):CODE
HIGHsearx/engines/naver.py213except (ValueError, TypeError):CODE
HIGHsearx/engines/mysql_server.py34except ImportError:CODE
HIGHsearx/engines/core.py126except (ValueError, AttributeError):CODE
HIGHsearx/engines/startpagina.py69except parser.ParserError:CODE
HIGHsearx/engines/duckduckgo_definitions.py266except ValueError:CODE
HIGHsearx/engines/huggingface.py96except (ValueError, TypeError):CODE
HIGHsearx/engines/tokyotoshokan.py74except: # pylint: disable=bare-exceptCODE
HIGHsearx/engines/tokyotoshokan.py81except: # pylint: disable=bare-exceptCODE
HIGHsearx/engines/niconico.py65except ValueError:CODE
HIGHsearx/engines/niconico.py73except ValueError:CODE
HIGHsearx/engines/sogou.py131except (ValueError, TypeError):CODE
HIGHsearx/engines/sogou.py100except (ValueError, TypeError):CODE
HIGHsearx/engines/startpage.py362except ValueError:CODE
HIGHsearx/engines/startpage.py400except (TypeError, ValueError):CODE
HIGHsearx/engines/mariadb_server.py33except ImportError:CODE
HIGHsearx/engines/qwant.py169except ValueError:CODE
HIGHsearx/engines/quark.py321except (ValueError, TypeError):CODE
HIGHsearx/engines/json_engine.py390except: # pylint: disable=bare-exceptCODE
HIGHsearx/engines/ollama.py47except ValueError:CODE
HIGHsearx/engines/base.py107except: # pylint: disable=bare-exceptCODE
HIGHsearx/engines/youtube_noapi.py105except: # pylint: disable=bare-exceptCODE
HIGHsearx/engines/wikipedia.py171except Exception: # pylint: disable=broad-exceptCODE
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.py345def fetch_website_descriptions():STRING
LOWsearxng_extra/update/update_engine_descriptions.py353def get_engine_descriptions_filename():STRING
LOWsearxng_extra/update/update_firefox_version.py61def fetch_firefox_last_versions():CODE
LOWsearxng_extra/update/update_currencies.py93def 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.py55def 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.py109def 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/network.py243 def extract_do_raise_for_httperror(kwargs: dict[str, t.Any]):CODE
LOWsearx/network/network.py319def check_network_configuration():CODE
LOWsearx/search/processors/abstract.py239 def extend_container_if_suspended(self, result_container: "ResultContainer") -> bool:CODE
LOWsearx/engines/elasticsearch.py117def _simple_query_string_query(query):CODE
LOWsearx/engines/command.py156def _get_results_from_process(res: EngineResults, cmd, pageno):CODE
LOWsearx/engines/swisscows.py99def caesar_shift_with_switch_case(s: str, offset: int = 13) -> str:CODE
LOWsearx/engines/swisscows.py132def generate_nonce_and_signature(base_path: str, args: dict[str, t.Any]) -> tuple[str, str]:CODE
LOWsearx/engines/yandex.py76def _time_range_to_start_date(time_range: TimeRangeType) -> datetime:CODE
LOWsearx/engines/__init__.py236def update_attributes_for_tor(engine: "Engine | types.ModuleType"):CODE
LOWsearx/engines/__init__.py242def is_missing_required_attributes(engine: "Engine | types.ModuleType"):CODE
LOWsearx/engines/luxxle.py115def _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.py86def _get_start_and_end_date_str(time_range: str) -> tuple[str, str]:CODE
LOWsearx/engines/wikidata.py262def debug_explain_wikidata_query(query: str, method: str = "GET"):CODE
LOWsearx/engines/quark.py242def parse_life_show_general_image(data):CODE
LOWsearx/engines/quark.py368def parse_travel_dest_overview(data):CODE
LOWsearx/engines/quark.py376def parse_travel_ranking_list(data):CODE
LOWsearx/engines/youtube_noapi.py111def parse_first_page_response(response_text):CODE
LOWsearx/botdetection/ip_lists.py74def 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
LOW⚡tests/unit/test_utils.py52 def test_extract_text_allow_none(self):STRING
LOW⚡tests/unit/test_utils.py55 def test_extract_text_error_none(self):STRING
LOW⚡tests/unit/test_utils.py59 def test_extract_text_error_empty(self):STRING
LOW⚡tests/unit/test_utils.py94 def test_html_to_text_with_a_style_span(self):STRING
LOWtests/unit/test_utils.py145 def test_eval_xpath_unregistered_function(self):CODE
LOW⚡tests/unit/test_preferences.py32 def test_map_setting_invalid_default_value(self):CODE
LOW⚡tests/unit/test_preferences.py36 def test_map_setting_invalid_choice(self):CODE
LOW⚡tests/unit/test_preferences.py41 def test_map_setting_valid_default(self):CODE
LOW⚡tests/unit/test_preferences.py45 def test_map_setting_valid_choice(self):CODE
LOW⚡tests/unit/test_preferences.py53 def test_enum_setting_invalid_default_value(self):CODE
LOW⚡tests/unit/test_preferences.py57 def test_enum_setting_invalid_choice(self):CODE
LOW⚡tests/unit/test_preferences.py62 def test_enum_setting_valid_default(self):CODE
LOW⚡tests/unit/test_preferences.py66 def test_enum_setting_valid_choice(self):CODE
LOW⚡tests/unit/test_preferences.py74 def test_multiple_setting_invalid_default_value(self):CODE
LOW⚡tests/unit/test_preferences.py78 def test_multiple_setting_invalid_choice(self):CODE
LOW⚡tests/unit/test_preferences.py83 def test_multiple_setting_valid_default(self):CODE
LOW⚡tests/unit/test_preferences.py87 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/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_videos.py0google supports up to 50 pages of results, see the `google max_page discussion`_. .. _google max_page discussion: https:STRING
HIGHsearx/engines/google_images.py0google supports up to 50 pages of results, see the `google max_page discussion`_. .. _google max_page discussion: https:STRING
HIGHsearx/engines/google.py0google supports up to 50 pages of results, see the `google max_page discussion`_. .. _google max_page discussion: https:STRING
HIGHsearx/engines/google_news.py0google supports up to 50 pages of results, see the `google max_page discussion`_. .. _google max_page discussion: https:STRING
Decorative Section Separators25 hits · 75 pts
SeverityFileLineSnippetContext
MEDIUMsearx/compat.py7# ------------------------------COMMENT
MEDIUMsearx/engines/google.py82# ------------------------COMMENT
MEDIUMsearx/engines/duckduckgo_extra.py95 # ============COMMENT
MEDIUMsearx/engines/duckduckgo_extra.py110 # ================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
Deep Nesting71 hits · 71 pts
SeverityFileLineSnippetContext
LOWsearxng_extra/update/update_engine_descriptions.py225CODE
LOWsearxng_extra/update/update_engine_descriptions.py250CODE
LOWsearxng_extra/update/update_engine_descriptions.py357CODE
LOWsearx/settings_defaults.py143CODE
LOWsearx/babel_extract.py30CODE
LOWsearx/results.py274CODE
LOWsearx/results.py82CODE
LOWsearx/results.py154CODE
LOWsearx/results.py193CODE
LOWsearx/settings_loader.py127CODE
LOWsearx/preferences.py526CODE
LOWsearx/preferences.py542CODE
LOWsearx/wikidata_properties.py316CODE
LOWsearx/utils.py595CODE
LOWsearx/utils.py709CODE
LOWsearx/webadapter.py117CODE
LOWsearx/webadapter.py172CODE
LOWsearx/metrics/models.py69CODE
LOWsearx/metrics/models.py84CODE
LOWsearx/favicons/cache.py381CODE
LOWsearx/plugins/unit_converter.py48CODE
LOWsearx/network/network.py337CODE
LOWsearx/network/network.py124CODE
LOWsearx/result_types/_base.py128CODE
LOWsearx/result_types/file.py73CODE
LOWsearx/search/__init__.py78CODE
LOWsearx/engines/wolframalpha_noapi.py77CODE
LOWsearx/engines/uxwing.py25CODE
LOWsearx/engines/tiger.py130CODE
LOWsearx/engines/ccc_media.py34CODE
LOWsearx/engines/tineye.py152CODE
LOWsearx/engines/springer.py120CODE
LOWsearx/engines/command.py156CODE
LOWsearx/engines/command.py196CODE
LOWsearx/engines/swisscows.py239CODE
LOWsearx/engines/acfun.py36CODE
LOWsearx/engines/github_code.py161CODE
LOWsearx/engines/azure.py158CODE
LOWsearx/engines/bing.py93CODE
LOWsearx/engines/bing.py136CODE
LOWsearx/engines/doku.py47CODE
LOWsearx/engines/core.py89CODE
LOWsearx/engines/bing_news.py74CODE
LOWsearx/engines/startpagina.py51CODE
LOWsearx/engines/duckduckgo_definitions.py79CODE
LOWsearx/engines/dogpile.py80CODE
LOWsearx/engines/neosearch.py59CODE
LOWsearx/engines/openstreetmap.py212CODE
LOWsearx/engines/tokyotoshokan.py37CODE
LOWsearx/engines/privacywall.py174CODE
LOWsearx/engines/xpath.py277CODE
LOWsearx/engines/jisho.py34CODE
LOWsearx/engines/duckduckgo_extra.py184CODE
LOWsearx/engines/startpage.py450CODE
LOWsearx/engines/fireball.py117CODE
LOWsearx/engines/yacy.py153CODE
LOWsearx/engines/qwant.py154CODE
LOWsearx/engines/wikidata.py158CODE
LOWsearx/engines/quark.py84CODE
LOWsearx/engines/json_engine.py289CODE
11 more matches not shown…
Over-Commented Block48 hits · 47 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.py721 # ['{ a:', '"', 'f\\', '"', 'irst', '"', ', c:', "'", 'sec', '"', 'ond', "'", '}']COMMENT
LOWsearx/utils.py761 # replace simple quote by double quoteCOMMENT
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.yml121 # URL to connect valkey database. Is overwritten by ${SEARXNG_VALKEY_URL}.COMMENT
LOWsearx/settings.yml141 # use codes from the 'locales' config sectionCOMMENT
LOWsearx/settings.yml161# - autocompleteCOMMENT
LOWsearx/settings.yml181 # suffix of searxng_useragent, could contain information like an email addressCOMMENT
LOWsearx/settings.yml201 # Extra seconds to add in order to account for the time taken by the proxyCOMMENT
LOWsearx/settings.yml261# '(www\.)?twitter\.com$': 'nitter.example.com'COMMENT
LOWsearx/settings.yml1401 # - name: kagiCOMMENT
LOWsearx/settings.yml1721COMMENT
LOWsearx/settings.yml2001 # image proxy of https://www.pixiv.picsCOMMENT
LOWsearx/settings.yml2101 disabled: trueCOMMENT
LOWsearx/settings.yml2161 # Required dependency: valkeyCOMMENT
LOWsearx/settings.yml2401 # Query to test: "!mediathekview concert"COMMENT
LOWsearx/settings.yml2501 # - name: tubearchivistCOMMENT
LOWsearx/settings.yml2801 timeout: 5.0COMMENT
LOWsearx/settings.yml3421# - name: ubuntuwikiCOMMENT
LOWsearx/settings.yml3441# running a public instance. Do not expose any sensitiveCOMMENT
LOWsearx/settings.yml3461# query_type: pathCOMMENT
LOWsearx/settings.yml3481# keys: ['line']COMMENT
LOWsearx/favicons/favicons.toml21# db_url = "/var/cache/searxng/faviconcache.db" # default: "/tmp/faviconcache.db"COMMENT
LOWsearx/engines/google.py161 # '!go 日 :zh-CN' --> https://zh.m.wikipedia.org/zh/%E6%97%A5COMMENT
LOWsearx/engines/google.py181 # documents written in a particular language.COMMENT
LOWsearx/engines/google.py201COMMENT
LOWsearx/engines/google.py221 # https://github.com/searxng/searxng/issues/2515#issuecomment-1606294635COMMENT
LOWtests/unit/test_js_variable_to_python.py141 [COMMENT
LOWtests/unit/test_js_variable_to_python.py161 # ("[-0x12]", [-18]),COMMENT
LOWtests/unit/test_js_variable_to_python.py261 # ("", []),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 Wrapping41 hits · 46 pts
SeverityFileLineSnippetContext
LOWsearxng_extra/update/update_engine_descriptions.py146 except Exception as e: # pylint: disable=broad-exceptSTRING
LOWsearxng_extra/update/update_engine_descriptions.py175 except Exception: # pylint: disable=broad-exceptSTRING
LOWsearx/settings_defaults.py169 except Exception as e: # pylint: disable=broad-exceptCODE
LOWsearx/webapp.py188 except Exception as e: # pylint: disable=broad-exceptCODE
LOWsearx/webapp.py500 except Exception as e: # pylint: disable=broad-exceptCODE
LOWsearx/webapp.py516 except Exception as e: # pylint: disable=broad-exceptCODE
LOWsearx/webapp.py682 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/wikidata_properties.py333 except Exception: # pylint: disable=broad-exceptCODE
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__.py130 except Exception as e: # pylint: disable=broad-exceptCODE
LOWsearx/network/__init__.py217 except Exception as e: # pylint: disable=broad-exceptCODE
LOWsearx/network/network.py326 except Exception: # pylint: disable=broad-exceptCODE
LOWsearx/result_types/_base.py147 except Exception as exc: # pylint: disable=broad-exception-caughtCODE
LOWsearx/result_types/image.py107 except Exception as exc: # pylint: disable=broad-exception-caughtCODE
LOWsearx/search/processors/abstract.py163 except Exception as e: # pylint: disable=broad-exceptCODE
LOWsearx/search/processors/online.py286 except Exception as e: # pylint: disable=broad-exceptCODE
LOWsearx/search/processors/offline.py30 except Exception as e: # pylint: disable=broad-exceptCODE
LOWsearx/engines/elasticsearch.py111 except Exception as e:CODE
LOWsearx/engines/elasticsearch.py136 except Exception as e:CODE
LOWsearx/engines/elasticsearch.py151 except Exception as e:CODE
LOWsearx/engines/radio_browser.py72 except Exception:CODE
LOWsearx/engines/360search_videos.py36 except Exception as e:CODE
MEDIUMsearx/engines/360search_videos.py33def response(resp) -> EngineResults: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.py78 except Exception as e:CODE
LOWsearx/engines/iqiyi.py64 except Exception as e:CODE
MEDIUMsearx/engines/iqiyi.py61def response(resp):CODE
LOWsearx/engines/__init__.py284 except Exception as e: # pylint: disable=broad-exceptCODE
LOWsearx/engines/google.py376 except Exception as e: # pylint: disable=broad-exceptCODE
LOWsearx/engines/wikipedia.py171 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 Boilerplate42 hits · 42 pts
SeverityFileLineSnippetContext
LOWsearxng_extra/update/update_engine_descriptions.py97def 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.py6__all__ = [CODE
LOWsearx/cache.py8__all__ = ["ExpireCacheCfg", "ExpireCacheStats", "ExpireCache", "ExpireCacheSQLite"]CODE
LOWsearx/extended_types.py25__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.py10__all__ = ["SettingsBrand"]CODE
LOWsearx/metrics/models.py11__all__ = ["Histogram", "HistogramStorage", "CounterStorage"]CODE
LOWsearx/metrics/__init__.py13__all__ = [CODE
LOWsearx/answerers/__init__.py41__all__ = ["AnswererInfo", "Answerer", "AnswerStorage"]CODE
LOWsearx/favicons/resolvers.py9__all__ = ["DEFAULT_RESOLVER_MAP", "allesedv", "duckduckgo", "google", "kagi", "yandex"]CODE
LOWsearx/favicons/__init__.py11__all__ = ["init", "favicon_url", "favicon_proxy"]CODE
LOWsearx/plugins/__init__.py116__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.py18__all__ = ["KeyValue"]CODE
LOWsearx/result_types/answer.py33__all__ = ["AnswerSet", "Answer", "Translations", "WeatherAnswer"]CODE
LOWsearx/result_types/code.py18__all__ = ["Code"]CODE
LOWsearx/result_types/paper.py25__all__ = ["Paper"]CODE
LOWsearx/result_types/__init__.py16__all__ = [CODE
LOWsearx/result_types/file.py18__all__ = ["File"]CODE
LOWsearx/result_types/video.py12__all__ = ["Video"]CODE
LOWsearx/result_types/image.py16__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.py8__all__ = ["TrackerPatternsDB"]CODE
LOWsearx/data/__init__.py10__all__ = ["ahmia_blacklist_loader", "data_dir", "get_cache"]CODE
LOWsearx/data/currencies.py4__all__ = ["CurrenciesDB"]CODE
LOWsearx/botdetection/valkeydb.py6__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__.py8__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
LOW⚡searx/utils.py160 >>> html_to_text(r'<p><b>Lorem ipsum </i>dolor sit amet</p>')STRING
LOW⚡searx/utils.py160 >>> html_to_text(r'<p><b>Lorem ipsum </i>dolor sit amet</p>')STRING
LOW⚡searx/utils.py161 'Lorem ipsum </i>dolor sit amet</p>'STRING
LOW⚡searx/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__.py90 res.add( res.types.Answer(answer="lorem ipsum ..", url="https://example.org") )STRING
LOWsearx/engines/github_code.py152 params['headers']['Authorization'] = "placeholder"CODE
LOW⚡tests/unit/test_utils.py87 (r'<p><b>Lorem ipsum </i>dolor sit amet</p>', 'Lorem ipsum </i>dolor sit amet</p>'),STRING
LOW⚡tests/unit/test_utils.py87 (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
LOW⚡tests/unit/test_results.py46 url="https://example.org", title="very long title, lorem ipsum", content="Lorem ipsum dolor sit amet .."CODE
LOW⚡tests/unit/test_results.py46 url="https://example.org", title="very long title, lorem ipsum", content="Lorem ipsum dolor sit amet .."CODE
LOW⚡tests/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.py123 a_text = 'Lorem Ipsum'CODE
LOWtests/unit/network/test_network.py134 TEXT = 'Lorem Ipsum'CODE
LOWtests/unit/network/test_network.py210 TEXT = 'Lorem Ipsum'CODE
LOWutils/lib.sh151 # usage: RST_INDENT=1 rst_para "lorem ipsum ..."COMMENT
LOW⚡docs/dev/csv_table.txt1stub col row 1, column, "loremLorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumyCODE
LOW⚡docs/dev/csv_table.txt1stub col row 1, column, "loremLorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumyCODE
LOW⚡docs/dev/csv_table.txt5kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.", columnCODE
LOW⚡docs/dev/csv_table.txt5kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.", columnCODE
Cross-Language Confusion6 hits · 32 pts
SeverityFileLineSnippetContext
HIGHsearx/webapp.py883 """Render preferences page && save user preferences"""STRING
HIGHsearx/engines/brave.py245 # form: null,COMMENT
HIGHsearx/engines/seekninja.py54 sha256(nonce || solution).startswith("0" * leading)STRING
HIGHtests/unit/test_js_variable_to_python.py81 ("{'a': true, 'b': false, 'c': null}", {'a': True, 'b': False, 'c': None}),CODE
HIGH⚡tests/unit/test_js_variable_to_python.py114 ('{"a": undefined}', {"a": None}), # chompjs returns {"a": "undefined"}CODE
HIGH⚡tests/unit/test_js_variable_to_python.py115 ('[undefined, undefined]', [None, None]), # chompjs returns ["undefined", "undefined"]CODE
AI Slop Vocabulary11 hits · 17 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.py32 # will just return a 200 regardless of the favicon existing or notCOMMENT
LOWsearx/favicons/proxy.py141 # if resolver is empty or not valid, just return HTTP 400.COMMENT
LOWsearx/favicons/proxy.py218 # if resolver is empty or not valid, just return nothing.COMMENT
LOWsearx/search/processors/abstract.py285 # 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/brave.py289 # video results utilize same schema as video search -> re-use _parse_video_resultCOMMENT
MEDIUMsearx/engines/core.py2"""CORE_ (COnnecting REpositories) provides a comprehensive bibliographicSTRING
MEDIUMsearx/engines/europepmc.py2"""`Europe PMC`_ provides comprehensive access to life sciences literature fromSTRING
MEDIUMsearx/engines/recoll.py131 # facilitate preview support for known mime typesCOMMENT
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.py1061 # we make sure to close the response between searxng and the HTTP serverCOMMENT
MEDIUMsearx/settings.yml269# 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.py127 """This method is called in a thread, and before the base method isSTRING
MEDIUMsearx/engines/zlibrary.py229 # 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
Redundant / Tautological Comments4 hits · 6 pts
SeverityFileLineSnippetContext
LOWsearx/cache.py466 # Check if value is expired. It's possible that it's expired but has notCOMMENT
LOWutils/lib_sxng_container.sh80 # Check if podman or docker is installedCOMMENT
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.py173CODE
LOWsearx/network/network.py72CODE
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