# JarPluginLonia **Repository Path**: caliph21/JarPluginLonia ## Basic Information - **Project Name**: JarPluginLonia - **Description**: 资源猫JAR插件Lonia示例 - **Primary Language**: Kotlin - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-11-03 - **Last Updated**: 2026-11-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 资源猫 Jar 插件包 基于 [JarPluginDemo](https://github.com/Jason-wam/JarPluginDemo)(资源猫 5.0.0+)框架的**可复用插件生成器**:拿到任意 TVBox / 苹果CMS vod 站点的接口地址,一行命令即可生成并构建对应的资源猫 Jar 插件(已自动转 dex,Android 端直接安装)。 > 仓库已内置 **创享影视**(`https://ys.cxkjg.cn/`)作为示例插件:`plugin/jar/` 下为其可直接安装的 dex 包,`plugin/src/chuangxiang/` 为其源码。换其他站点方法见「三、换站点直接食用」。 > > 资源猫 5.0.0+ 要求插件通过 DexClassLoader 加载,因此本生成器产出的 jar 内部均含 `classes.dex`,无需再手动转 dex。 ## 目录结构 ``` JarPluginDemo/ ├── gen_plugin.py # 可复用生成器(换站点一行命令出 dex 插件) ├── build.gradle.kts # 框架构建脚本(已适配 Linux,跳过 Windows 专属 JarToDEX.bat) ├── settings.gradle.kts ├── gradle.properties ├── modules/ # 资源猫框架源码(BaseJarSource 等,运行时由 App 提供) ├── src/main/kotlin/ # 构建临时区:生成器每次构建写入最后一个插件源码 ├── plugin/ # ★ 产出统一收拢目录 │ ├── jar/ # 所有可直接安装的 dex 插件(TVBox/资源猫 导入此目录即可累加) │ │ └── ChuangxiangEngine.jar │ └── src/ # 各站点插件源码归档(按 id 分目录,互不覆盖) │ └── chuangxiang/ │ └── ChuangxiangEngine.kt └── README.md ``` ## 交付物 | 文件 | 说明 | |------|------| | `plugin/jar/ChuangxiangEngine.jar` | **内置示例(创享影视)**:已编译的 dex 版插件包(内含 `classes.dex`,Android 端资源猫可直接用 DexClassLoader 加载安装)。换其他站点后会在此目录累加更多 jar | | `plugin/src/chuangxiang/ChuangxiangEngine.kt` | 示例插件(创享影视)的 Kotlin 源码(已验证可编译) | | `gen_plugin.py` | **可复用生成器**:给任意 TVBox 站点 URL 即可生成并构建插件 | ## 一、直接食用(部署到资源猫) 1. 资源猫 App 导入插件:将 `plugin/jar/ChuangxiangEngine.jar`(示例:创享影视)放入插件目录(如 `/storage/emulated/0/Lawcai/TVBoxx/ai_prd/jars/`),或通过 App 的「本地导入 / Jar 插件」入口加载。 2. **本 `plugin/jar/ChuangxiangEngine.jar` 已是 dex 版**(内含 `classes.dex`,由 d8 转换生成),Android 端资源猫可直接加载安装,无需再手动转 dex。 - 若需自行重建,用 `gen_plugin.py --build` 会自动产出 dex 版 jar(内部调用 Google Maven 的 r8/d8,无需 Windows),并写入 `plugin/jar/` 与 `plugin/src//`。 3. 资源猫需 **5.0.0+** 版本。 ## 二、重新构建(如需修改后重新打包) 方式 A —— 直接 Gradle: ```bash # 在包含框架工程(JarPluginDemo)的目录下 gradle jar # Linux/macOS 会自动跳过 Windows 专属的 JarToDEX.bat ``` 方式 B —— 用本生成器重建内置示例(自动拉取框架 + 生成 + 构建): ```bash # 重建仓库内置的示例插件(创享影视) python3 gen_plugin.py --name 创享影视 --id chuangxiang \ --api https://ys.cxkjg.cn/api/provide/vod \ --home https://ys.cxkjg.cn/ \ --icon https://ys.cxkjg.cn/api/upload/pic/poster/4d29184ceecbf8eb.png \ --build # 产物: # plugin/jar/ChuangxiangEngine.jar ← 已是 dex 版,可直接安装 # plugin/src/chuangxiang/ChuangxiangEngine.kt ← 源码归档 # 内部:<框架工程>/build/libs/plugin-dex.jar ``` ## 三、下次换站点「直接食用」(核心可复用能力) 同类「影视」站大多使用同一套 TVBox vod 接口。只要拿到站点的 vod 接口地址,一行命令即可生成并构建新插件: ```bash python3 gen_plugin.py \ --name 站点名 \ --id 唯一插件ID(小写字母数字) \ --api https://<域名>/api/provide/vod \ --home https://<域名>/ \ --icon https://<域名>/favicon.ico \ --build ``` > `--icon` 为资源猫 App 里「源列表」显示的图标地址;不填默认 `{home}favicon.ico`。若站点没有 favicon.ico,请提供真实图片 URL(如创享影视示例用的 `https://ys.cxkjg.cn/api/upload/pic/poster/4d29184ceecbf8eb.png`)。 生成器已内置框架源码清单,首次 `--build` 会在 `.framework_cache` 下缓存框架,之后秒级复用。 > **累加其他站点**:每个新站点构建后,其 dex 插件会自动写入 `plugin/jar/Engine.jar`、源码归档到 `plugin/src//`。`plugin/jar/` 里可以并存多个站点的 jar,TVBox/资源猫 逐一导入即可——这正是「后续增加其他」的设计目标。 > 如何确认站点接口?打开站点,搜索其 TVBox 接口通常形如 `https://域名/api/provide/vod` 或 `.../api.php/provide/vod`, > 访问后返回 JSON 且包含 `class` / `list` / `vod_play_from` / `vod_play_url` 字段即兼容本模板。 ## 四、接口对接说明(本插件解析逻辑) | 功能 | 请求 | 解析字段 | |------|------|----------| | 分类 | `GET {api}` | `class[].type_id` / `type_name` | | 列表/最新 | `GET {api}?ac=list[&t=]&pg=N` | `list[]`(`vod_name`/`vod_pic`/`vod_remarks`/`vod_id`),`pagecount` 控制翻页 | | 搜索 | `GET {api}?wd=&pg=N` | `list[]`,`pagecount` 控制翻页 | | 详情 | `GET {api}?ac=detail&ids=` | `vod_name`/`vod_pic`/`vod_area`/`vod_year`/`vod_content` | | 播放地址 | 详情里的 `vod_play_from`(`$$$` 分隔多源) + `vod_play_url`(`#` 分隔集,`$` 分隔集名与 m3u8 地址) | 每个源生成一条 `VideoDetailChannelEntity`,每集一个 `VideoDetailDataEntity`(`VideoType.Direct`) | 翻页约定:资源猫内部默认起始页码为 1,与 TVBox `pg` 一致,直接透传即可。 ## 五、注意事项 - **每个插件包只能包含一个插件**:构建目录 `src/main/kotlin/` 下只保留一个 `*Engine.kt`(生成器每次构建会先清空再写入当前插件,故多站点源码请见 `plugin/src//` 归档,不要依赖根目录 `src/main/kotlin/`)。 - 框架类(`BaseJarSource` 等)由资源猫 App 在运行时提供,插件 jar 内**不**包含它们,这是框架设计预期。 - 若站点更换域名或新增镜像源,可在 App 设置里修改 `api` 默认值,或直接改 `plugin/src//Engine.kt` 顶部的 `api`。 - 任意站点构建后,`gen_plugin.py --build` 会用 r8/d8 自动完成 dex 转换,并把成品 jar 与源码分别收拢到 `plugin/jar/` 与 `plugin/src//`(示例:创享影视已生成 `plugin/jar/ChuangxiangEngine.jar`,含 `classes.dex`)。