{"id":51489795,"url":"https://github.com/rumor-thrower/novelpiaanalysis","last_synced_at":"2026-07-07T11:00:14.624Z","repository":{"id":369850309,"uuid":"1286401618","full_name":"rumor-thrower/NovelpiaAnalysis","owner":"rumor-thrower","description":"Analysis layer for Novelpia web-novel data (npia export ingestion, DataFrames, stats, charts)","archived":false,"fork":false,"pushed_at":"2026-07-07T07:08:15.000Z","size":25,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-07T08:18:24.009Z","etag":null,"topics":["data-analysis","novelpia","statistics","visualization","webnovel"],"latest_commit_sha":null,"homepage":"","language":"Julia","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rumor-thrower.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-07-01T18:40:06.000Z","updated_at":"2026-07-07T07:08:18.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/rumor-thrower/NovelpiaAnalysis","commit_stats":null,"previous_names":["rumor-thrower/novelpiaanalysis"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/rumor-thrower/NovelpiaAnalysis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rumor-thrower%2FNovelpiaAnalysis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rumor-thrower%2FNovelpiaAnalysis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rumor-thrower%2FNovelpiaAnalysis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rumor-thrower%2FNovelpiaAnalysis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rumor-thrower","download_url":"https://codeload.github.com/rumor-thrower/NovelpiaAnalysis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rumor-thrower%2FNovelpiaAnalysis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35225029,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-07T02:00:07.222Z","response_time":90,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-analysis","novelpia","statistics","visualization","webnovel"],"created_at":"2026-07-07T11:00:13.274Z","updated_at":"2026-07-07T11:00:14.611Z","avatar_url":"https://github.com/rumor-thrower.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NovelpiaAnalysis.jl\n\n[![CI](https://github.com/rumor-thrower/NovelpiaAnalysis/actions/workflows/CI.yml/badge.svg)](https://github.com/rumor-thrower/NovelpiaAnalysis/actions/workflows/CI.yml)\n\nAnalysis layer for Novelpia web-novel data — ingestion of `npia export` output,\nDataFrame shaping, summary statistics, and chart rendering. Built on top of the\nRust [`novelpia_api`](https://github.com/rumor-thrower/novelpia_api) / `npia` CLI.\n\n## Submodules\n\n- `Load` — reads an `npia export` output directory into typed DataFrames\n- `Frames` — derived columns (per-episode retention, cumulative views)\n- `Stats` — summary statistics and conditional-ratio helpers\n- `Charts` — shared SVG bar-chart renderer for analysis notebooks\n\n## Installation\n\nNot registered in the General registry. There is no package-level dependency on\nthe Rust side — the only coupling is the on-disk file contract produced by\n`npia export`:\n\n```julia\nusing Pkg\nPkg.add(url = \"https://github.com/rumor-thrower/NovelpiaAnalysis.jl\")\n```\n\n## Usage\n\n```julia\nusing NovelpiaAnalysis\n\n# `dir` holds novel_\u003cN\u003e_episodes.csv / _reviews.csv / _manifest.json\n# produced by: npia export --novel 127306 --out dir\ndata = Load.load(\"dir\", 127306)\n\nFrames.add_retention!(data.episodes)\nFrames.add_cumulative_views!(data.episodes)\n\nStats.summary(data.episodes)\nCharts.barchart(data.episodes.episode_no, data.episodes.count_view; title = \"Views by episode\")\n```\n\n## License\n\n[MIT](LICENSE) — © 2026 rumor-thrower.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frumor-thrower%2Fnovelpiaanalysis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frumor-thrower%2Fnovelpiaanalysis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frumor-thrower%2Fnovelpiaanalysis/lists"}