{"adoption": {"forks": 73, "observed_at": "2026-08-28T04:06:05.016683+00:00", "stars": 2012}, "canonical_url": "https://ross.abutalabs.com/products/lightnovelreader", "card": {"archived": false, "artifact_type": "application", "description": "一款基于Compose的多数据源轻小说阅读器。支持epub导出，自定义背景样式，本地书架和更新提醒等功能。", "domain": ["entertainment", "mobile-development", "media", "cross-platform"], "enriched": true, "function": ["gui", "plugin-system", "web-scraping", "search-engine", "caching", "file-system"], "health_score": 98, "homepage": "https://lnr.nariko.org", "language": "Kotlin", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["dmzz-yyhyy/LightNovelReader"], "name": "dmzz-yyhyy/LightNovelReader", "platform": ["jvm"], "pushed_at": "2026-08-12T10:55:12+00:00", "repo": "dmzz-yyhyy/LightNovelReader", "stars": 2012, "tags": ["light-novel", "ebook-reader", "jetpack-compose", "material-design-3", "epub-export", "reading-app", "novel-reader", "offline-reading", "bookshelf", "data-source-plugins", "android", "mobile"], "topics": ["android", "jetpack-compose", "light-novel", "light-novel-reader", "material3", "meterial", "meterial-ui", "andriod-development", "android-app", "compose", "light-novels", "novel", "novels", "novels-search", "reader", "compose-material3"], "urls": [], "use_cases": ["read light novels on android", "export novels to epub files", "read novels offline with caching", "track book updates in a bookshelf", "add custom novel data source plugins", "search and discover new light novels", "customize reading theme and background"], "what_it_is": "LightNovelReader is an open-source Android light novel reader app built with Kotlin and Jetpack Compose, featuring a lightweight footprint and smooth reading experience. It supports multiple pluggable data sources, offline reading with caching, bookshelves with update notifications, and EPUB export.", "when_to_avoid": ["you need an iOS or desktop reader", "you want a desktop e-book manager like Calibre", "you only read local EPUB/PDF files rather than online sources"], "when_to_choose": ["you want a modern Compose-based Android novel reader with Material Design 3", "you need multi-source support and plugin extensibility", "you want offline reading and EPUB export", "you read on Android 7.0 through 15 and want a small app"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/lightnovelreader", "repo": "dmzz-yyhyy/LightNovelReader", "role": "main", "score": 89}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.016683+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:01:01.932940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1efdb5c05c050a3a8c1284146b0b19bc5518b7b43bf1a3596e29b4112a2a5eee", "fetched_at": "2026-08-28T04:06:05.016683+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmzz-yyhyy/LightNovelReader"}, {"content_hash": "54bcfcdfd91083d249fe135cf87e7d3714f9f84eddff230a17c77270ed209380", "fetched_at": "2026-08-29T10:40:56.270984+00:00", "kind": "homepage", "missing": false, "url": "https://lnr.nariko.org"}, {"content_hash": "6b7e4a7b0cada02a1870cb04211d63587c37dc21185c7c20f407dda341051e77", "fetched_at": "2026-08-29T10:40:56.273495+00:00", "kind": "site_page", "missing": false, "url": "https://lnr.nariko.org/docs"}, {"content_hash": "d9e4d4e23aa029eda695c61687ea1da70b19b3aa298e23b7302ca325daf31e41", "fetched_at": "2026-08-29T10:40:56.275287+00:00", "kind": "site_page", "missing": false, "url": "https://lnr.nariko.org/docs/changelogs"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.016683+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:01:01.932940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1efdb5c05c050a3a8c1284146b0b19bc5518b7b43bf1a3596e29b4112a2a5eee", "fetched_at": "2026-08-28T04:06:05.016683+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmzz-yyhyy/LightNovelReader"}, {"content_hash": "54bcfcdfd91083d249fe135cf87e7d3714f9f84eddff230a17c77270ed209380", "fetched_at": "2026-08-29T10:40:56.270984+00:00", "kind": "homepage", "missing": false, "url": "https://lnr.nariko.org"}, {"content_hash": "6b7e4a7b0cada02a1870cb04211d63587c37dc21185c7c20f407dda341051e77", "fetched_at": "2026-08-29T10:40:56.273495+00:00", "kind": "site_page", "missing": false, "url": "https://lnr.nariko.org/docs"}, {"content_hash": "d9e4d4e23aa029eda695c61687ea1da70b19b3aa298e23b7302ca325daf31e41", "fetched_at": "2026-08-29T10:40:56.275287+00:00", "kind": "site_page", "missing": false, "url": "https://lnr.nariko.org/docs/changelogs"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:01:01.932940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1efdb5c05c050a3a8c1284146b0b19bc5518b7b43bf1a3596e29b4112a2a5eee", "fetched_at": "2026-08-28T04:06:05.016683+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmzz-yyhyy/LightNovelReader"}, {"content_hash": "54bcfcdfd91083d249fe135cf87e7d3714f9f84eddff230a17c77270ed209380", "fetched_at": "2026-08-29T10:40:56.270984+00:00", "kind": "homepage", "missing": false, "url": "https://lnr.nariko.org"}, {"content_hash": "6b7e4a7b0cada02a1870cb04211d63587c37dc21185c7c20f407dda341051e77", "fetched_at": "2026-08-29T10:40:56.273495+00:00", "kind": "site_page", "missing": false, "url": "https://lnr.nariko.org/docs"}, {"content_hash": "d9e4d4e23aa029eda695c61687ea1da70b19b3aa298e23b7302ca325daf31e41", "fetched_at": "2026-08-29T10:40:56.275287+00:00", "kind": "site_page", "missing": false, "url": "https://lnr.nariko.org/docs/changelogs"}], "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:06:05.016683+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.016683+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.016683+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:01:01.932940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1efdb5c05c050a3a8c1284146b0b19bc5518b7b43bf1a3596e29b4112a2a5eee", "fetched_at": "2026-08-28T04:06:05.016683+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmzz-yyhyy/LightNovelReader"}, {"content_hash": "54bcfcdfd91083d249fe135cf87e7d3714f9f84eddff230a17c77270ed209380", "fetched_at": "2026-08-29T10:40:56.270984+00:00", "kind": "homepage", "missing": false, "url": "https://lnr.nariko.org"}, {"content_hash": "6b7e4a7b0cada02a1870cb04211d63587c37dc21185c7c20f407dda341051e77", "fetched_at": "2026-08-29T10:40:56.273495+00:00", "kind": "site_page", "missing": false, "url": "https://lnr.nariko.org/docs"}, {"content_hash": "d9e4d4e23aa029eda695c61687ea1da70b19b3aa298e23b7302ca325daf31e41", "fetched_at": "2026-08-29T10:40:56.275287+00:00", "kind": "site_page", "missing": false, "url": "https://lnr.nariko.org/docs/changelogs"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.016683+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.016683+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:01:01.932940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1efdb5c05c050a3a8c1284146b0b19bc5518b7b43bf1a3596e29b4112a2a5eee", "fetched_at": "2026-08-28T04:06:05.016683+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmzz-yyhyy/LightNovelReader"}, {"content_hash": "54bcfcdfd91083d249fe135cf87e7d3714f9f84eddff230a17c77270ed209380", "fetched_at": "2026-08-29T10:40:56.270984+00:00", "kind": "homepage", "missing": false, "url": "https://lnr.nariko.org"}, {"content_hash": "6b7e4a7b0cada02a1870cb04211d63587c37dc21185c7c20f407dda341051e77", "fetched_at": "2026-08-29T10:40:56.273495+00:00", "kind": "site_page", "missing": false, "url": "https://lnr.nariko.org/docs"}, {"content_hash": "d9e4d4e23aa029eda695c61687ea1da70b19b3aa298e23b7302ca325daf31e41", "fetched_at": "2026-08-29T10:40:56.275287+00:00", "kind": "site_page", "missing": false, "url": "https://lnr.nariko.org/docs/changelogs"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.016683+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.016683+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.016683+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:01:01.932940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1efdb5c05c050a3a8c1284146b0b19bc5518b7b43bf1a3596e29b4112a2a5eee", "fetched_at": "2026-08-28T04:06:05.016683+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmzz-yyhyy/LightNovelReader"}, {"content_hash": "54bcfcdfd91083d249fe135cf87e7d3714f9f84eddff230a17c77270ed209380", "fetched_at": "2026-08-29T10:40:56.270984+00:00", "kind": "homepage", "missing": false, "url": "https://lnr.nariko.org"}, {"content_hash": "6b7e4a7b0cada02a1870cb04211d63587c37dc21185c7c20f407dda341051e77", "fetched_at": "2026-08-29T10:40:56.273495+00:00", "kind": "site_page", "missing": false, "url": "https://lnr.nariko.org/docs"}, {"content_hash": "d9e4d4e23aa029eda695c61687ea1da70b19b3aa298e23b7302ca325daf31e41", "fetched_at": "2026-08-29T10:40:56.275287+00:00", "kind": "site_page", "missing": false, "url": "https://lnr.nariko.org/docs/changelogs"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.016683+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.016683+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:01:01.932940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1efdb5c05c050a3a8c1284146b0b19bc5518b7b43bf1a3596e29b4112a2a5eee", "fetched_at": "2026-08-28T04:06:05.016683+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmzz-yyhyy/LightNovelReader"}, {"content_hash": "54bcfcdfd91083d249fe135cf87e7d3714f9f84eddff230a17c77270ed209380", "fetched_at": "2026-08-29T10:40:56.270984+00:00", "kind": "homepage", "missing": false, "url": "https://lnr.nariko.org"}, {"content_hash": "6b7e4a7b0cada02a1870cb04211d63587c37dc21185c7c20f407dda341051e77", "fetched_at": "2026-08-29T10:40:56.273495+00:00", "kind": "site_page", "missing": false, "url": "https://lnr.nariko.org/docs"}, {"content_hash": "d9e4d4e23aa029eda695c61687ea1da70b19b3aa298e23b7302ca325daf31e41", "fetched_at": "2026-08-29T10:40:56.275287+00:00", "kind": "site_page", "missing": false, "url": "https://lnr.nariko.org/docs/changelogs"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:01:01.932940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1efdb5c05c050a3a8c1284146b0b19bc5518b7b43bf1a3596e29b4112a2a5eee", "fetched_at": "2026-08-28T04:06:05.016683+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmzz-yyhyy/LightNovelReader"}, {"content_hash": "54bcfcdfd91083d249fe135cf87e7d3714f9f84eddff230a17c77270ed209380", "fetched_at": "2026-08-29T10:40:56.270984+00:00", "kind": "homepage", "missing": false, "url": "https://lnr.nariko.org"}, {"content_hash": "6b7e4a7b0cada02a1870cb04211d63587c37dc21185c7c20f407dda341051e77", "fetched_at": "2026-08-29T10:40:56.273495+00:00", "kind": "site_page", "missing": false, "url": "https://lnr.nariko.org/docs"}, {"content_hash": "d9e4d4e23aa029eda695c61687ea1da70b19b3aa298e23b7302ca325daf31e41", "fetched_at": "2026-08-29T10:40:56.275287+00:00", "kind": "site_page", "missing": false, "url": "https://lnr.nariko.org/docs/changelogs"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:01:01.932940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1efdb5c05c050a3a8c1284146b0b19bc5518b7b43bf1a3596e29b4112a2a5eee", "fetched_at": "2026-08-28T04:06:05.016683+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmzz-yyhyy/LightNovelReader"}, {"content_hash": "54bcfcdfd91083d249fe135cf87e7d3714f9f84eddff230a17c77270ed209380", "fetched_at": "2026-08-29T10:40:56.270984+00:00", "kind": "homepage", "missing": false, "url": "https://lnr.nariko.org"}, {"content_hash": "6b7e4a7b0cada02a1870cb04211d63587c37dc21185c7c20f407dda341051e77", "fetched_at": "2026-08-29T10:40:56.273495+00:00", "kind": "site_page", "missing": false, "url": "https://lnr.nariko.org/docs"}, {"content_hash": "d9e4d4e23aa029eda695c61687ea1da70b19b3aa298e23b7302ca325daf31e41", "fetched_at": "2026-08-29T10:40:56.275287+00:00", "kind": "site_page", "missing": false, "url": "https://lnr.nariko.org/docs/changelogs"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:01:01.932940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1efdb5c05c050a3a8c1284146b0b19bc5518b7b43bf1a3596e29b4112a2a5eee", "fetched_at": "2026-08-28T04:06:05.016683+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmzz-yyhyy/LightNovelReader"}, {"content_hash": "54bcfcdfd91083d249fe135cf87e7d3714f9f84eddff230a17c77270ed209380", "fetched_at": "2026-08-29T10:40:56.270984+00:00", "kind": "homepage", "missing": false, "url": "https://lnr.nariko.org"}, {"content_hash": "6b7e4a7b0cada02a1870cb04211d63587c37dc21185c7c20f407dda341051e77", "fetched_at": "2026-08-29T10:40:56.273495+00:00", "kind": "site_page", "missing": false, "url": "https://lnr.nariko.org/docs"}, {"content_hash": "d9e4d4e23aa029eda695c61687ea1da70b19b3aa298e23b7302ca325daf31e41", "fetched_at": "2026-08-29T10:40:56.275287+00:00", "kind": "site_page", "missing": false, "url": "https://lnr.nariko.org/docs/changelogs"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 86, "rhythm": 81}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1213, "days_push": 21, "days_rel": 47, "gap_med": 36, "n_releases_24m": 12}, "score": 89, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}