Command-line program to download image galleries and collections from several image hosting sites
This report presents the forensic synthetic code analysis of mikf/gallery-dl, a Python project with 18,849 GitHub stars. SynthScan v2.0 examined 139,051 lines of code across 738 source files, recording 705 pattern matches distributed across 15 syntactic categories. The overall adjusted score of 5.9 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).
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.
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.
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.
The scanner identified 705 distinct pattern matches across 15 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/test_results.py | 357 | except Exception as exc: | CODE |
| LOW | test/test_results.py | 379 | except Exception: | CODE |
| LOW | test/test_results.py | 401 | except Exception as exc: | CODE |
| LOW | test/test_results.py | 594 | except Exception as exc: | CODE |
| MEDIUM | test/test_results.py | 585 | def load_test_config(): | CODE |
| LOW | test/test_ytdl.py | 276 | except Exception: | CODE |
| MEDIUM | test/test_ytdl.py | 23 | def setUpClass(cls): | CODE |
| LOW | scripts/run_tests.py | 37 | except Exception as exc: | CODE |
| LOW | scripts/util.py | 54 | except Exception: | CODE |
| LOW | scripts/supportedsites.py | 616 | except Exception: | CODE |
| LOW | scripts/docs_compare.py | 19 | except Exception as exc: | CODE |
| LOW | scripts/rm.py | 24 | except Exception: | CODE |
| MEDIUM | scripts/rm.py | 21 | def remove_file(args, path): | CODE |
| LOW | scripts/init.py | 61 | except Exception as exc: | STRING |
| LOW | scripts/hook-gallery_dl.py | 29 | except Exception: | CODE |
| LOW | scripts/pyprint.py | 64 | except Exception: | CODE |
| MEDIUM | gallery_dl/cookies.py | 311 | def _safari_cookies_database(): | CODE |
| MEDIUM | gallery_dl/cookies.py | 778 | def _get_gnome_keyring_password(browser_keyring_name): | CODE |
| MEDIUM | gallery_dl/cookies.py | 934 | def __enter__(self): | CODE |
| LOW | gallery_dl/cookies.py | 151 | except Exception as exc: | CODE |
| LOW | gallery_dl/cookies.py | 724 | except Exception as exc: | CODE |
| LOW | gallery_dl/cookies.py | 772 | except Exception as exc: | CODE |
| LOW | gallery_dl/cookies.py | 841 | except Exception as exc: | CODE |
| LOW | gallery_dl/cookies.py | 945 | except Exception as exc: | CODE |
| LOW | gallery_dl/formatter.py | 44 | except Exception as exc: | CODE |
| LOW | gallery_dl/formatter.py | 163 | except Exception: | CODE |
| LOW | gallery_dl/formatter.py | 173 | except Exception: | CODE |
| LOW | gallery_dl/formatter.py | 191 | except Exception: | CODE |
| MEDIUM | gallery_dl/formatter.py | 158 | def wrap(_): | CODE |
| MEDIUM | gallery_dl/formatter.py | 168 | def wrap(kwdict): | CODE |
| LOW | gallery_dl/config.py | 150 | except Exception as exc: | STRING |
| LOW | gallery_dl/config.py | 176 | except Exception as exc: | STRING |
| LOW | gallery_dl/config.py | 230 | except Exception as exc: | CODE |
| LOW | gallery_dl/config.py | 260 | except Exception: | CODE |
| LOW | gallery_dl/config.py | 273 | except Exception: | CODE |
| LOW | gallery_dl/config.py | 291 | except Exception: | CODE |
| LOW | gallery_dl/config.py | 303 | except Exception: | CODE |
| LOW | gallery_dl/config.py | 328 | except Exception: | CODE |
| LOW | gallery_dl/config.py | 359 | except Exception: | CODE |
| LOW | gallery_dl/option.py | 993 | except Exception: | CODE |
| LOW | gallery_dl/util.py | 233 | except Exception: | CODE |
| LOW | gallery_dl/util.py | 408 | except Exception: | CODE |
| LOW⚡ | gallery_dl/util.py | 823 | except Exception: | CODE |
| LOW | gallery_dl/util.py | 1040 | except Exception as exc: | CODE |
| MEDIUM | gallery_dl/util.py | 363 | def git_head(): | CODE |
| MEDIUM | gallery_dl/util.py | 548 | def __getitem__(self, key, modules=sys.modules): | CODE |
| MEDIUM | gallery_dl/util.py | 1035 | def _pred(_, kwdict): | CODE |
| LOW | gallery_dl/dt.py | 58 | except Exception: | CODE |
| LOW | gallery_dl/dt.py | 74 | except Exception: | CODE |
| LOW | gallery_dl/dt.py | 86 | except Exception: | CODE |
| LOW | gallery_dl/dt.py | 101 | except Exception: | CODE |
| LOW | gallery_dl/dt.py | 114 | except Exception: | CODE |
| LOW | gallery_dl/aes.py | 17 | except Exception as exc: | CODE |
| LOW | gallery_dl/job.py | 187 | except Exception as exc: | CODE |
| LOW | gallery_dl/job.py | 366 | except Exception as exc: | CODE |
| LOW | gallery_dl/job.py | 731 | except Exception as exc: | CODE |
| LOW | gallery_dl/job.py | 837 | except Exception as exc: | CODE |
| LOW | gallery_dl/job.py | 1094 | except Exception as exc: | CODE |
| LOW | gallery_dl/job.py | 1113 | except Exception: | CODE |
| LOW | gallery_dl/cache.py | 32 | except Exception as exc: | CODE |
| 269 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/test_results.py | 620 | CODE | |
| LOW | test/test_results.py | 113 | CODE | |
| LOW | test/test_results.py | 332 | CODE | |
| LOW | scripts/generate_test_result.py | 53 | CODE | |
| LOW | scripts/generate_test_result.py | 112 | CODE | |
| LOW | scripts/generate_test_result.py | 196 | CODE | |
| LOW | scripts/supportedsites.py | 676 | CODE | |
| LOW | scripts/man.py | 111 | CODE | |
| LOW | scripts/man.py | 229 | CODE | |
| LOW | scripts/rm.py | 28 | CODE | |
| LOW | scripts/rm.py | 47 | CODE | |
| LOW | scripts/requirements.py | 20 | CODE | |
| LOW | scripts/requirements.py | 106 | CODE | |
| LOW | scripts/requirements.py | 133 | CODE | |
| LOW | scripts/requirements.py | 157 | CODE | |
| LOW | scripts/init.py | 32 | CODE | |
| LOW | gallery_dl/update.py | 162 | CODE | |
| LOW | gallery_dl/cookies.py | 127 | CODE | |
| LOW | gallery_dl/cookies.py | 216 | CODE | |
| LOW | gallery_dl/cookies.py | 356 | CODE | |
| LOW | gallery_dl/cookies.py | 1002 | CODE | |
| LOW | gallery_dl/cookies.py | 1113 | CODE | |
| LOW | gallery_dl/formatter.py | 296 | CODE | |
| LOW | gallery_dl/formatter.py | 156 | CODE | |
| LOW | gallery_dl/config.py | 33 | CODE | |
| LOW | gallery_dl/config.py | 216 | CODE | |
| LOW | gallery_dl/config.py | 278 | CODE | |
| LOW | gallery_dl/config.py | 310 | CODE | |
| LOW | gallery_dl/option.py | 95 | CODE | |
| LOW | gallery_dl/ytdl.py | 81 | CODE | |
| LOW | gallery_dl/util.py | 337 | CODE | |
| LOW | gallery_dl/util.py | 980 | CODE | |
| LOW | gallery_dl/util.py | 1077 | CODE | |
| LOW | gallery_dl/util.py | 1208 | CODE | |
| LOW | gallery_dl/aes.py | 557 | CODE | |
| LOW | gallery_dl/job.py | 210 | CODE | |
| LOW | gallery_dl/job.py | 339 | CODE | |
| LOW | gallery_dl/job.py | 418 | CODE | |
| LOW | gallery_dl/job.py | 530 | CODE | |
| LOW | gallery_dl/job.py | 620 | CODE | |
| LOW | gallery_dl/job.py | 695 | CODE | |
| LOW | gallery_dl/job.py | 948 | CODE | |
| LOW | gallery_dl/actions.py | 36 | CODE | |
| LOW | gallery_dl/__init__.py | 22 | CODE | |
| LOW | gallery_dl/__init__.py | 485 | CODE | |
| LOW | gallery_dl/text.py | 321 | CODE | |
| LOW | gallery_dl/text.py | 342 | CODE | |
| LOW | gallery_dl/path.py | 28 | CODE | |
| LOW | gallery_dl/path.py | 258 | CODE | |
| LOW | gallery_dl/path.py | 273 | CODE | |
| LOW | gallery_dl/path.py | 318 | CODE | |
| LOW | gallery_dl/path.py | 350 | CODE | |
| LOW | gallery_dl/path.py | 385 | CODE | |
| LOW | gallery_dl/output.py | 352 | CODE | |
| LOW | gallery_dl/output.py | 193 | CODE | |
| LOW | gallery_dl/postprocessor/metadata.py | 20 | CODE | |
| LOW | gallery_dl/postprocessor/ugoira.py | 30 | CODE | |
| LOW | gallery_dl/postprocessor/ugoira.py | 138 | CODE | |
| LOW | gallery_dl/postprocessor/ugoira.py | 168 | CODE | |
| LOW | gallery_dl/postprocessor/ugoira.py | 246 | CODE | |
| 139 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/test_postprocessor.py | 615 | def test_metadata_json_options(self): | STRING |
| LOW | test/test_postprocessor.py | 684 | def test_metadata_tags_tagstring(self): | STRING |
| LOW | test/test_postprocessor.py | 693 | def test_metadata_tags_list_of_dict(self): | STRING |
| LOW | test/test_postprocessor.py | 782 | def test_metadata_directory_format(self): | STRING |
| LOW | test/test_postprocessor.py | 794 | def test_metadata_directory_empty(self): | STRING |
| LOW | test/test_postprocessor.py | 805 | def test_metadata_basedirectory(self): | STRING |
| LOW | test/test_postprocessor.py | 814 | def test_metadata_basedirectory_custom(self): | STRING |
| LOW | test/test_postprocessor.py | 914 | def test_metadata_option_skip(self): | STRING |
| LOW | test/test_postprocessor.py | 938 | def test_metadata_option_skip_false(self): | STRING |
| LOW | test/test_postprocessor.py | 948 | def test_metadata_option_newline(self): | STRING |
| LOW | test/test_postprocessor.py | 970 | def test_metadata_option_include(self): | STRING |
| LOW | test/test_postprocessor.py | 985 | def test_metadata_option_exclude(self): | STRING |
| LOW | test/test_job.py | 94 | def test_parent_metadata_extractor(self): | CODE |
| LOW | test/test_cookies.py | 146 | def test_check_cookies_domain(self): | STRING |
| LOW | test/test_cookies.py | 171 | def test_check_cookies_domain_sub(self): | STRING |
| LOW | test/test_cookies.py | 198 | def test_check_cookies_expires(self): | STRING |
| LOW | test/test_ytdl.py | 63 | def test_authentication_options(self): | CODE |
| LOW | test/test_ytdl.py | 332 | def test_process_entries_restart_propagation(self): | CODE |
| LOW | test/test_ytdl.py | 345 | def test_process_entries_ignoreerrors_true(self): | CODE |
| LOW | test/test_ytdl.py | 361 | def test_process_entries_ignoreerrors_false(self): | CODE |
| LOW | test/test_output.py | 118 | def test_shorten_eaw_separator(self, f=output.shorten_string_eaw): | CODE |
| LOW | test/test_output.py | 130 | def test_shorten_eaw_separator_wide(self, f=output.shorten_string_eaw): | CODE |
| LOW | test/test_output.py | 142 | def test_shorten_eaw_separator_mix_(self, f=output.shorten_string_eaw): | CODE |
| LOW | test/test_util.py | 204 | def test_predicate_tags_negate(self): | CODE |
| LOW | test/test_util.py | 269 | def test_predicate_tags_multi(self): | CODE |
| LOW | test/test_util.py | 296 | def test_predicate_tags_minus(self): | CODE |
| LOW | test/test_util.py | 410 | def test_predicate_date_before(self): | CODE |
| LOW | test/test_util.py | 433 | def test_predicate_date_after(self): | CODE |
| LOW | test/test_util.py | 622 | def test_compile_expression_raw(self): | CODE |
| LOW | test/test_util.py | 633 | def test_compile_expression_tryexcept(self): | CODE |
| LOW | test/test_util.py | 641 | def test_compile_expression_defaultdict(self): | CODE |
| LOW | test/test_util.py | 868 | def test_build_selection_func(self, f=util.build_selection_func): | STRING |
| LOW | test/test_util.py | 908 | def test_build_duration_func_ex(self, f=util.build_duration_func_ex): | STRING |
| LOW | test/test_text.py | 235 | def test_filename_from_contentdisposition( | CODE |
| LOW | test/test_text.py | 467 | def test_parse_unicode_escapes(self, f=text.parse_unicode_escapes): | CODE |
| LOW | test/test_formatter.py | 151 | def test_missing_custom_default(self): | CODE |
| LOW | test/test_formatter.py | 286 | def test_specifier_maxlen_bytes(self): | CODE |
| LOW | test/test_formatter.py | 336 | def test_specifier_offset_local(self): | CODE |
| LOW | test/test_formatter.py | 366 | def test_specifier_arithmetic(self): | CODE |
| LOW | test/test_formatter.py | 371 | def test_specifier_conversions(self): | CODE |
| LOW | test/test_formatter.py | 383 | def test_specifier_limit_bytes(self): | CODE |
| LOW | test/test_extractor.py | 306 | def test_date_min_max_default(self): | CODE |
| LOW | test/test_extractor.py | 317 | def test_date_min_max_timestamp(self): | CODE |
| LOW | test/test_extractor.py | 335 | def test_date_min_max_iso_invalid(self): | CODE |
| LOW | test/test_path.py | 135 | def test_generate_path_windows(self): | CODE |
| LOW | test/test_path.py | 216 | def test_option_basedirectory(self): | CODE |
| LOW | test/test_path.py | 229 | def test_option_keywordsdefault(self): | CODE |
| LOW | test/test_path.py | 244 | def test_option_extensionmap_default(self): | CODE |
| LOW | test/test_path.py | 267 | def test_option_extensionmap_custom(self): | CODE |
| LOW | test/test_path.py | 320 | def test_option_pathrestrict_custom(self): | CODE |
| LOW | test/test_downloader.py | 278 | def test_http_adjust_extension(self): | CODE |
| LOW | test/test_downloader.py | 328 | class HttpRequestHandler(http.server.BaseHTTPRequestHandler): | CODE |
| LOW | test/test_cache.py | 163 | def test_invalidate_mem_simple(self): | CODE |
| LOW | scripts/rm.py | 28 | def remove_from_docs_configurationrst(args, path): | CODE |
| LOW | scripts/rm.py | 47 | def remove_from_docs_gallerydlconf(args, path): | CODE |
| LOW | scripts/rm.py | 62 | def remove_from_extractor_init(args, path): | CODE |
| LOW | scripts/rm.py | 72 | def remove_from_scripts_supportedsites(args, path): | CODE |
| LOW | scripts/rm.py | 84 | def update_docs_supportedsites(args, path): | CODE |
| LOW | scripts/init.py | 92 | def generate_extractors_basic(args): | STRING |
| LOW | scripts/init.py | 124 | def generate_extractors_manga(args): | STRING |
| 58 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | snap/snapcraft.yaml | 4 | # ------------------------------ | COMMENT |
| MEDIUM | gallery_dl/cookies.py | 213 | # -------------------------------------------------------------------- | COMMENT |
| MEDIUM | gallery_dl/cookies.py | 307 | # -------------------------------------------------------------------- | COMMENT |
| MEDIUM | gallery_dl/cookies.py | 408 | # -------------------------------------------------------------------- | COMMENT |
| MEDIUM | gallery_dl/cookies.py | 680 | # -------------------------------------------------------------------- | COMMENT |
| MEDIUM | gallery_dl/cookies.py | 868 | # -------------------------------------------------------------------- | COMMENT |
| MEDIUM | gallery_dl/config.py | 19 | # -------------------------------------------------------------------- | COMMENT |
| MEDIUM | gallery_dl/config.py | 29 | # -------------------------------------------------------------------- | COMMENT |
| MEDIUM | gallery_dl/actions.py | 175 | # -------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | gallery_dl/output.py | 17 | # -------------------------------------------------------------------- | COMMENT |
| MEDIUM | gallery_dl/output.py | 63 | # -------------------------------------------------------------------- | COMMENT |
| MEDIUM | gallery_dl/output.py | 325 | # -------------------------------------------------------------------- | COMMENT |
| MEDIUM | gallery_dl/output.py | 369 | # -------------------------------------------------------------------- | COMMENT |
| MEDIUM | gallery_dl/postprocessor/__init__.py | 46 | # -------------------------------------------------------------------- | COMMENT |
| MEDIUM | gallery_dl/downloader/__init__.py | 43 | # -------------------------------------------------------------------- | COMMENT |
| MEDIUM | gallery_dl/extractor/__init__.py | 304 | # -------------------------------------------------------------------- | COMMENT |
| MEDIUM | gallery_dl/extractor/oauth.py | 248 | # -------------------------------------------------------------------- | COMMENT |
| MEDIUM | gallery_dl/extractor/oauth.py | 308 | # -------------------------------------------------------------------- | COMMENT |
| MEDIUM | gallery_dl/extractor/oauth.py | 410 | # -------------------------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | test/test_dt.py | 97 | self.assertEqual(f(0) , null) | CODE |
| HIGH | test/test_dt.py | 98 | self.assertEqual(f("0") , null) | CODE |
| HIGH | scripts/completion_zsh.py | 23 | %(opts)s && rc=0 | CODE |
| HIGH | gallery_dl/option.py | 978 | "Example: --exec \"convert {} {}.png && rm {}\""), | CODE |
| HIGH | gallery_dl/util.py | 1007 | return true | CODE |
| HIGH | gallery_dl/util.py | 1144 | return true | CODE |
| HIGH | gallery_dl/extractor/facebook.py | 134 | photo_page, '{"node":{"id"', '"cursor":null}' | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | CONTRIBUTING.md | 11 | Do not submit code that was primarily generated by AI tools. | CODE |
| HIGH | .github/PULL_REQUEST_TEMPLATE.md | 9 | Do not submit code that was primarily generated by AI tools. | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/test_text.py | 447 | <a href="http://www.example.com">Lorem ipsum dolor sit amet</a>. | CODE |
| LOW | test/test_text.py | 447 | <a href="http://www.example.com">Lorem ipsum dolor sit amet</a>. | CODE |
| LOW⚡ | test/test_formatter.py | 40 | {"name": "John Doe" , "age": 42, "email": "jd@example.org"}, | CODE |
| LOW⚡ | test/test_formatter.py | 40 | {"name": "John Doe" , "age": 42, "email": "jd@example.org"}, | CODE |
| LOW⚡ | test/test_formatter.py | 49 | <a href="http://www.example.com">Lorem ipsum dolor sit amet</a>. | CODE |
| LOW⚡ | test/test_formatter.py | 49 | <a href="http://www.example.com">Lorem ipsum dolor sit amet</a>. | CODE |
| LOW | test/test_formatter.py | 396 | "['John Doe', 'Jane Smith', 'Max Mustermann']") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/test_ytdl.py | 15 | CODE | |
| LOW | test/test_text.py | 15 | CODE | |
| LOW | test/test_formatter.py | 18 | CODE | |
| LOW | test/test_extractor.py | 20 | CODE | |
| LOW | test/test_extractor.py | 22 | CODE | |
| LOW | test/test_downloader.py | 25 | CODE | |
| LOW | gallery_dl/dt.py | 13 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/test_oauth.py | 149 | CODE | |
| MEDIUM | test/test_oauth.py | 153 | CODE | |
| MEDIUM | gallery_dl/extractor/common.py | 112 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | snap/snapcraft.yaml | 5 | # This file is in the YAML data serialization format: | COMMENT |
| MEDIUM | gallery_dl/extractor/generic.py | 214 | # Create the image metadata dict and add imageurl to it | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/results/discord.py | 21 | }, | COMMENT |
| LOW | test/results/discord.py | 41 | # "#parent_id" : "1306705919916249098", | COMMENT |
| LOW | snap/snapcraft.yaml | 1 | %YAML 1.1 | COMMENT |
| LOW | gallery_dl/version.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | gallery_dl/extractor/utils/twitter_transaction_id.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | gallery_dl/text.py | 167 | Extract the text between 'begin' and 'end' from 'txt' Args: txt: String to search in begin: First s | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | gallery_dl/aes.py | 296 | CODE | |
| LOW | gallery_dl/aes.py | 524 | CODE | |
| LOW | gallery_dl/extractor/common.py | 147 | CODE | |
| LOW | gallery_dl/extractor/sexcom.py | 190 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/results/mangareader.py | 117 | "description" : """To everyone else in his magic-dominated world, the young and powerless Mash Vandead is a threat | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | gallery_dl/extractor/cfake.py | 112 | # Check if next page link exists anywhere in the page | COMMENT |