094b3f74ed
build(deps): bump platformdirs from 4.10.1 to 4.11.0 ( #2898 )
...
Bumps [platformdirs](https://github.com/tox-dev/platformdirs ) from 4.10.1 to 4.11.0.
- [Release notes](https://github.com/tox-dev/platformdirs/releases )
- [Changelog](https://github.com/tox-dev/platformdirs/blob/main/docs/changelog.rst )
- [Commits](https://github.com/tox-dev/platformdirs/compare/4.10.1...4.11.0 )
---
updated-dependencies:
- dependency-name: platformdirs
dependency-version: 4.11.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-23 10:18:39 +05:00
81f9ecdd0e
build(deps): bump certifi from 2026.6.17 to 2026.7.22 ( #2899 )
...
Bumps [certifi](https://github.com/certifi/python-certifi ) from 2026.6.17 to 2026.7.22.
- [Commits](https://github.com/certifi/python-certifi/compare/2026.06.17...2026.07.22 )
---
updated-dependencies:
- dependency-name: certifi
dependency-version: 2026.7.22
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-22 12:23:47 +05:00
58db3c9773
build(deps): bump soupsieve from 2.9 to 2.9.1 ( #2900 )
...
Bumps [soupsieve](https://github.com/facelessuser/soupsieve ) from 2.9 to 2.9.1.
- [Release notes](https://github.com/facelessuser/soupsieve/releases )
- [Commits](https://github.com/facelessuser/soupsieve/compare/2.9...2.9.1 )
---
updated-dependencies:
- dependency-name: soupsieve
dependency-version: 2.9.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-22 12:23:02 +05:00
fa384bdab8
build(deps): bump pillow from 12.2.0 to 12.3.0 ( #2896 )
...
Bumps [pillow](https://github.com/python-pillow/Pillow ) from 12.2.0 to 12.3.0.
- [Release notes](https://github.com/python-pillow/Pillow/releases )
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst )
- [Commits](https://github.com/python-pillow/Pillow/compare/12.2.0...12.3.0 )
---
updated-dependencies:
- dependency-name: pillow
dependency-version: 12.3.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-21 10:05:08 +02:00
84b7cc3fe9
build(deps): bump aiohttp from 3.14.1 to 3.14.2 ( #2895 )
...
Bumps [aiohttp](https://github.com/aio-libs/aiohttp ) from 3.14.1 to 3.14.2.
- [Changelog](https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst )
- [Commits](https://github.com/aio-libs/aiohttp/compare/v3.14.1...v3.14.2 )
---
updated-dependencies:
- dependency-name: aiohttp
dependency-version: 3.14.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-21 09:19:25 +02:00
Soxoj and GitHub
a1d21dfffe
Add 11 sites ( #2893 )
2026-07-21 00:15:38 +02:00
Soxoj and GitHub
aa6c16f1dc
Tag 2210 sites by country and topic ( #2892 )
...
- Countries: +783 sites (ccTLD-deterministic + LLM content classification),
cleaned 9 anomalous tags (uk->gb, eu region, domain hacks)
- Topics: +2165 sites; vocab 69->75 (+parenting, psychology, cooking,
esoteric, religion, firearms)
- Add tests/test_country_tags.py (ISO validity, no uk/eu, hack regression)
2026-07-20 23:45:04 +02:00
Soxoj and GitHub
aa79917052
Updated AI report prompt for analysis and default model ( #2888 )
...
* Updated AI report prompt for analysis and default model
* Fix test_cli.py DEFAULT_ARGS to match updated default AI model (gpt-4o → gpt-5.4)
2026-07-20 20:38:09 +02:00
Soxoj and GitHub
961680a81b
Add support of Bilibili ( #2891 )
2026-07-20 20:28:02 +02:00
Soxoj and GitHub
d5cf4b15ef
Add QQ search via qq_id id type; per-site encoding config ( #2890 )
2026-07-20 19:47:33 +02:00
1d3805d9ce
Updated site list and statistics ( #2889 )
...
Co-authored-by: soxoj <31013580+soxoj@users.noreply.github.com >
2026-07-20 18:38:07 +02:00
Soxoj and GitHub
b745d33373
Fix site checks: 6 fixed, 4 disabled, 1 dead deleted ( #2887 )
2026-07-20 16:30:16 +02:00
1200f2e295
build(deps): bump soupsieve from 2.8.4 to 2.9 ( #2884 )
...
Bumps [soupsieve](https://github.com/facelessuser/soupsieve ) from 2.8.4 to 2.9.
- [Release notes](https://github.com/facelessuser/soupsieve/releases )
- [Commits](https://github.com/facelessuser/soupsieve/compare/2.8.4...2.9 )
---
updated-dependencies:
- dependency-name: soupsieve
dependency-version: '2.9'
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-20 09:39:58 +02:00
9e5c569446
build(deps): bump yarl from 1.24.2 to 1.24.5 ( #2883 )
...
Bumps [yarl](https://github.com/aio-libs/yarl ) from 1.24.2 to 1.24.5.
- [Changelog](https://github.com/aio-libs/yarl/blob/master/CHANGES.rst )
- [Commits](https://github.com/aio-libs/yarl/compare/v1.24.2...v1.24.5 )
---
updated-dependencies:
- dependency-name: yarl
dependency-version: 1.24.5
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-20 09:39:16 +02:00
b5e7c34aed
build(deps): bump platformdirs from 4.10.0 to 4.10.1 ( #2885 )
...
Bumps [platformdirs](https://github.com/tox-dev/platformdirs ) from 4.10.0 to 4.10.1.
- [Release notes](https://github.com/tox-dev/platformdirs/releases )
- [Changelog](https://github.com/tox-dev/platformdirs/blob/main/docs/changelog.rst )
- [Commits](https://github.com/tox-dev/platformdirs/compare/4.10.0...4.10.1 )
---
updated-dependencies:
- dependency-name: platformdirs
dependency-version: 4.10.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-20 09:39:03 +02:00
Soxoj and GitHub
3c7a0e0c43
Enrichment via socid_extractor url mutations ( #2880 )
2026-07-19 21:40:56 +02:00
c8fc1a5a3e
Updated site list and statistics ( #2879 )
...
Co-authored-by: soxoj <31013580+soxoj@users.noreply.github.com >
2026-07-18 09:32:53 +02:00
Soxoj and GitHub
2471538796
Add site checks: 21 new sites ( #2878 )
2026-07-18 01:04:58 +02:00
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
4b0fe7f734
build(deps-dev): bump coverage from 7.15.1 to 7.15.2 ( #2875 )
...
Bumps [coverage](https://github.com/coveragepy/coveragepy ) from 7.15.1 to 7.15.2.
- [Release notes](https://github.com/coveragepy/coveragepy/releases )
- [Changelog](https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst )
- [Commits](https://github.com/coveragepy/coveragepy/compare/7.15.1...7.15.2 )
---
updated-dependencies:
- dependency-name: coverage
dependency-version: 7.15.2
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-16 09:07:31 +02:00
Soxoj and GitHub
c436174467
Improve CONTRIBUTING.md ( #2871 )
2026-07-15 17:23:53 +02:00
Soxoj and GitHub
9d29061e2a
Fix site checks: 2 fixed, 1 new added + proton activation method ( #2869 )
2026-07-15 12:30:00 +02:00
3bb6dcc6ca
build(deps): bump asgiref from 3.11.1 to 3.12.1 ( #2868 )
...
Bumps [asgiref](https://github.com/django/asgiref ) from 3.11.1 to 3.12.1.
- [Changelog](https://github.com/django/asgiref/blob/main/CHANGELOG.txt )
- [Commits](https://github.com/django/asgiref/compare/3.11.1...3.12.1 )
---
updated-dependencies:
- dependency-name: asgiref
dependency-version: 3.12.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-15 09:59:03 +02:00
ccae3c4f12
build(deps-dev): bump mypy from 2.2.0 to 2.3.0 ( #2865 )
...
Bumps [mypy](https://github.com/python/mypy ) from 2.2.0 to 2.3.0.
- [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md )
- [Commits](https://github.com/python/mypy/compare/v2.2.0...v2.3.0 )
---
updated-dependencies:
- dependency-name: mypy
dependency-version: 2.3.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-14 16:16:53 +02:00
Danilo Salve and GitHub
de7875d236
chore: clean up imports and replace list()[0] with next(iter()) ( #2816 )
...
Two safe, mechanical changes:
- activation.py: replace `list(domain.values())[0]` with
`next(iter(domain.values()))` in import_aiohttp_cookies to avoid
materializing the entire iterable just to grab the first dict.
- checking.py: reorganize imports to PEP 8 order (stdlib, third-party,
local). `from unittest.mock import Mock` and the stdlib `quote`
import move into the stdlib section; `python_socks` and
`socid_extractor` move into third-party; `from .error_detection import
detect_error_page` and the `from .` local imports move into the local
section.
No behavioral change. Same diff shape as 2484509 -> HEAD for these two
files minus the else-removal work.
2026-07-13 20:03:32 +02:00
b74a063f49
fix: explicit SKIPPED status for Tor/I2P/DNS sites when no proxy is configured ( #2815 )
...
Fixes #2664
Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com >
2026-07-13 20:02:35 +02:00
Soxoj and GitHub
6ced77f894
Bump to 0.6.3 ( #2863 )
2026-07-13 18:06:51 +02:00
a8df8a219c
build(deps-dev): bump coverage from 7.15.0 to 7.15.1 ( #2862 )
...
---
updated-dependencies:
- dependency-name: coverage
dependency-version: 7.15.1
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-13 09:09:15 +02:00
03a9e2e2be
Updated site list and statistics ( #2861 )
...
Co-authored-by: soxoj <31013580+soxoj@users.noreply.github.com >
2026-07-11 18:15:24 +02:00
Soxoj and GitHub
9842d8cf1f
Fix site checks: 14 fixed, 5 disabled ( #2860 )
2026-07-11 16:02:16 +02:00
Thiago Galery and GitHub
c6147b2b19
fix(data): tag Pixwox with cf_firewall so --cloudflare-bypass triggers ( #2847 )
...
Pixwox's protection was tagged only ip_reputation, but its actual
failure mode is a Cloudflare "Just a moment" JS challenge. Since
build_cloudflare_bypass_config() only activates the bypass module for
sites whose protection matches trigger_protection
(cf_js_challenge/cf_firewall/webgate), --cloudflare-bypass was
silently never invoked for Pixwox even with a working FlareSolverr
instance configured.
Verified FlareSolverr solves the exact URL directly (200, real
profile HTML) — the gap was purely in the trigger match, not the
solver.
Fixes #2845
2026-07-09 21:28:48 +02:00
3db4c8779b
build(deps-dev): bump mypy from 2.1.0 to 2.2.0 ( #2844 )
...
Bumps [mypy](https://github.com/python/mypy ) from 2.1.0 to 2.2.0.
- [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md )
- [Commits](https://github.com/python/mypy/compare/v2.1.0...v2.2.0 )
---
updated-dependencies:
- dependency-name: mypy
dependency-version: 2.2.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-09 21:28:21 +02:00
Soxoj and GitHub
08d032a4a0
Update README with sponsor info ( #2854 )
2026-07-09 20:36:55 +02:00
Soxoj and GitHub
3e23cae384
Update sponsor info ( #2841 )
2026-07-06 12:41:21 +02:00
Soxoj and GitHub
6d57f58234
Add 5 new sites ( #2840 )
2026-07-05 20:49:14 +02:00
Soxoj and GitHub
e352e1dff7
Add 10 new sites ( #2839 )
2026-07-05 20:10:29 +02:00
Soxoj and GitHub
897769dcc2
Fix site checks: 82 fixed, 11 disabled + DiscourseJson engine ( #2836 )
...
* Fix site checks: 82 fixed, 11 disabled + DiscourseJson engine
* Fix test_hackernews_requires_profile_marker: update test body to JSON format matching Firebase API probe
2026-07-05 13:28:46 +02:00
Soxoj and GitHub
c74bad1ebf
Fix site checks: 13 fixed, 7 disabled + CN sites: Tuchong, GitCode, Yuque, LeetCode CN, Bangumi, NGA, Moegirl ( #2835 )
2026-07-04 22:51:50 +02:00
Soxoj and GitHub
b11a62abc0
Fix site checks: 6 fixed, 1 disabled ( #2834 )
2026-07-04 19:03:49 +02:00
Soxoj and GitHub
28de12f361
Sponsorship update ( #2833 )
2026-07-04 15:41:47 +02:00
f380208012
build(deps): bump typing-extensions from 4.15.0 to 4.16.0 ( #2832 )
...
Bumps [typing-extensions](https://github.com/python/typing_extensions ) from 4.15.0 to 4.16.0.
- [Release notes](https://github.com/python/typing_extensions/releases )
- [Changelog](https://github.com/python/typing_extensions/blob/main/CHANGELOG.md )
- [Commits](https://github.com/python/typing_extensions/compare/4.15.0...4.16.0 )
---
updated-dependencies:
- dependency-name: typing-extensions
dependency-version: 4.16.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-03 17:58:41 +02:00
ee5f7fa109
build(deps-dev): bump coverage from 7.14.3 to 7.15.0 ( #2831 )
...
Bumps [coverage](https://github.com/coveragepy/coveragepy ) from 7.14.3 to 7.15.0.
- [Release notes](https://github.com/coveragepy/coveragepy/releases )
- [Changelog](https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst )
- [Commits](https://github.com/coveragepy/coveragepy/compare/7.14.3...7.15.0 )
---
updated-dependencies:
- dependency-name: coverage
dependency-version: 7.15.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-03 17:58:29 +02:00
64a20be9a2
build(deps-dev): bump pytest-rerunfailures from 16.3 to 16.4 ( #2829 )
...
Bumps [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures ) from 16.3 to 16.4.
- [Changelog](https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst )
- [Commits](https://github.com/pytest-dev/pytest-rerunfailures/compare/16.3...16.4 )
---
updated-dependencies:
- dependency-name: pytest-rerunfailures
dependency-version: '16.4'
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-02 09:46:22 +02:00
fc5038bca8
fix: remove stray attribute from html tag in simple_report_pdf.tpl ( #2806 )
...
The opening <html> tag contains a malformed type="text/css" attribute
which makes the HTML invalid (leading > missing). In HTML5 the <html>
tag does not require any attributes.
Fixes the malformed HTML that appears in generated PDF reports.
Co-authored-by: yaqing <yyq1043-cloud@users.noreply.github.com >
2026-07-01 21:55:02 +02:00
Soxoj and GitHub
cfb28b492a
Bump to 0.6.2 ( #2827 )
...
* Bump to 0.6.2
* Release process automation
2026-07-01 17:32:50 +02:00
Soxoj and GitHub
e023dd441a
Fix site checks: 6 fixed, 5 disabled ( #2826 )
2026-07-01 14:36:57 +02:00
62a61a0310
build(deps): bump python-bidi from 0.6.10 to 0.6.11 ( #2825 )
...
Bumps [python-bidi](https://github.com/MeirKriheli/python-bidi ) from 0.6.10 to 0.6.11.
- [Release notes](https://github.com/MeirKriheli/python-bidi/releases )
- [Changelog](https://github.com/MeirKriheli/python-bidi/blob/master/CHANGELOG.rst )
- [Commits](https://github.com/MeirKriheli/python-bidi/compare/v0.6.10...v0.6.11 )
---
updated-dependencies:
- dependency-name: python-bidi
dependency-version: 0.6.11
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-01 11:30:16 +02:00
jichaowang02-lang and GitHub
af253d7dc3
Make include-tag site filter case-insensitive (match exclude filter) ( #2811 )
...
In MaigretDatabase.ranked_sites_dict, the include (whitelist) tag filter
compared the site's raw tags against the lowercased query tags:
is_tags_ok = lambda x: set(x.tags).intersection(set(normalized_tags))
while the exclude (blacklist) filter and every sibling lambda
(name/source/engine) lowercase the site-side value:
is_excluded_by_tag = lambda x: set(map(str.lower, x.tags)).intersection(
set(normalized_excluded_tags)
)
So a site stored with an upper/mixed-case tag (e.g. a custom or submitted
site tagged 'US') was excluded by `--exclude-tags us` but NOT found by
`--tags us` — an asymmetry between the two filters. Lowercase the site
tags in the include filter too, matching the rest of the method.
Adds a regression test asserting tags=['us'] finds a site tagged 'US'.
2026-06-29 22:05:00 +02:00
Soxoj and GitHub
7b08793e9d
Added docs for Neo4j integration ( #2818 )
2026-06-29 22:04:25 +02:00
Ali and GitHub
e41c4d7ee3
Add Neo4j Cypher export (--neo4j) ( #2774 )
...
Serialize the maigret graph (the same one --graph builds) into an idempotent Cypher script importable into Neo4j. Reuses MaigretGraph via an extracted _build_maigret_graph() helper, leaving save_graph_report behavior unchanged; no new runtime dependency. Adds the --neo4j flag, the neo4j_report setting, docs, and a unit test.
Closes #2630
2026-06-29 15:41:57 +02:00