{"adoption": {"forks": 591, "observed_at": "2026-08-28T04:08:40.671567+00:00", "stars": 4264}, "canonical_url": "https://ross.abutalabs.com/products/hoothin-userscripts", "card": {"archived": false, "artifact_type": "plugin", "description": "Greasemonkey scripts ( Pagetual / Picviewer CE+ / DownloadAllContent ) 油猴腳本集 ユーザースクリプト集", "domain": ["browser-extensions", "developer-tools", "web-development", "crawlers"], "enriched": true, "function": ["web-scraping", "image-processing", "developer-tools", "workflow-automation", "browser-extension"], "health_score": 78, "homepage": "https://greasyfork.org/users/8227-hoothin", "language": "JavaScript", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["hoothin/UserScripts"], "name": "hoothin/UserScripts", "platform": ["browser", "browser-extension"], "pushed_at": "2026-08-12T07:46:30+00:00", "repo": "hoothin/UserScripts", "stars": 4264, "tags": ["userscript", "greasemonkey", "tampermonkey", "auto-pager", "infinite-scroll", "image-viewer", "novel-downloader", "content-downloader", "search-enhancement", "automation", "javascript"], "topics": ["auto-scroll", "autopager", "autopagerize", "greasemonkey", "infinite-scrolling", "userscript", "tampermonkey", "novel-downloader", "picture-download", "picture-gallery", "image-downloader", "image-enlarger", "image-zoomer", "add-on", "chrome-extension", "firefox-addon", "infinite-scroll", "zoom-images", "hoverzoom", "productivity"], "urls": [], "use_cases": ["automatically load next pages for infinite scrolling", "download novels or main text content from web pages", "view, zoom, rotate, and batch save images on any site", "search selected text across multiple search engines", "convert between simplified and traditional Chinese on webpages", "find magnet links and torrents on a page", "select all checkboxes at once"], "what_it_is": "A collection of Greasemonkey/Tampermonkey userscripts by hoothin, including Pagetual (auto-pager infinite scrolling), Picviewer CE+ (online image viewing and batch saving), and DownloadAllContent (web content/novel scraping). The scripts run in browsers via userscript managers on Chrome, Firefox, and Edge.", "when_to_avoid": ["you need a standalone application or a native browser extension rather than a userscript", "you cannot or do not want to install a userscript manager", "you need a single-purpose tool with a formal support channel or license guarantee"], "when_to_choose": ["you use Tampermonkey/Greasemonkey and want to enhance browsing without installing full extensions", "you want infinite scrolling on paginated sites without per-site rules", "you frequently save or inspect images while browsing", "you want to scrape and download text content like web novels"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/hoothin-userscripts", "repo": "hoothin/UserScripts", "role": "main", "score": 76}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:40.671567+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:22:04.070554+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd182bc5ce306db48c651015341122bb35bfabfbb195f4b48ea0553cfd929f57", "fetched_at": "2026-08-28T04:08:40.671567+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hoothin/UserScripts"}, {"content_hash": "df37991ed9fcb295b95c354bde7f2f8eda2e83af9708a915ad0ffa0036ae2e71", "fetched_at": "2026-08-29T09:11:54.422229+00:00", "kind": "homepage", "missing": false, "url": "https://greasyfork.org/users/8227-hoothin"}, {"content_hash": "9ec089e8bd07293eeb71a4c998e747b3b5be83a9cc28fa51de8abfb5203750c9", "fetched_at": "2026-08-29T09:11:54.431883+00:00", "kind": "site_page", "missing": false, "url": "https://greasyfork.org/en/users/8227-hoothin?sort=total_installs"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:40.671567+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:22:04.070554+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd182bc5ce306db48c651015341122bb35bfabfbb195f4b48ea0553cfd929f57", "fetched_at": "2026-08-28T04:08:40.671567+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hoothin/UserScripts"}, {"content_hash": "df37991ed9fcb295b95c354bde7f2f8eda2e83af9708a915ad0ffa0036ae2e71", "fetched_at": "2026-08-29T09:11:54.422229+00:00", "kind": "homepage", "missing": false, "url": "https://greasyfork.org/users/8227-hoothin"}, {"content_hash": "9ec089e8bd07293eeb71a4c998e747b3b5be83a9cc28fa51de8abfb5203750c9", "fetched_at": "2026-08-29T09:11:54.431883+00:00", "kind": "site_page", "missing": false, "url": "https://greasyfork.org/en/users/8227-hoothin?sort=total_installs"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:22:04.070554+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd182bc5ce306db48c651015341122bb35bfabfbb195f4b48ea0553cfd929f57", "fetched_at": "2026-08-28T04:08:40.671567+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hoothin/UserScripts"}, {"content_hash": "df37991ed9fcb295b95c354bde7f2f8eda2e83af9708a915ad0ffa0036ae2e71", "fetched_at": "2026-08-29T09:11:54.422229+00:00", "kind": "homepage", "missing": false, "url": "https://greasyfork.org/users/8227-hoothin"}, {"content_hash": "9ec089e8bd07293eeb71a4c998e747b3b5be83a9cc28fa51de8abfb5203750c9", "fetched_at": "2026-08-29T09:11:54.431883+00:00", "kind": "site_page", "missing": false, "url": "https://greasyfork.org/en/users/8227-hoothin?sort=total_installs"}], "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:40.671567+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:40.671567+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:40.671567+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:22:04.070554+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd182bc5ce306db48c651015341122bb35bfabfbb195f4b48ea0553cfd929f57", "fetched_at": "2026-08-28T04:08:40.671567+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hoothin/UserScripts"}, {"content_hash": "df37991ed9fcb295b95c354bde7f2f8eda2e83af9708a915ad0ffa0036ae2e71", "fetched_at": "2026-08-29T09:11:54.422229+00:00", "kind": "homepage", "missing": false, "url": "https://greasyfork.org/users/8227-hoothin"}, {"content_hash": "9ec089e8bd07293eeb71a4c998e747b3b5be83a9cc28fa51de8abfb5203750c9", "fetched_at": "2026-08-29T09:11:54.431883+00:00", "kind": "site_page", "missing": false, "url": "https://greasyfork.org/en/users/8227-hoothin?sort=total_installs"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:40.671567+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:40.671567+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:22:04.070554+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd182bc5ce306db48c651015341122bb35bfabfbb195f4b48ea0553cfd929f57", "fetched_at": "2026-08-28T04:08:40.671567+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hoothin/UserScripts"}, {"content_hash": "df37991ed9fcb295b95c354bde7f2f8eda2e83af9708a915ad0ffa0036ae2e71", "fetched_at": "2026-08-29T09:11:54.422229+00:00", "kind": "homepage", "missing": false, "url": "https://greasyfork.org/users/8227-hoothin"}, {"content_hash": "9ec089e8bd07293eeb71a4c998e747b3b5be83a9cc28fa51de8abfb5203750c9", "fetched_at": "2026-08-29T09:11:54.431883+00:00", "kind": "site_page", "missing": false, "url": "https://greasyfork.org/en/users/8227-hoothin?sort=total_installs"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:40.671567+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:40.671567+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:40.671567+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:22:04.070554+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd182bc5ce306db48c651015341122bb35bfabfbb195f4b48ea0553cfd929f57", "fetched_at": "2026-08-28T04:08:40.671567+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hoothin/UserScripts"}, {"content_hash": "df37991ed9fcb295b95c354bde7f2f8eda2e83af9708a915ad0ffa0036ae2e71", "fetched_at": "2026-08-29T09:11:54.422229+00:00", "kind": "homepage", "missing": false, "url": "https://greasyfork.org/users/8227-hoothin"}, {"content_hash": "9ec089e8bd07293eeb71a4c998e747b3b5be83a9cc28fa51de8abfb5203750c9", "fetched_at": "2026-08-29T09:11:54.431883+00:00", "kind": "site_page", "missing": false, "url": "https://greasyfork.org/en/users/8227-hoothin?sort=total_installs"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:40.671567+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:40.671567+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:22:04.070554+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd182bc5ce306db48c651015341122bb35bfabfbb195f4b48ea0553cfd929f57", "fetched_at": "2026-08-28T04:08:40.671567+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hoothin/UserScripts"}, {"content_hash": "df37991ed9fcb295b95c354bde7f2f8eda2e83af9708a915ad0ffa0036ae2e71", "fetched_at": "2026-08-29T09:11:54.422229+00:00", "kind": "homepage", "missing": false, "url": "https://greasyfork.org/users/8227-hoothin"}, {"content_hash": "9ec089e8bd07293eeb71a4c998e747b3b5be83a9cc28fa51de8abfb5203750c9", "fetched_at": "2026-08-29T09:11:54.431883+00:00", "kind": "site_page", "missing": false, "url": "https://greasyfork.org/en/users/8227-hoothin?sort=total_installs"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:22:04.070554+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd182bc5ce306db48c651015341122bb35bfabfbb195f4b48ea0553cfd929f57", "fetched_at": "2026-08-28T04:08:40.671567+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hoothin/UserScripts"}, {"content_hash": "df37991ed9fcb295b95c354bde7f2f8eda2e83af9708a915ad0ffa0036ae2e71", "fetched_at": "2026-08-29T09:11:54.422229+00:00", "kind": "homepage", "missing": false, "url": "https://greasyfork.org/users/8227-hoothin"}, {"content_hash": "9ec089e8bd07293eeb71a4c998e747b3b5be83a9cc28fa51de8abfb5203750c9", "fetched_at": "2026-08-29T09:11:54.431883+00:00", "kind": "site_page", "missing": false, "url": "https://greasyfork.org/en/users/8227-hoothin?sort=total_installs"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:22:04.070554+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd182bc5ce306db48c651015341122bb35bfabfbb195f4b48ea0553cfd929f57", "fetched_at": "2026-08-28T04:08:40.671567+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hoothin/UserScripts"}, {"content_hash": "df37991ed9fcb295b95c354bde7f2f8eda2e83af9708a915ad0ffa0036ae2e71", "fetched_at": "2026-08-29T09:11:54.422229+00:00", "kind": "homepage", "missing": false, "url": "https://greasyfork.org/users/8227-hoothin"}, {"content_hash": "9ec089e8bd07293eeb71a4c998e747b3b5be83a9cc28fa51de8abfb5203750c9", "fetched_at": "2026-08-29T09:11:54.431883+00:00", "kind": "site_page", "missing": false, "url": "https://greasyfork.org/en/users/8227-hoothin?sort=total_installs"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:22:04.070554+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd182bc5ce306db48c651015341122bb35bfabfbb195f4b48ea0553cfd929f57", "fetched_at": "2026-08-28T04:08:40.671567+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hoothin/UserScripts"}, {"content_hash": "df37991ed9fcb295b95c354bde7f2f8eda2e83af9708a915ad0ffa0036ae2e71", "fetched_at": "2026-08-29T09:11:54.422229+00:00", "kind": "homepage", "missing": false, "url": "https://greasyfork.org/users/8227-hoothin"}, {"content_hash": "9ec089e8bd07293eeb71a4c998e747b3b5be83a9cc28fa51de8abfb5203750c9", "fetched_at": "2026-08-29T09:11:54.431883+00:00", "kind": "site_page", "missing": false, "url": "https://greasyfork.org/en/users/8227-hoothin?sort=total_installs"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3616, "days_push": 21, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 76, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}