{"id":50811305,"url":"https://github.com/ark-65/ani-destiny","last_synced_at":"2026-06-13T05:01:25.022Z","repository":{"id":360873888,"uuid":"1251901540","full_name":"ark-65/ani-destiny","owner":"ark-65","description":"AniDestiny 是一个非盈利的 Flutter 动漫发现、播放与弹幕学习项目。","archived":false,"fork":false,"pushed_at":"2026-06-11T19:05:06.000Z","size":13271,"stargazers_count":0,"open_issues_count":1,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-11T19:05:19.998Z","etag":null,"topics":["android","anime","dandanplay","danmaku","dart","drift","flutter","go-router","learning-project","linux","macos","material-design","media-kit","non-profit","open-source","riverpod","sakura-anime","sqlite","video-player","windows"],"latest_commit_sha":null,"homepage":"https://github.com/ark-65/ani-destiny/releases","language":"Dart","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/ark-65.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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-05-28T02:28:23.000Z","updated_at":"2026-06-10T01:01:23.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ark-65/ani-destiny","commit_stats":null,"previous_names":["ark-65/ani-destiny"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/ark-65/ani-destiny","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ark-65%2Fani-destiny","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ark-65%2Fani-destiny/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ark-65%2Fani-destiny/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ark-65%2Fani-destiny/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ark-65","download_url":"https://codeload.github.com/ark-65/ani-destiny/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ark-65%2Fani-destiny/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34272603,"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-06-13T02:00:06.617Z","response_time":62,"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":["android","anime","dandanplay","danmaku","dart","drift","flutter","go-router","learning-project","linux","macos","material-design","media-kit","non-profit","open-source","riverpod","sakura-anime","sqlite","video-player","windows"],"created_at":"2026-06-13T05:00:50.557Z","updated_at":"2026-06-13T05:01:25.017Z","avatar_url":"https://github.com/ark-65.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/branding/ani_destiny_logo.png\" alt=\"AniDestiny\" width=\"180\"\u003e\n\u003c/p\u003e\n\n# AniDestiny\n\n\u003e 中文 | [English](./README_en.md)\n\nAniDestiny 是一个非盈利的 Flutter 动漫发现、播放与弹幕学习项目。\n\n## 项目说明\n\n本项目仅用于学习、研究和 Flutter 架构实践，不用于商业用途。\n\nAniDestiny 当前以客户端数据源适配器为核心：\n\n- 默认数据源：Sakura Anime 网站解析源。\n- 备用数据源：Mock 动漫数据源，用于离线演示和开发兜底。\n- 未来可扩展：Remote Source Proxy、自建服务端代理、更多公开数据源。\n\n## 链接\n\n- 开源仓库：\u003chttps://github.com/ark-65/ani-destiny\u003e\n- 发布页面：\u003chttps://github.com/ark-65/ani-destiny/releases\u003e\n- 问题反馈指南：[docs/reporting-issues.md](./docs/reporting-issues.md)\n- 故障排查：[docs/troubleshooting.md](./docs/troubleshooting.md)\n- 更新日志：[CHANGELOG.md](./CHANGELOG.md)\n- English changelog: [CHANGELOG_en.md](./CHANGELOG_en.md)\n\n## 平台\n\nAniDestiny 当前面向 Android、macOS、Windows 和 Linux 构建验证。\n\n## 项目标识\n\n- App 名称：AniDestiny\n- Flutter package：ani_destiny\n- Android applicationId：com.ark65.anidestiny\n- iOS bundleId：com.ark65.anidestiny\n- 品牌资源：`assets/branding/`\n\n## 当前能力\n\n- 首页推荐、搜索、番剧详情、剧集列表。\n- Sakura 真实数据源解析，支持首页、搜索、详情、播放源和诊断信息。\n- 播放页基础播放控制、倍速、全屏、播放诊断。\n- Dandanplay 弹幕接入结构和 Mock fallback。\n- 历史记录、收藏、下载任务的本地持久化，支持直链下载和 HLS/BT 类型识别占位。\n- 设置页可复制已脱敏诊断摘要，用于反馈播放、数据源、弹幕和下载问题。\n- 多语言界面：中文、英文、日文。\n- Android、macOS、Windows、Linux 的发布构建流程。\n\n## Screenshots\n\nScreenshots will be added in a future release.\n\n## 开发命令\n\n```sh\nflutter pub get\ndart run build_runner build --delete-conflicting-outputs\nflutter analyze\nflutter test\nflutter run\n```\n\n## 本地脚本\n\n```sh\nbash scripts/clean.sh\nbash scripts/build-android-debug.sh\nbash scripts/preflight-release.sh\n```\n\n更多平台构建说明见 [docs/platform-build.md](./docs/platform-build.md)，发布前检查见 [docs/release-checklist.md](./docs/release-checklist.md)，下载路径和权限策略见 [docs/downloads.md](./docs/downloads.md)。\n\n## 问题反馈\n\n反馈播放、数据源、弹幕或下载问题时，请优先使用 GitHub Issue 模板，并提供 App 版本、平台、复现步骤、数据源名称、是否使用 fallback，以及从设置页复制的已脱敏诊断摘要。不要提交账号凭据、cookie、token 或包含 query 参数的完整 URL。\n\n更多说明见 [docs/reporting-issues.md](./docs/reporting-issues.md)，常见问题见 [docs/troubleshooting.md](./docs/troubleshooting.md)。\n\n## 手动打包\n\n```sh\nflutter build apk --release\nflutter build macos --release\nflutter build windows --release\nflutter build linux --release\n```\n\n说明：\n\n- Windows 包需要在 Windows 主机或 Windows CI runner 上构建。\n- macOS 包需要在 macOS 主机或 macOS CI runner 上构建。\n- iOS 正式发布需要证书、签名和 App Store 流程，当前不作为公开自动发布产物。\n\n## 发布流程\n\n本仓库使用“预发布 PR 审核后发布”的流程：\n\n1. 普通 PR 需要更新 `CHANGELOG.md` 和 `CHANGELOG_en.md` 的 `[Unreleased]` 区块。\n2. 在 GitHub Actions 手动运行 `Prepare Release`，输入目标版本号。\n3. 工作流会更新 `pubspec.yaml` 版本号，归档中英文 changelog，并创建 `release/vX.Y.Z` PR。\n4. 维护者审核并合并 release PR。\n5. `Release` 工作流读取 `CHANGELOG.md` 中对应版本的中文发布说明，创建 tag，构建多平台产物，并发布 GitHub Release。\n\n## 发布产物\n\nRelease CI 会上传：\n\n- Android universal APK\n- macOS universal ZIP\n- Windows x64 ZIP\n- Linux tar.gz\n\n## 下载说明\n\n- Android：下载 `AniDestiny-v\u003cversion\u003e-android-universal.apk`，在 Android 设备上安装。\n- Windows：下载 `AniDestiny-v\u003cversion\u003e-windows-x64.zip`，解压后运行 `ani_destiny.exe`。\n- macOS：下载 `AniDestiny-v\u003cversion\u003e-macos-universal.zip`，解压后打开 AniDestiny.app。当前产物未走商店签名流程，若系统拦截，请只在信任来源时通过系统安全设置允许打开。\n- Linux：下载 `AniDestiny-v\u003cversion\u003e-linux-x64.tar.gz`，解压后按平台环境运行。\n\n## License Notice\n\nThis project is inspired by Animius.\nPlease keep original project attribution and license notes where applicable.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fark-65%2Fani-destiny","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fark-65%2Fani-destiny","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fark-65%2Fani-destiny/lists"}