{"adoption": {"forks": 876, "observed_at": "2026-08-28T04:08:39.509062+00:00", "stars": 4235}, "canonical_url": "https://ross.abutalabs.com/products/jdbuyer", "card": {"archived": false, "artifact_type": "application", "description": "京东抢购自动下单助手，GUI 支持 Windows 和 macOS", "domain": ["e-commerce", "developer-tools"], "enriched": true, "function": ["gui", "workflow-automation", "monitoring", "web-scraping", "scheduling"], "health_score": 20, "homepage": null, "language": "Python", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["zas023/JdBuyer"], "name": "zas023/JdBuyer", "platform": ["windows", "python", "cross-platform"], "pushed_at": "2023-08-02T06:51:22+00:00", "repo": "zas023/JdBuyer", "stars": 4235, "tags": ["jd", "jd-buyer", "auto-purchase", "stock-monitoring", "auto-checkout", "sniping-bot", "wechat-notification", "qr-code-login", "gui-app", "chinese-marketplace", "automation", "macos", "desktop"], "topics": [], "urls": [], "use_cases": ["automatically buy out-of-stock products on JD.com", "monitor JD product inventory and auto-checkout when restocked", "snipe limited-stock items on Jingdong before scalpers", "auto-place orders for JD presale items with deposit", "get WeChat notification when JD auto-purchase succeeds", "run a JD auto-buy bot with GUI on Windows or macOS"], "what_it_is": "JdBuyer is a Python-based desktop application that monitors JD.com (Jingdong) product stock availability and automatically attempts to place purchase orders when items become available. It offers both a GUI mode for Windows and macOS and a shell script mode, with support for QR code login, configurable stock polling intervals, and WeChat notifications upon successful orders.", "when_to_avoid": ["you need automated purchasing for e-commerce platforms other than JD.com", "you require a guaranteed successful order on high-demand items - stock detection does not ensure checkout success", "you need a maintained tool with an explicit license or active development - the project has no license and its latest release dates to August 2023", "you want a headless server-side solution without a desktop GUI or local configuration"], "when_to_choose": ["you want a ready-to-run GUI app for JD auto-purchasing on Windows or macOS", "you need 24/7 stock monitoring with automatic order placement on JD.com", "you want QR code login and WeChat order notifications out of the box", "you prefer configuring purchase parameters (SKU, area ID, quantity, polling interval) through a simple interface"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/jdbuyer", "repo": "zas023/JdBuyer", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:39.509062+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:22:18.740794+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f0fcc38ee147e7fa2ead602deca4c3392b7d91c82da48c21e238433aa15fc81", "fetched_at": "2026-08-28T04:08:39.509062+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zas023/JdBuyer"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:39.509062+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:22:18.740794+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f0fcc38ee147e7fa2ead602deca4c3392b7d91c82da48c21e238433aa15fc81", "fetched_at": "2026-08-28T04:08:39.509062+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zas023/JdBuyer"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:22:18.740794+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f0fcc38ee147e7fa2ead602deca4c3392b7d91c82da48c21e238433aa15fc81", "fetched_at": "2026-08-28T04:08:39.509062+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zas023/JdBuyer"}], "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:39.509062+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:39.509062+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:39.509062+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:22:18.740794+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f0fcc38ee147e7fa2ead602deca4c3392b7d91c82da48c21e238433aa15fc81", "fetched_at": "2026-08-28T04:08:39.509062+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zas023/JdBuyer"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:39.509062+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:39.509062+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:22:18.740794+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f0fcc38ee147e7fa2ead602deca4c3392b7d91c82da48c21e238433aa15fc81", "fetched_at": "2026-08-28T04:08:39.509062+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zas023/JdBuyer"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:39.509062+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:39.509062+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:39.509062+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:22:18.740794+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f0fcc38ee147e7fa2ead602deca4c3392b7d91c82da48c21e238433aa15fc81", "fetched_at": "2026-08-28T04:08:39.509062+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zas023/JdBuyer"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:39.509062+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:39.509062+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:22:18.740794+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f0fcc38ee147e7fa2ead602deca4c3392b7d91c82da48c21e238433aa15fc81", "fetched_at": "2026-08-28T04:08:39.509062+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zas023/JdBuyer"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:22:18.740794+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f0fcc38ee147e7fa2ead602deca4c3392b7d91c82da48c21e238433aa15fc81", "fetched_at": "2026-08-28T04:08:39.509062+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zas023/JdBuyer"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:22:18.740794+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f0fcc38ee147e7fa2ead602deca4c3392b7d91c82da48c21e238433aa15fc81", "fetched_at": "2026-08-28T04:08:39.509062+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zas023/JdBuyer"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:22:18.740794+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f0fcc38ee147e7fa2ead602deca4c3392b7d91c82da48c21e238433aa15fc81", "fetched_at": "2026-08-28T04:08:39.509062+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zas023/JdBuyer"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1510, "days_push": 1127, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}