{"adoption": {"forks": 318, "observed_at": "2026-08-28T04:08:05.901424+00:00", "stars": 3469}, "canonical_url": "https://ross.abutalabs.com/products/qnotified", "card": {"archived": true, "artifact_type": "plugin", "description": "一个旨在使QQ变得更好用的开源Xposed模块", "domain": ["android-tools", "privacy", "messaging-platforms"], "enriched": true, "function": ["security", "developer-tools", "plugin-system"], "health_score": 10, "homepage": null, "language": "Java", "license": "NOASSERTION", "license_family": "other", "maturity": "maintenance", "member_repos": ["ferredoxin/QNotified"], "name": "ferredoxin/QNotified", "platform": ["jvm"], "pushed_at": "2023-02-13T07:17:41+00:00", "repo": "ferredoxin/QNotified", "stars": 3469, "tags": ["xposed-module", "qq", "tim", "anti-revoke", "chat-enhancement", "root", "automation", "android"], "topics": ["xposed", "qq", "xposed-module"], "urls": [], "use_cases": ["prevent qq messages from being revoked", "view flash photos as normal images in qq", "hide qq mini program entries and red dots", "forward voice messages in qq", "export qq friend list and detect deleted friends", "customize qq chat bubbles and avatars", "block qq update prompts and like notifications"], "what_it_is": "QNotified is an open-source Xposed module that enhances the QQ/TIM Android messaging apps with dozens of quality-of-life tweaks. It adds features like anti-message-revoke, flash photo viewing, message forwarding, UI cleanup, and notification filtering, activated from within QQ's settings.", "when_to_avoid": ["your device is not rooted or lacks an Xposed framework", "you want features like auto-grabbing red packets, which the project explicitly refuses to support", "you need a module with guaranteed long-term maintenance, as the team may stop development at any time", "you cannot accept the project's custom non-commercial EULA"], "when_to_choose": ["you use QQ or TIM on a rooted Android device with Xposed/LSPosed", "you want fine-grained control over QQ's UI, notifications, and message behavior", "you want an open-source, free alternative to paid QQ enhancement modules"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/qnotified", "repo": "ferredoxin/QNotified", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.901424+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:36:38.936618+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "76d3b5622823057fd917479ce8fe4f0fadb5e8fe06ee08baabe0678d52f31c95", "fetched_at": "2026-08-28T04:08:05.901424+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ferredoxin/QNotified"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.901424+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:36:38.936618+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "76d3b5622823057fd917479ce8fe4f0fadb5e8fe06ee08baabe0678d52f31c95", "fetched_at": "2026-08-28T04:08:05.901424+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ferredoxin/QNotified"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:36:38.936618+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "76d3b5622823057fd917479ce8fe4f0fadb5e8fe06ee08baabe0678d52f31c95", "fetched_at": "2026-08-28T04:08:05.901424+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ferredoxin/QNotified"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.901424+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.901424+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.901424+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:36:38.936618+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "76d3b5622823057fd917479ce8fe4f0fadb5e8fe06ee08baabe0678d52f31c95", "fetched_at": "2026-08-28T04:08:05.901424+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ferredoxin/QNotified"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.901424+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.901424+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:36:38.936618+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "76d3b5622823057fd917479ce8fe4f0fadb5e8fe06ee08baabe0678d52f31c95", "fetched_at": "2026-08-28T04:08:05.901424+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ferredoxin/QNotified"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.901424+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.901424+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.901424+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:36:38.936618+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "76d3b5622823057fd917479ce8fe4f0fadb5e8fe06ee08baabe0678d52f31c95", "fetched_at": "2026-08-28T04:08:05.901424+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ferredoxin/QNotified"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.901424+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.901424+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:36:38.936618+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "76d3b5622823057fd917479ce8fe4f0fadb5e8fe06ee08baabe0678d52f31c95", "fetched_at": "2026-08-28T04:08:05.901424+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ferredoxin/QNotified"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:36:38.936618+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "76d3b5622823057fd917479ce8fe4f0fadb5e8fe06ee08baabe0678d52f31c95", "fetched_at": "2026-08-28T04:08:05.901424+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ferredoxin/QNotified"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:36:38.936618+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "76d3b5622823057fd917479ce8fe4f0fadb5e8fe06ee08baabe0678d52f31c95", "fetched_at": "2026-08-28T04:08:05.901424+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ferredoxin/QNotified"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:36:38.936618+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "76d3b5622823057fd917479ce8fe4f0fadb5e8fe06ee08baabe0678d52f31c95", "fetched_at": "2026-08-28T04:08:05.901424+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ferredoxin/QNotified"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["archived", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2719, "days_push": 1297, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}