# fmc **Repository Path**: annocx/fmc ## Basic Information - **Project Name**: fmc - **Description**: No description available - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-31 - **Last Updated**: 2026-08-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TVBox 卧龙(tvbox_wolong) 基于 TVBox 社区的 Android TV / 盒子点播与直播客户端。包名 `com.github.tvbox.wolong`,通过「配置地址」拉取远程 JSON,再加载站点爬虫、直播源与 EPG。 本仓库产物与配置仓库 **tv**(Codeberg:`annocx/tv`)配合使用:App 负责播放与引擎,**tv** 提供可导入的入口配置与资源。 ## 仓库说明 本项目历史上关联 / 衍生自 GitHub:[wxbtt/TVBox_wolong](https://github.com/wxbtt/TVBox_wolong)。 **当前规范远程(canonical)为 Gitee**:[https://gitee.com/annocx/fmc.git](https://gitee.com/annocx/fmc.git)(本地 `origin` 指向此地址)。 ## 与配置库 tv 的关系 ``` 用户在 App 中填写配置地址 │ ▼ https://codeberg.org/annocx/tv/raw/branch/main/entry/index.json (多仓,推荐) 或 xuexi.json / ysm.json (单仓) │ ▼ ApiConfig:多仓则选「配置组」后再拉对应 JSON;单仓则直接解析 │ ├── 拉取 ext/*.json、jar、drpy JS … └── 拉取 live 列表、logo、epg ``` | 角色 | 仓库 | 职责 | |------|------|------| | 客户端 | **本仓库** `tvbox_wolong` | UI、播放器、JAR/JS Spider、配置拉取与缓存、多仓切换 | | 配置与资源 | [tv](https://codeberg.org/annocx/tv)(本地为真实 clone;见 `.cursor/rules/family-media-paths.mdc`) | `entry` 入口、站点 ext、直播、台标、EPG | 详细配置目录见 tv 仓库的 `README.md`。 ## 如何导入配置 1. 安装本项目编译出的 APK(如 `tm_box_debug_240729.apk` / release 包)。 2. 打开 **设置 → 配置地址**(或首页相关入口弹出的配置对话框)。 3. 在「接口」中填入 tv 仓库的 raw URL。**推荐一次配置(多仓)**: ``` https://codeberg.org/annocx/tv/raw/branch/main/entry/index.json ``` 首次加载会弹出「配置组」选择(学习 / 综合影视);之后可在 **设置 → 配置组** 切换,或首页长按标题切换。单击标题仍为组内切源。 其他可选入口(单仓,行为与以往相同): | 配置 | URL | |------|-----| | 多仓索引(推荐) | `https://codeberg.org/annocx/tv/raw/branch/main/entry/index.json` | | 学习/少儿 | `https://codeberg.org/annocx/tv/raw/branch/main/entry/xuexi.json` | | 综合影视 | `https://codeberg.org/annocx/tv/raw/branch/main/entry/ysm.json` | 4. 确认后 App 会请求该 JSON,写入 Hawk(`source` / `api_url`;多仓另存 `api_warehouse`),并由 `ApiConfig` 解析站点与直播。 5. 直播、EPG 也可在同一对话框中单独填写;若入口 JSON 已含 `lives`,一般无需再填。 多仓判定:根对象有 `urls`(或 `storeHouse`)且无可用 `sites` 时视为多仓索引;否则按单仓配置解析。 本地调试可用: - `clan://localhost/...` 或 `file://`(对话框会尽量转成 clan 本地协议) - 历史记录最多保留约 20 条配置地址 ### B 站源说明(csp_Bili) 自 `240729` 起,App **内嵌** `com.github.catvod.spider.Bili`(WBI 签名),并优先于远程 spider jar 加载。 - 兼容 tv 仓库现有 `ext/*.json`:`cookie` / `classes` / `filter` - 分类列表走 `/x/web-interface/wbi/search/type` - 不再依赖已失效的 `BHQX.jar` - 调试日志:`adb logcat -s WolongBili WolongSrc WOLONG_NET_J` 请使用 **重新编译安装** 后的 APK;仅更新 `xuexi.json` 不够。 ## 基本信息 | 项 | 值 | |----|-----| | 应用名 | TVBox | | 包名 | `com.github.tvbox.wolong` | | versionName / versionCode | `240605` | | minSdk / targetSdk / compileSdk | 19 / 29 / 33 | | 语言 | Java + Kotlin | | 模块 | `:app`、`:quickjs`、`:pyramid` | | APK 命名 | `tm_box_[python_]{debug\|release}_{versionName}.apk` | 默认行为见 `app/.../base/App.java` 的 `initParams()`(首页推荐、播放器、解码、主题等)。 ## 功能概览 - **点播**:JSON 驱动;JAR Spider(`csp_*`)、QuickJS(drpy 等)、XPath / XYQHiker - **直播**:M3U/TXT;支持 EPG 与台标模板 - **播放器**:系统 / IJK / Exo 等;FFmpeg 相关解码增强 - **网络**:OkHttp、Conscrypt TLS、内置 NanoHTTPD(远程推送/局域网控制) - **可选**:Crosswalk(XWalk)内核、WebDAV、DataBinding UI 更细的架构对比与升级方向见 [项目分析报告.md](./项目分析报告.md)。 ## 工程结构(简要) ``` tvbox_wolong/ ├── app/ # 主应用 │ └── src/main/java/com/github/tvbox/osc/ │ ├── api/ApiConfig.java # 拉取并解析配置 JSON │ ├── util/CustomUtil.java # 当前配置源 getSource() │ ├── ui/dialog/ApiDialog.java# 配置地址 UI │ └── base/App.java # 默认参数 ├── quickjs/ # JS 引擎 ├── pyramid/ # Python 相关(productFlavor python) └── README.md ``` 配置加载入口:`CustomUtil.getSource()` → `ApiConfig.loadConfig()`(支持 `http(s)`、`clan`、加密后缀等)。 ## 编译 / 发版 环境要求:Android Studio / **JDK 11**(AGP 7.4.2),Android SDK 33。 ```bash # Debug(normal 风味) ./gradlew :app:assembleNormalDebug # Release(必须带 normal 风味,不要裸 assembleRelease) ./gradlew :app:assembleNormalRelease ``` 产物在 `app/build/outputs/apk/normal/release/`,文件名形如 `爱学习_v${versionName}.apk`。 **Gitee Go 云端发版**:推送 `.workflow/AndroidRelease.yml` 后,在仓库「流水线」开通并手动跑一次;正式版推 `v*` Tag。操作说明见 [docs/gitee-go-android-release.md](./docs/gitee-go-android-release.md)。 `python` productFlavor 会打带 Python 能力的包(ABI 更受限),按需使用。 修改默认项时,优先改: ``` app/src/main/java/com/github/tvbox/osc/base/App.java ``` 中的 `initParams()`。 ## 使用注意 - 开源免费,仅供学习交流;播放内容来自用户所填配置指向的第三方公开数据。 - 请勿用于商业传播;遵守当地法律与平台条款。 - 更换配置后若站点异常,可清缓存 / 重载配置后再试。 ## 家庭媒体 PDCA 专家团(Cursor) 本仓 `.cursor/` 内置家庭媒体中心 PDCA 专家团(agents / skills / rules)。换机或协作时: 1. `git pull` 后用 Cursor **打开本仓库根目录**(勿只打开子目录)。 2. 阅读详细说明:[docs/family-media-pdca-experts/](./docs/family-media-pdca-experts/README.md)(先读 [00-overview](./docs/family-media-pdca-experts/00-overview.md));短入口:[FAMILY_MEDIA_PDCA.md](./FAMILY_MEDIA_PDCA.md);换机续断点:[docs/cursor-handoff/README.md](./docs/cursor-handoff/README.md)。 3. 新开 Agent 聊天,召唤团长:`/fm-captain`(或 `@.cursor/agents/fm-captain.md`),按两段式(方案包 → 口令「执行」)开工。 门禁 Rule:`.cursor/rules/family-media-pdca.mdc`(alwaysApply)。配置仓 **tv** 为独立仓库,见上文「与配置库 tv 的关系」。 ## 相关项目 | 项目 | 说明 | |------|------| | [tv](https://codeberg.org/annocx/tv) | 远程配置与直播资源库(本 App 推荐导入源) | | [项目分析报告.md](./项目分析报告.md) | 卧龙能力与架构分析 |