🕵️♂️ (2-in-1) Email & Username OSINT suite featuring native MCP support for deep data extraction just from a single Email/Username. Analyzes 2720+ actively maintained scan vectors (210+ email / 2510+ username) for security research, investigations, and digital footprinting.
This report summarizes scanner evidence for kaifcodec/user-scanner, a Python project with 5,356 GitHub stars. SynthScan examined 198,914 lines of code across 2848 source files, recording 13766 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 148.4 (High 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.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 5317 finding(s).
Are imports declared and package/API names verified? 25 finding(s).
Are wrappers, guards, and repeated structures necessary? 9117 finding(s).
Which changes need focused human review? 13766 finding(s).
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.
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.
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.
The scanner identified 13766 distinct pattern matches across 14 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | user_scanner/user_scan/creator/fansly.py | 33 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/creator/substack.py | 42 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/creator/substack.py | 50 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/creator/threadless_shop.py | 91 | except RequestException: | CODE |
| HIGH | user_scanner/user_scan/creator/vimeo.py | 33 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/creator/rumble_channel.py | 72 | except json.JSONDecodeError: | CODE |
| HIGH | user_scanner/user_scan/creator/boosty.py | 43 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/creator/boosty.py | 51 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/creator/taplink.py | 53 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/creator/patreon.py | 22 | except Exception: | CODE |
| HIGH | …_scanner/user_scan/creator/community_bookbrowse_com.py | 24 | except Exception: | CODE |
| HIGH | …_scanner/user_scan/creator/community_bookbrowse_com.py | 61 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/creator/paragraph.py | 28 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/creator/producthunt.py | 56 | except (json.JSONDecodeError, AttributeError, IndexError, KeyError): | CODE |
| HIGH | user_scanner/user_scan/creator/peerpush.py | 118 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/creator/rumble.py | 66 | except json.JSONDecodeError: | CODE |
| HIGH | user_scanner/user_scan/donation/donatealerts.py | 17 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/donation/liberapay.py | 87 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/donation/giveth.py | 24 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/donation/giveth.py | 61 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/greenday.py | 24 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/greenday.py | 61 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/scalermusic.py | 24 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/scalermusic.py | 61 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/bcharts.py | 24 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/bcharts.py | 61 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/ackzz.py | 50 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/murmurs.py | 24 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/murmurs.py | 61 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/cantabile.py | 24 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/cantabile.py | 61 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/allen_heath.py | 24 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/allen_heath.py | 61 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/bandcamp.py | 43 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/elektron_users.py | 24 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/elektron_users.py | 61 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/calimasphere.py | 50 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/bandori.py | 50 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/amperecomputing.py | 24 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/amperecomputing.py | 61 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/adventurezonewiki.py | 50 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/forum_vital_audio.py | 24 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/forum_vital_audio.py | 61 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/backstage.py | 24 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/backstage.py | 61 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/australianbands.py | 50 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/discogs.py | 39 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/metallica.py | 24 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/metallica.py | 61 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/wiki_albrusmusic_ru.py | 50 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/juce.py | 24 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/juce.py | 61 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/vcvrack_forum.py | 24 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/vcvrack_forum.py | 61 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/astraonlinecontest.py | 50 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/ableset.py | 24 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/ableset.py | 61 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/singularsound.py | 24 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/singularsound.py | 61 | except Exception: | CODE |
| HIGH | user_scanner/user_scan/music/dastereo.py | 24 | except Exception: | CODE |
| 3714 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | CONTRIBUTING.md | 103 | except Exception as exc: | CODE |
| LOW | abandoned/user_scan/social/xing.py | 41 | except Exception as e: | CODE |
| LOW | abandoned/user_scan/dev/appledeveloper.py | 23 | except Exception as e: | CODE |
| LOW | abandoned/user_scan/adult/motherless.py | 49 | except Exception: | CODE |
| LOW | abandoned/email_scan/entertainment/webtoon.py | 46 | except Exception: | CODE |
| LOW | abandoned/email_scan/entertainment/webtoon.py | 65 | except Exception as e: | CODE |
| LOW | abandoned/email_scan/hosting/render.py | 58 | except Exception as e: | CODE |
| LOW | abandoned/email_scan/dev/boot_dev.py | 33 | except Exception as e: | CODE |
| LOW | abandoned/email_scan/dev/leetcode.py | 53 | except Exception as e: | STRING |
| LOW | abandoned/email_scan/dev/saashub.py | 68 | except Exception as e: | CODE |
| LOW | abandoned/email_scan/dev/replit.py | 49 | except Exception as e: | CODE |
| LOW | abandoned/email_scan/jobs/seduo_cz.py | 35 | except Exception as exc: | CODE |
| LOW | abandoned/email_scan/jobs/seduo_sk.py | 35 | except Exception as exc: | CODE |
| LOW | abandoned/email_scan/adult/motherless.py | 41 | except Exception as e: | CODE |
| LOW | tests/test_module_integrity.py | 61 | except Exception as e: | CODE |
| LOW | tests/test_module_integrity.py | 110 | except Exception as e: | CODE |
| LOW | user_scanner/__main__.py | 427 | except Exception as e: | CODE |
| LOW | user_scanner/__main__.py | 465 | except Exception as e: | CODE |
| LOW | user_scanner/__main__.py | 490 | except Exception as e: | CODE |
| LOW | user_scanner/__main__.py | 733 | except Exception as e: | CODE |
| LOW | user_scanner/__main__.py | 751 | except Exception as e: | CODE |
| LOW⚡ | user_scanner/__main__.py | 766 | except Exception: | CODE |
| LOW⚡ | user_scanner/__main__.py | 771 | except Exception as e: | CODE |
| LOW⚡ | user_scanner/__main__.py | 778 | except Exception: | CODE |
| LOW | user_scanner/user_scan/creator/bio_site.py | 46 | except Exception: | CODE |
| LOW | user_scanner/user_scan/creator/devto.py | 33 | except Exception as e: | CODE |
| LOW | user_scanner/user_scan/creator/fansly.py | 33 | except Exception: | CODE |
| LOW | user_scanner/user_scan/creator/itch_io.py | 32 | except Exception as e: | CODE |
| LOW | user_scanner/user_scan/creator/substack.py | 42 | except Exception: | CODE |
| LOW | user_scanner/user_scan/creator/substack.py | 50 | except Exception: | CODE |
| LOW | user_scanner/user_scan/creator/vimeo.py | 33 | except Exception: | CODE |
| LOW | user_scanner/user_scan/creator/medium.py | 36 | except Exception as e: | CODE |
| LOW | user_scanner/user_scan/creator/boosty.py | 43 | except Exception: | CODE |
| LOW | user_scanner/user_scan/creator/boosty.py | 51 | except Exception: | CODE |
| LOW | user_scanner/user_scan/creator/taplink.py | 53 | except Exception: | CODE |
| LOW | user_scanner/user_scan/creator/kaggle.py | 22 | except Exception as e: | CODE |
| LOW | user_scanner/user_scan/creator/patreon.py | 22 | except Exception: | CODE |
| LOW | user_scanner/user_scan/creator/patreon.py | 29 | except Exception as e: | CODE |
| LOW | …_scanner/user_scan/creator/community_bookbrowse_com.py | 24 | except Exception: | CODE |
| LOW | …_scanner/user_scan/creator/community_bookbrowse_com.py | 61 | except Exception: | CODE |
| LOW | user_scanner/user_scan/creator/paragraph.py | 28 | except Exception: | CODE |
| LOW | user_scanner/user_scan/creator/ameblo.py | 22 | except Exception as e: | CODE |
| LOW | user_scanner/user_scan/creator/peerpush.py | 118 | except Exception: | CODE |
| LOW | user_scanner/user_scan/donation/donatealerts.py | 17 | except Exception: | CODE |
| LOW | user_scanner/user_scan/donation/liberapay.py | 87 | except Exception: | CODE |
| LOW | user_scanner/user_scan/donation/buymeacoffee.py | 34 | except Exception as e: | CODE |
| LOW | user_scanner/user_scan/donation/giveth.py | 24 | except Exception: | CODE |
| LOW | user_scanner/user_scan/donation/giveth.py | 61 | except Exception: | CODE |
| LOW | user_scanner/user_scan/music/greenday.py | 24 | except Exception: | CODE |
| LOW | user_scanner/user_scan/music/greenday.py | 61 | except Exception: | CODE |
| LOW | user_scanner/user_scan/music/scalermusic.py | 24 | except Exception: | CODE |
| LOW | user_scanner/user_scan/music/scalermusic.py | 61 | except Exception: | CODE |
| LOW | user_scanner/user_scan/music/myspace.py | 23 | except Exception as e: | CODE |
| LOW | user_scanner/user_scan/music/bcharts.py | 24 | except Exception: | CODE |
| LOW | user_scanner/user_scan/music/bcharts.py | 61 | except Exception: | CODE |
| LOW | user_scanner/user_scan/music/ackzz.py | 50 | except Exception: | CODE |
| MEDIUM | user_scanner/user_scan/music/ackzz.py | 24 | def process(response) -> Result: | CODE |
| LOW | user_scanner/user_scan/music/murmurs.py | 24 | except Exception: | CODE |
| LOW | user_scanner/user_scan/music/murmurs.py | 61 | except Exception: | CODE |
| LOW | user_scanner/user_scan/music/cantabile.py | 24 | except Exception: | CODE |
| 4558 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | abandoned/user_scan/social/xing.py | 4 | CODE | |
| LOW | abandoned/email_scan/hosting/render.py | 5 | CODE | |
| LOW | tests/test_module_integrity.py | 39 | CODE | |
| LOW | tests/test_module_integrity.py | 74 | CODE | |
| LOW | user_scanner/__main__.py | 72 | CODE | |
| LOW | user_scanner/user_scan/creator/bio_site.py | 7 | CODE | |
| LOW | user_scanner/user_scan/creator/bio_site.py | 15 | CODE | |
| LOW | user_scanner/user_scan/creator/fansly.py | 3 | CODE | |
| LOW | user_scanner/user_scan/creator/fansly.py | 7 | CODE | |
| LOW | user_scanner/user_scan/creator/substack.py | 6 | CODE | |
| LOW | user_scanner/user_scan/creator/substack.py | 11 | CODE | |
| LOW | user_scanner/user_scan/creator/gunslol.py | 27 | CODE | |
| LOW | user_scanner/user_scan/creator/gunslol.py | 32 | CODE | |
| LOW | user_scanner/user_scan/creator/solo_to.py | 6 | CODE | |
| LOW | user_scanner/user_scan/creator/solo_to.py | 14 | CODE | |
| LOW | user_scanner/user_scan/creator/vimeo.py | 3 | CODE | |
| LOW | user_scanner/user_scan/creator/vimeo.py | 7 | CODE | |
| LOW | user_scanner/user_scan/creator/boosty.py | 6 | CODE | |
| LOW | user_scanner/user_scan/creator/boosty.py | 11 | CODE | |
| LOW | user_scanner/user_scan/creator/taplink.py | 7 | CODE | |
| LOW | user_scanner/user_scan/creator/taplink.py | 15 | CODE | |
| LOW | user_scanner/user_scan/creator/patreon.py | 6 | CODE | |
| LOW | …_scanner/user_scan/creator/community_bookbrowse_com.py | 7 | CODE | |
| LOW | …_scanner/user_scan/creator/community_bookbrowse_com.py | 16 | CODE | |
| LOW | user_scanner/user_scan/creator/paragraph.py | 4 | CODE | |
| LOW | user_scanner/user_scan/creator/peerpush.py | 16 | CODE | |
| LOW | user_scanner/user_scan/donation/liberapay.py | 16 | CODE | |
| LOW | user_scanner/user_scan/donation/liberapay.py | 37 | CODE | |
| LOW | user_scanner/user_scan/donation/giveth.py | 5 | CODE | |
| LOW | user_scanner/user_scan/donation/giveth.py | 15 | CODE | |
| LOW | user_scanner/user_scan/music/greenday.py | 7 | CODE | |
| LOW | user_scanner/user_scan/music/greenday.py | 16 | CODE | |
| LOW | user_scanner/user_scan/music/scalermusic.py | 7 | CODE | |
| LOW | user_scanner/user_scan/music/scalermusic.py | 16 | CODE | |
| LOW | user_scanner/user_scan/music/bcharts.py | 5 | CODE | |
| LOW | user_scanner/user_scan/music/bcharts.py | 15 | CODE | |
| LOW | user_scanner/user_scan/music/ackzz.py | 7 | CODE | |
| LOW | user_scanner/user_scan/music/ackzz.py | 24 | CODE | |
| LOW | user_scanner/user_scan/music/murmurs.py | 7 | CODE | |
| LOW | user_scanner/user_scan/music/murmurs.py | 16 | CODE | |
| LOW | user_scanner/user_scan/music/dubstepforum_com.py | 6 | CODE | |
| LOW | user_scanner/user_scan/music/dubstepforum_com.py | 16 | CODE | |
| LOW | user_scanner/user_scan/music/cantabile.py | 5 | CODE | |
| LOW | user_scanner/user_scan/music/cantabile.py | 15 | CODE | |
| LOW | user_scanner/user_scan/music/allen_heath.py | 7 | CODE | |
| LOW | user_scanner/user_scan/music/allen_heath.py | 16 | CODE | |
| LOW | user_scanner/user_scan/music/bandcamp.py | 4 | CODE | |
| LOW | user_scanner/user_scan/music/bandcamp.py | 8 | CODE | |
| LOW | user_scanner/user_scan/music/elektron_users.py | 5 | CODE | |
| LOW | user_scanner/user_scan/music/elektron_users.py | 15 | CODE | |
| LOW | user_scanner/user_scan/music/calimasphere.py | 7 | CODE | |
| LOW | user_scanner/user_scan/music/calimasphere.py | 24 | CODE | |
| LOW | user_scanner/user_scan/music/bandori.py | 7 | CODE | |
| LOW | user_scanner/user_scan/music/bandori.py | 24 | CODE | |
| LOW | user_scanner/user_scan/music/amperecomputing.py | 7 | CODE | |
| LOW | user_scanner/user_scan/music/amperecomputing.py | 16 | CODE | |
| LOW | user_scanner/user_scan/music/adventurezonewiki.py | 7 | CODE | |
| LOW | user_scanner/user_scan/music/adventurezonewiki.py | 24 | CODE | |
| LOW | user_scanner/user_scan/music/forum_vital_audio.py | 5 | CODE | |
| LOW | user_scanner/user_scan/music/forum_vital_audio.py | 15 | CODE | |
| 4540 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_result.py | 42 | def test_get_reason_and_humanize(): | CODE |
| LOW | tests/test_result.py | 94 | def test_result_update_empty_values(): | CODE |
| LOW | tests/test_result.py | 169 | def test_console_output_and_show_url(): | CODE |
| LOW⚡ | tests/test_result.py | 239 | def test_csv_cell_neutralizes_formula_triggers(raw): | CODE |
| LOW⚡ | tests/test_result.py | 245 | def test_to_csv_neutralizes_username_field(): | CODE |
| LOW⚡ | tests/test_result.py | 252 | def test_to_csv_neutralizes_extra_value_with_dangerous_key(): | CODE |
| LOW⚡ | tests/test_result.py | 260 | def test_humanize_exception_dns_and_network_branches(): | CODE |
| LOW | tests/test_result.py | 271 | def test_get_reason_skipped_default_message(): | CODE |
| LOW | tests/test_result.py | 279 | def test_get_output_color_and_icon_per_status(): | CODE |
| LOW | tests/test_result.py | 293 | def test_show_default_filters_non_taken(capsys): | CODE |
| LOW⚡ | tests/test_result.py | 306 | def test_show_all_displays_non_taken(capsys): | CODE |
| LOW⚡ | tests/test_result.py | 313 | def test_extra_update_skips_none_and_blank_values(): | CODE |
| LOW⚡ | tests/test_result.py | 321 | def test_extra_update_preserves_bool_and_int_values(): | CODE |
| LOW | tests/test_engine.py | 78 | async def test_module_func_raise_exception(github_stub): | CODE |
| LOW | tests/test_engine.py | 91 | async def test_missing_validate_func(): | CODE |
| LOW | tests/test_engine.py | 100 | async def test_default_category_email(github_stub): | CODE |
| LOW | tests/test_engine.py | 113 | async def test_default_category_username(github_stub): | CODE |
| LOW | tests/test_engine.py | 174 | async def test_is_email_passed_correctly(monkeypatch, github_stub): | CODE |
| LOW | tests/test_engine.py | 192 | async def test_case_insensitive_category_match(monkeypatch, github_stub): | CODE |
| LOW | tests/test_engine.py | 220 | async def test_category_not_found_email(monkeypatch): | CODE |
| LOW | tests/test_engine.py | 230 | async def test_category_not_found_username(monkeypatch): | CODE |
| LOW | tests/test_engine.py | 259 | async def test_check_all_email_passed_correct(monkeypatch): | CODE |
| LOW | tests/test_engine.py | 280 | async def test_check_all_nested_lis_flatten(monkeypatch): | CODE |
| LOW | tests/test_engine.py | 296 | async def test_check_all_category_exception(monkeypatch): | CODE |
| LOW | tests/test_engine.py | 297 | async def check_category_side_effect(cat_name, target, is_email=True): | CODE |
| LOW⚡ | tests/test_loud_prompt.py | 5 | def test_loud_module_config_value(): | CODE |
| LOW⚡ | tests/test_loud_prompt.py | 12 | def test_check_loud_module_permission_tty_yes(monkeypatch): | CODE |
| LOW⚡ | tests/test_loud_prompt.py | 19 | def test_check_loud_module_permission_tty_no(monkeypatch): | CODE |
| LOW⚡ | tests/test_loud_prompt.py | 26 | def test_check_loud_module_permission_tty_dont_ask(monkeypatch): | CODE |
| LOW⚡ | tests/test_loud_prompt.py | 36 | def test_check_loud_module_permission_no_tty(monkeypatch): | CODE |
| LOW⚡ | tests/test_loud_prompt.py | 45 | def test_check_loud_module_permission_saved_preference(monkeypatch): | CODE |
| LOW⚡ | tests/test_loud_prompt.py | 52 | def test_save_config_value_preserves_loud_module_key(tmp_path): | CODE |
| LOW | tests/test_impersonate.py | 36 | def test_warmup_runs_once_and_session_is_reused(monkeypatch): | CODE |
| LOW | tests/test_impersonate.py | 60 | def test_request_reuses_warm_session(monkeypatch): | CODE |
| LOW | tests/test_impersonate.py | 78 | def test_each_origin_gets_its_own_warmup(monkeypatch): | CODE |
| LOW | tests/test_impersonate.py | 97 | def test_exception_becomes_error_result(monkeypatch): | CODE |
| LOW | tests/test_impersonate.py | 111 | def test_get_warm_session_and_timeout(monkeypatch): | CODE |
| LOW⚡ | tests/test_patterns.py | 22 | def test_charset_range_letters(): | CODE |
| LOW⚡ | tests/test_patterns.py | 26 | def test_charset_range_digits(): | CODE |
| LOW⚡ | tests/test_patterns.py | 68 | def test_charset_dash_literal(): | CODE |
| LOW⚡ | tests/test_patterns.py | 73 | def test_charset_mixed_range_and_literal(): | CODE |
| LOW⚡ | tests/test_patterns.py | 78 | def test_charset_same_start_end(): | CODE |
| LOW⚡ | tests/test_patterns.py | 83 | def test_charset_reversed_range(): | CODE |
| LOW⚡ | tests/test_patterns.py | 89 | def test_reversed_range_with_text(): | CODE |
| LOW⚡ | tests/test_patterns.py | 130 | def test_lenset_two_digit_combos(): | CODE |
| LOW⚡ | tests/test_patterns.py | 137 | def test_lenset_mixed_range_and_single(): | CODE |
| LOW⚡ | tests/test_patterns.py | 143 | def test_default_lenset_is_one(): | CODE |
| LOW⚡ | tests/test_patterns.py | 150 | def test_escaped_open_bracket(): | CODE |
| LOW⚡ | tests/test_patterns.py | 154 | def test_escaped_close_bracket(): | CODE |
| LOW⚡ | tests/test_patterns.py | 162 | def test_escaped_bracket_pair(): | CODE |
| LOW⚡ | tests/test_patterns.py | 166 | def test_escape_inside_charset(): | CODE |
| LOW⚡ | tests/test_patterns.py | 174 | def test_error_unclosed_bracket(): | CODE |
| LOW⚡ | tests/test_patterns.py | 179 | def test_error_unmatched_close_bracket(): | CODE |
| LOW⚡ | tests/test_patterns.py | 184 | def test_error_unclosed_brace(): | CODE |
| LOW⚡ | tests/test_patterns.py | 189 | def test_error_lone_open_bracket(): | CODE |
| LOW⚡ | tests/test_patterns.py | 194 | def test_error_lenset_starts_with_dash(): | CODE |
| LOW⚡ | tests/test_patterns.py | 201 | def test_mixed_text_and_patterns(): | CODE |
| LOW | tests/test_patterns.py | 37 | def test_charset_explicit_chars(): | CODE |
| LOW | tests/test_patterns.py | 51 | def test_charset_with_prefix_and_suffix(): | CODE |
| LOW | tests/test_patterns.py | 255 | def test_random_reservoir_sampling(): | CODE |
| 633 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | abandoned/email_scan/jobs/seduo_cz.py | 0 | request a password reset when the email belongs to an account. | STRING |
| HIGH | abandoned/email_scan/jobs/seduo_sk.py | 0 | request a password reset when the email belongs to an account. | STRING |
| HIGH | user_scanner/email_scan/jobs/cvonline_lt.py | 0 | request a password reset when the email belongs to an account. | STRING |
| HIGH | user_scanner/email_scan/jobs/cv_ee.py | 0 | request a password reset when the email belongs to an account. | STRING |
| HIGH | user_scanner/email_scan/jobs/hercul.py | 0 | request a password reset when the email belongs to an account. | STRING |
| HIGH | user_scanner/email_scan/jobs/cv_lv.py | 0 | request a password reset when the email belongs to an account. | STRING |
| HIGH | user_scanner/email_scan/jobs/pulser.py | 0 | request a password reset when the email belongs to an account. | STRING |
| HIGH | user_scanner/email_scan/jobs/jobs_cz.py | 0 | request a password reset when the email belongs to an account. | STRING |
| HIGH | user_scanner/email_scan/shopping/alza_cz.py | 0 | checks whether a given email is associated with an account or order on the alza website. the check has two steps: 1. ret | STRING |
| HIGH | user_scanner/email_scan/shopping/alza_at.py | 0 | checks whether a given email is associated with an account or order on the alza website. the check has two steps: 1. ret | STRING |
| HIGH | user_scanner/email_scan/shopping/alza_hu.py | 0 | checks whether a given email is associated with an account or order on the alza website. the check has two steps: 1. ret | STRING |
| HIGH | user_scanner/email_scan/shopping/alza_sk.py | 0 | checks whether a given email is associated with an account or order on the alza website. the check has two steps: 1. ret | STRING |
| HIGH | user_scanner/email_scan/shopping/alza_de.py | 0 | checks whether a given email is associated with an account or order on the alza website. the check has two steps: 1. ret | STRING |
| HIGH | user_scanner/email_scan/shopping/alza_cz.py | 0 | checks whether an email is associated with an account or order on alza.de website. | STRING |
| HIGH | user_scanner/email_scan/shopping/alza_at.py | 0 | checks whether an email is associated with an account or order on alza.de website. | STRING |
| HIGH | user_scanner/email_scan/shopping/alza_hu.py | 0 | checks whether an email is associated with an account or order on alza.de website. | STRING |
| HIGH | user_scanner/email_scan/shopping/alza_sk.py | 0 | checks whether an email is associated with an account or order on alza.de website. | STRING |
| HIGH | user_scanner/email_scan/shopping/alza_de.py | 0 | checks whether an email is associated with an account or order on alza.de website. | STRING |
| HIGH | user_scanner/email_scan/learning/talkpal.py | 0 | bunpo email validator. note: this will send a password reset email if it exists. | STRING |
| HIGH | user_scanner/email_scan/learning/hellochinese.py | 0 | bunpo email validator. note: this will send a password reset email if it exists. | STRING |
| HIGH | user_scanner/email_scan/learning/hanzii.py | 0 | bunpo email validator. note: this will send a password reset email if it exists. | STRING |
| HIGH | user_scanner/email_scan/learning/bunpo.py | 0 | bunpo email validator. note: this will send a password reset email if it exists. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | tests/test_nextjs.py | 34 | f"<script>self.__next_f.push([1,{json.dumps(chunk)}])</script>" | STRING |
| HIGH | user_scanner/user_scan/other/tripadvisor.py | 79 | # Nested fields can be present-but-null, so coalesce with `or {}` at each | COMMENT |
| HIGH⚡ | user_scanner/email_scan/shopping/alza_cz.py | 16 | "DevErrorMessage": null, | STRING |
| HIGH⚡ | user_scanner/email_scan/shopping/alza_cz.py | 17 | "Message": null, | STRING |
| HIGH⚡ | user_scanner/email_scan/shopping/alza_cz.py | 20 | "RedirectUrlOrderDetail": null, | STRING |
| HIGH⚡ | user_scanner/email_scan/shopping/alza_cz.py | 21 | "PaymentAction": null, | STRING |
| HIGH⚡ | user_scanner/email_scan/shopping/alza_at.py | 16 | "DevErrorMessage": null, | STRING |
| HIGH⚡ | user_scanner/email_scan/shopping/alza_at.py | 17 | "Message": null, | STRING |
| HIGH⚡ | user_scanner/email_scan/shopping/alza_at.py | 20 | "RedirectUrlOrderDetail": null, | STRING |
| HIGH⚡ | user_scanner/email_scan/shopping/alza_at.py | 21 | "PaymentAction": null, | STRING |
| HIGH⚡ | user_scanner/email_scan/shopping/alza_hu.py | 16 | "DevErrorMessage": null, | STRING |
| HIGH⚡ | user_scanner/email_scan/shopping/alza_hu.py | 17 | "Message": null, | STRING |
| HIGH⚡ | user_scanner/email_scan/shopping/alza_hu.py | 20 | "RedirectUrlOrderDetail": null, | STRING |
| HIGH⚡ | user_scanner/email_scan/shopping/alza_hu.py | 21 | "PaymentAction": null, | STRING |
| HIGH⚡ | user_scanner/email_scan/shopping/alza_sk.py | 16 | "DevErrorMessage": null, | STRING |
| HIGH⚡ | user_scanner/email_scan/shopping/alza_sk.py | 17 | "Message": null, | STRING |
| HIGH⚡ | user_scanner/email_scan/shopping/alza_sk.py | 20 | "RedirectUrlOrderDetail": null, | STRING |
| HIGH⚡ | user_scanner/email_scan/shopping/alza_sk.py | 21 | "PaymentAction": null, | STRING |
| HIGH⚡ | user_scanner/email_scan/shopping/alza_de.py | 16 | "DevErrorMessage": null, | STRING |
| HIGH⚡ | user_scanner/email_scan/shopping/alza_de.py | 17 | "Message": null, | STRING |
| HIGH⚡ | user_scanner/email_scan/shopping/alza_de.py | 20 | "RedirectUrlOrderDetail": null, | STRING |
| HIGH⚡ | user_scanner/email_scan/shopping/alza_de.py | 21 | "PaymentAction": null, | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/test_patterns.py | 20 | # ── expand_patterns: charset basics ────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_patterns.py | 95 | # ── expand_patterns: lenset ────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_patterns.py | 148 | # ── expand_patterns: escaped characters ────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_patterns.py | 172 | # ── expand_patterns: error cases ───────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_patterns.py | 199 | # ── expand_patterns: complex / combined ────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_patterns.py | 6 | # ── expand_patterns: plain text (no pattern syntax) ────────────────────── | COMMENT |
| MEDIUM | tests/test_patterns.py | 222 | # ── expand_patterns_random ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_patterns.py | 271 | # ── count_patterns ─────────────────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | user_scanner/user_scan/social/instagram.py | 26 | # Step 1: Probe public profile page | COMMENT |
| LOW⚡ | user_scanner/user_scan/social/instagram.py | 120 | # Step 2: Fallback to registration endpoint for accounts that are private, | COMMENT |
| LOW | user_scanner/email_scan/shopping/walmart.py | 77 | # Step 1: Request the login page to seed the session cookies; the | COMMENT |
| LOW | user_scanner/email_scan/shopping/walmart.py | 90 | # Step 2: Post to the GraphQL endpoint | COMMENT |
| LOW | user_scanner/email_scan/fitness/fitnessblender.py | 24 | # Step 1: Visit homepage to get cookies (XSRF-TOKEN and FB_SESSION) | COMMENT |
| LOW | user_scanner/email_scan/fitness/fitnessblender.py | 44 | # Step 2: Post to the validation API | COMMENT |
| LOW | user_scanner/email_scan/adult/lovescape.py | 39 | # Step 1: Get guest UUID from config endpoint | COMMENT |
| LOW | user_scanner/email_scan/adult/lovescape.py | 55 | # Step 2: Build payload with guest UUID | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | user_scanner/user_scan/social/instagram.py | 26 | # Step 1: Probe public profile page | COMMENT |
| LOW⚡ | user_scanner/user_scan/social/instagram.py | 120 | # Step 2: Fallback to registration endpoint for accounts that are private, | COMMENT |
| LOW | user_scanner/email_scan/shopping/walmart.py | 77 | # Step 1: Request the login page to seed the session cookies; the | COMMENT |
| LOW | user_scanner/email_scan/shopping/walmart.py | 90 | # Step 2: Post to the GraphQL endpoint | COMMENT |
| LOW | user_scanner/email_scan/fitness/fitnessblender.py | 24 | # Step 1: Visit homepage to get cookies (XSRF-TOKEN and FB_SESSION) | COMMENT |
| LOW | user_scanner/email_scan/fitness/fitnessblender.py | 44 | # Step 2: Post to the validation API | COMMENT |
| LOW | user_scanner/email_scan/adult/lovescape.py | 39 | # Step 1: Get guest UUID from config endpoint | COMMENT |
| LOW | user_scanner/email_scan/adult/lovescape.py | 55 | # Step 2: Build payload with guest UUID | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | user_scanner/user_scan/gaming/twitchtracker.py | 21 | # Check if page is an active channel profile | COMMENT |
| LOW | user_scanner/user_scan/social/myanimelist.py | 17 | # Verify if user profile loaded | COMMENT |
| LOW⚡ | user_scanner/user_scan/social/instagram.py | 33 | # Check if this is an authentic profile page for the requested username | COMMENT |
| LOW | user_scanner/email_scan/shopping/walmart.py | 110 | # Check if there is an error stating Enum can't represent STEP_UP_REQUIRED | COMMENT |
| LOW | user_scanner/email_scan/shopping/walmart.py | 122 | # Check if errors indicates a non-existent email | COMMENT |
| LOW | user_scanner/email_scan/social/tumblr.py | 94 | # Check if it's a "User already exists" response | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test_orchestrator.py | 35 | # Create a temporary module file to simulate a real module file | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | CONTRIBUTING.md | 136 | 2. **Deep Data Extraction:** If the user is found, attempt to extract rich metadata (fullname, location, bio, stats) and | CODE |
| LOW⚡ | tests/test_helpers.py | 160 | email_file.write_text("user@example.com") | STRING |
| LOW | user_scanner/user_scan/social/x.py | 36 | params = {"username": user, "full_name": "John Doe", "email": "johndoe07@gmail.com"} | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | user_scanner/core/helpers.py | 450 | def set_global_timeout(timeout: Optional[float]) -> None: | CODE |
| LOW | user_scanner/core/helpers.py | 673 | def set_proxy_manager(proxy_file: Optional[str] = None, proxies: Optional[list[str]] = None) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | user_scanner/core/cross_scan.py | 61 | class CrossScanConfig: | COMMENT |