Files
maigret/tests
caed0bf602 fix: reduce false positives for non-ASCII (Chinese) usernames + add CSDN site (#2876)
* refactor: drop dead 'if not dictionary' guards across report paths

Closes #2665.

Every site results entry flows through make_site_result (checking.py:788),
which initializes results_site = {} and then unconditionally populates it
(site/username/keywords/parsing_enabled/url_main/cookies up front, checker
at the end, plus status or url_user+future on every branch). It has no
return path that yields an empty dict. check_site_for_username wraps that
result and likewise never returns a falsy entry, and maigret.py does not
construct site-result dicts by hand.

So the four downstream 'if not dictionary: continue' guards (all tagged
'# TODO: fix no site data issue') were dead code — the entries they
guarded against cannot occur. Removed:

  - maigret/maigret.py:101  (extract_ids_from_results)
  - maigret/report.py:151   — 'if not dictionary or dictionary.get("is_similar")'
                              trimmed to just the is_similar check (real logic)
  - maigret/report.py:467  (extended-report builder)
  - maigret/report.py:609  (generate_txt_report)
  - maigret/report.py:627  — 'if not site_result or not site_result.get("status")'
                              trimmed to just the status check (real logic)
  - maigret/report.py:687 (generate_json_report)

plus the four '# TODO: fix no site data issue' comments.

No behavior change for well-formed inputs; downstream .get() calls are
safe because entries are always populated dicts. 292 tests pass.

* feat: add Chinese name false-positive fix + CSDN site

- #2633: When searching non-ASCII usernames, skip presence detection
  if the response body doesn't contain the username at all, preventing
  false positives on sites that return generic error pages.
- #2634: Add CSDN (blog.csdn.net) — major Chinese dev blog with
  40M+ users, alexa rank #45 in China.

* fix: add tls_fingerprint to CSDN + add tests for non-ASCII false positive fix

Addresses PR #2876 review feedback from soxoj:
- Add tls_fingerprint to CSDN protection (curl_cffi required)
- Add 2 test cases for #2633 non-ASCII username false positive fix:
  - non-ASCII username not in response → no false CLAIMED
  - non-ASCII username in response → normal CLAIMED behavior

---------

Co-authored-by: aznikline <aznikline@users.noreply.github.com>
2026-07-17 19:07:08 +02:00
..
2021-01-02 00:23:58 +03:00
2021-05-18 00:43:56 +03:00
2026-07-13 18:06:51 +02:00