{"adoption": {"forks": 245, "observed_at": "2026-08-28T04:05:14.513859+00:00", "stars": 1635}, "canonical_url": "https://ross.abutalabs.com/products/tonyjiangwj-ant-forest", "card": {"archived": false, "artifact_type": "application", "description": "基于AutoJS的蚂蚁森林收能量脚本", "domain": ["android-tools", "developer-tools"], "enriched": true, "function": ["workflow-automation", "image-processing", "machine-learning"], "health_score": 69, "homepage": null, "language": "JavaScript", "license": "GPL-2.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["TonyJiangWJ/Ant-Forest"], "name": "TonyJiangWJ/Ant-Forest", "platform": [], "pushed_at": "2025-12-20T09:39:27+00:00", "repo": "TonyJiangWJ/Ant-Forest", "stars": 1635, "tags": ["autojs", "ant-forest", "alipay", "energy-harvesting", "screen-automation", "ocr", "yolo", "automation", "android"], "topics": ["autojs", "javascript"], "urls": [], "use_cases": ["automatically collect Ant Forest energy from friends", "schedule energy collection based on countdown timers", "run energy collection across multiple Alipay accounts", "auto water friends' trees and run energy rain", "collect energy while phone screen is locked"], "what_it_is": "An AutoJS-based automation script for Android that automatically collects energy in Alipay's Ant Forest feature. It uses image recognition to detect energy balls, handles screen unlocking, multi-account switching, and schedules runs based on countdown timers.", "when_to_avoid": ["you don't use Android or Alipay's Ant Forest", "you can't install modified AutoJS apps or grant accessibility permissions", "you need a solution that doesn't rely on screen color/image recognition"], "when_to_choose": ["you use Alipay Ant Forest and want hands-free energy collection", "you need multi-account support with automatic switching", "you want configurable run modes like timed, loop, or always-on"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/tonyjiangwj-ant-forest", "repo": "TonyJiangWJ/Ant-Forest", "role": "main", "score": 58}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.513859+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:46:59.758679+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c143331766c435b74b451f7ae08f090d2b8818b6a23426ece964b5657808821", "fetched_at": "2026-08-28T04:05:14.513859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TonyJiangWJ/Ant-Forest"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.513859+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:46:59.758679+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c143331766c435b74b451f7ae08f090d2b8818b6a23426ece964b5657808821", "fetched_at": "2026-08-28T04:05:14.513859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TonyJiangWJ/Ant-Forest"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:46:59.758679+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c143331766c435b74b451f7ae08f090d2b8818b6a23426ece964b5657808821", "fetched_at": "2026-08-28T04:05:14.513859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TonyJiangWJ/Ant-Forest"}], "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:05:14.513859+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.513859+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.513859+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:46:59.758679+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c143331766c435b74b451f7ae08f090d2b8818b6a23426ece964b5657808821", "fetched_at": "2026-08-28T04:05:14.513859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TonyJiangWJ/Ant-Forest"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.513859+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.513859+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:46:59.758679+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c143331766c435b74b451f7ae08f090d2b8818b6a23426ece964b5657808821", "fetched_at": "2026-08-28T04:05:14.513859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TonyJiangWJ/Ant-Forest"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.513859+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.513859+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.513859+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:46:59.758679+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c143331766c435b74b451f7ae08f090d2b8818b6a23426ece964b5657808821", "fetched_at": "2026-08-28T04:05:14.513859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TonyJiangWJ/Ant-Forest"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.513859+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.513859+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:46:59.758679+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c143331766c435b74b451f7ae08f090d2b8818b6a23426ece964b5657808821", "fetched_at": "2026-08-28T04:05:14.513859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TonyJiangWJ/Ant-Forest"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:46:59.758679+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c143331766c435b74b451f7ae08f090d2b8818b6a23426ece964b5657808821", "fetched_at": "2026-08-28T04:05:14.513859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TonyJiangWJ/Ant-Forest"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:46:59.758679+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c143331766c435b74b451f7ae08f090d2b8818b6a23426ece964b5657808821", "fetched_at": "2026-08-28T04:05:14.513859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TonyJiangWJ/Ant-Forest"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:46:59.758679+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c143331766c435b74b451f7ae08f090d2b8818b6a23426ece964b5657808821", "fetched_at": "2026-08-28T04:05:14.513859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TonyJiangWJ/Ant-Forest"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 58, "longevity": 100, "rhythm": 33}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2459, "days_push": 256, "days_rel": 367, "gap_med": 67.0, "n_releases_24m": 3}, "score": 58, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}