Update readme

release
FongMi 3 weeks ago
parent 88b372dbcc
commit 5434c29218
  1. 61
      README.md
  2. 3
      docs/CONFIG.md
  3. 9
      docs/LOCAL.md
  4. 7
      docs/SPIDER.md

@ -1,8 +1,6 @@
# 📺 開發者文件 # 開發者文件
基於 [CatVod](https://github.com/CatVodTVOfficial/CatVodTVJarLoader) 的開源 Android 影音應用程式,同時支援 基於 [CatVod](https://github.com/CatVodTVOfficial/CatVodTVJarLoader) 的開源 Android 影音應用程式,同時支援 **Android TV 大螢幕**與**手機**兩種使用情境,並且透過外部配置靈活擴展內容。
**Android TV 大螢幕** 與 **手機** 兩種使用情境。爬蟲引擎支援 Java JAR、JavaScript、Python
三種語言,透過外部配置檔靈活擴展內容來源。
[討論群組](https://t.me/fongmi_official) | [發布頻道](https://t.me/fongmi_release) [討論群組](https://t.me/fongmi_official) | [發布頻道](https://t.me/fongmi_release)
@ -25,14 +23,15 @@
--- ---
## 🏗 專案架構 ## 專案架構
| 項目 | 值 | | 項目 | 值 |
|--------------------|-------------------------------| |-----------|-------------------------------|
| Package | `com.fongmi.android.tv` | | Package | `com.fongmi.android.tv` |
| minSdk / targetSdk | 24 / 28 | | minSdk | 24(Android 7.0 Nougat) |
| ABI | `arm64-v8a`、`armeabi-v7a` | | targetSdk | 28(Android 9.0 Pie) |
| Flavor | `leanback`(電視版)、`mobile`(手機版) | | ABI | `arm64-v8a`、`armeabi-v7a` |
| Flavor | `leanback`(電視版)、`mobile`(手機版) |
``` ```
TV/ TV/
@ -46,7 +45,7 @@ TV/
--- ---
## 🎬 播放器 ## 播放器
- **核心**:ExoPlayer(Media3)+ FFmpeg 軟解,硬解 / 軟解自動降級切換 - **核心**:ExoPlayer(Media3)+ FFmpeg 軟解,硬解 / 軟解自動降級切換
- **渲染**:SurfaceView / TextureView - **渲染**:SurfaceView / TextureView
@ -57,7 +56,7 @@ TV/
--- ---
## 📼 點播功能 ## 點播功能
- 多站點分類瀏覽,Filter 篩選(年份 / 地區 / 類型等) - 多站點分類瀏覽,Filter 篩選(年份 / 地區 / 類型等)
- 多站點**並行搜尋**,關鍵字自動繁轉簡提升相容性 - 多站點**並行搜尋**,關鍵字自動繁轉簡提升相容性
@ -67,7 +66,7 @@ TV/
--- ---
## 📡 直播功能 ## 直播功能
- 支援 M3U/M3U8、TXT(`#genre#` 分組)、JSON 三種直播源格式 - 支援 M3U/M3U8、TXT(`#genre#` 分組)、JSON 三種直播源格式
- **EPG**:XMLTV 格式(支援 `.gz`),每 6 小時自動刷新 - **EPG**:XMLTV 格式(支援 `.gz`),每 6 小時自動刷新
@ -77,14 +76,19 @@ TV/
--- ---
## 🕷 爬蟲引擎 ## 爬蟲引擎
支援三種語言撰寫爬蟲:Java JAR(DexClassLoader)、JavaScript(QuickJS)、Python(Chaquopy)。透過 `api` 支援三種語言撰寫爬蟲:
欄位指定爬蟲,`ext` 欄位傳入初始化參數。完整 API 規格見 [SPIDER.md](docs/SPIDER.md)。
- Java JAR(DexClassLoader)
- JavaScript(QuickJS)
- Python(Chaquopy)
透過 `api` 欄位指定爬蟲,`ext` 欄位傳入初始化參數。完整 API 規格見 [SPIDER.md](docs/SPIDER.md)。
--- ---
## 🌐 網路功能 ## 網路功能
- **DoH**:DNS over HTTPS,支援 Bootstrap IP - **DoH**:DNS over HTTPS,支援 Bootstrap IP
- **代理**:HTTP / HTTPS / SOCKS4 / SOCKS5,依 host 正則規則動態選擇 - **代理**:HTTP / HTTPS / SOCKS4 / SOCKS5,依 host 正則規則動態選擇
@ -95,7 +99,7 @@ TV/
--- ---
## 📲 DLNA 投放 ## DLNA 投放
- **DMC(投放端)**:手機版,掃描區域網路 DLNA 設備並投放媒體 - **DMC(投放端)**:手機版,掃描區域網路 DLNA 設備並投放媒體
- **DMR(被投放端)**:電視版,作為 DLNA Renderer 接收其他設備投放 - **DMR(被投放端)**:電視版,作為 DLNA Renderer 接收其他設備投放
@ -104,22 +108,25 @@ TV/
--- ---
## 🖥 遠端控制 ## 遠端控制
應用啟動後綁定本地 HTTP 伺服器(NanoHTTPD),埠號從 **9978** 起自動偵測至 **9998** 應用啟動後綁定本地 HTTP 伺服器(NanoHTTPD),埠號從 **9978** 起自動偵測至 **9998**,可用於播放控制、推送字幕 / 彈幕、多裝置同步等。完整端點說明見 [LOCAL.md](docs/LOCAL.md)。
,可用於播放控制、推送字幕 / 彈幕、多裝置同步等。完整端點說明見 [LOCAL.md](docs/LOCAL.md)。
--- ---
## ⚙ 配置說明 ## 配置說明
VOD 配置為應用主要入口,透過 URL 或本地路徑載入,頂層欄位定義:
- 點播站點(`sites`)、解析規則(`parses`)
- 直播來源(`lives`)
- 網路設定(`doh`、`proxy`、`hosts`、`ads`)
`config.json`(VOD 配置)為應用主要入口,透過頂層欄位定義點播站點(`sites`)、解析規則(`parses`)、直播來源( Live 配置可內嵌或獨立存放。完整欄位說明見 [CONFIG.md](docs/CONFIG.md)。
`lives`)及網路設定(`doh`、`proxy`、`hosts`、`ads`)。Live
配置可內嵌或獨立存放。完整欄位說明見 [CONFIG.md](docs/CONFIG.md)。
--- ---
## 📚 延伸閱讀 ## 延伸閱讀
| 文件 | 說明 | | 文件 | 說明 |
|-----------------------------|----------------------| |-----------------------------|----------------------|

@ -153,8 +153,7 @@ VOD 配置為一個 JSON 物件,作為應用程式的主要配置入口。配
### lives — 直播來源 ### lives — 直播來源
VOD 配置中的 `lives` 欄位用於指向外部直播配置或內嵌直播資訊。每個物件為一個 `Live` VOD 配置中的 `lives` 欄位用於指向外部直播配置或內嵌直播資訊。每個物件為一個 `Live` 來源,欄位定義與 [Live 配置頂層欄位](#頂層欄位-1) 相同。
來源,欄位定義與 [Live 配置頂層欄位](#頂層欄位-1) 相同。
常見用法為指定 `url` 指向外部 `live.json`,或直接內嵌 `groups` 頻道資料。 常見用法為指定 `url` 指向外部 `live.json`,或直接內嵌 `groups` 頻道資料。

@ -8,8 +8,7 @@ http://127.0.0.1:{port}
> 實際埠號依系統可用情況而定,預設起始為 9978。 > 實際埠號依系統可用情況而定,預設起始為 9978。
所有端點支援 GET 與 POST(除特別標注外),參數可放在 Query String 中。回應若無特別說明皆為 `text/plain` 所有端點支援 GET 與 POST(除特別標注外),參數可放在 Query String 中。回應若無特別說明皆為 `text/plain`,成功回傳 `OK`,失敗回傳 `500` 與錯誤訊息。
,成功回傳 `OK`,失敗回傳 `500` 與錯誤訊息。
--- ---
@ -382,8 +381,7 @@ GET http://127.0.0.1:9978/file/{path}
| `""` | 上一層為根目錄。 | | `""` | 上一層為根目錄。 |
| `"path/to/parent"` | 上一層目錄的相對路徑。 | | `"path/to/parent"` | 上一層目錄的相對路徑。 |
**檔案回應:** 直接串流檔案內容,支援 Range 請求(`206 Partial Content`)與 ETag 快取( **檔案回應:** 直接串流檔案內容,支援 Range 請求(`206 Partial Content`)與 ETag 快取(`304 Not Modified`)。
`304 Not Modified`)。
--- ---
@ -475,8 +473,7 @@ GET http://127.0.0.1:9978/parse?jxs={jxs}&url={url}
GET/POST http://127.0.0.1:9978/proxy?... GET/POST http://127.0.0.1:9978/proxy?...
``` ```
所有 Query String 參數、請求標頭與 POST Body 會合併後傳入 `BaseLoader.get().proxy(params)`。回應由爬蟲 所有 Query String 參數、請求標頭與 POST Body 會合併後傳入 `BaseLoader.get().proxy(params)`。回應由爬蟲 `proxy()` 決定,框架原封不動地轉發爬蟲回傳的串流與標頭。
`proxy()` 決定,框架原封不動地轉發爬蟲回傳的串流與標頭。
爬蟲如何實作 `proxy()` 方法及取得代理 URL,見 [SPIDER.md — 爬蟲本地代理 URL](SPIDER.md#爬蟲本地代理-url)。 爬蟲如何實作 `proxy()` 方法及取得代理 URL,見 [SPIDER.md — 爬蟲本地代理 URL](SPIDER.md#爬蟲本地代理-url)。

@ -11,7 +11,7 @@
- [Spider 抽象類別](#spider-抽象類別) - [Spider 抽象類別](#spider-抽象類別)
- [init — 初始化](#init--初始化) - [init — 初始化](#init--初始化)
- [homeContent — 首頁分類](#homecontent--首頁分類) - [homeContent — 首頁分類](#homecontent--首頁分類)
- [homeVideoContent — 首頁推薦影片](#homevideoContent--首頁推薦影片) - [homeVideoContent — 首頁推薦影片](#homevideocontent--首頁推薦影片)
- [categoryContent — 分類列表](#categorycontent--分類列表) - [categoryContent — 分類列表](#categorycontent--分類列表)
- [detailContent — 影片詳情](#detailcontent--影片詳情) - [detailContent — 影片詳情](#detailcontent--影片詳情)
- [searchContent — 搜尋](#searchcontent--搜尋) - [searchContent — 搜尋](#searchcontent--搜尋)
@ -32,7 +32,7 @@
- [播放集數格式(vod_play_from / vod_play_url)](#播放集數格式vod_play_from--vod_play_url) - [播放集數格式(vod_play_from / vod_play_url)](#播放集數格式vod_play_from--vod_play_url)
- [完整 JSON 範例](#完整-json-範例) - [完整 JSON 範例](#完整-json-範例)
- [homeContent 回傳範例](#homecontent-回傳範例) - [homeContent 回傳範例](#homecontent-回傳範例)
- [homeVideoContent / categoryContent 回傳範例](#homevideoContent--categorycontent-回傳範例) - [homeVideoContent / categoryContent 回傳範例](#homevideocontent--categorycontent-回傳範例)
- [detailContent 回傳範例](#detailcontent-回傳範例) - [detailContent 回傳範例](#detailcontent-回傳範例)
- [playerContent 回傳範例](#playercontent-回傳範例) - [playerContent 回傳範例](#playercontent-回傳範例)
- [searchContent 回傳範例](#searchcontent-回傳範例) - [searchContent 回傳範例](#searchcontent-回傳範例)
@ -43,8 +43,7 @@
## 概覽 ## 概覽
Spider 是應用程式爬蟲的抽象基底類別,位於 `com.github.catvod.crawler.Spider`。每個影片來源(`Site`)對應一個 Spider 是應用程式爬蟲的抽象基底類別,位於 `com.github.catvod.crawler.Spider`。每個影片來源(`Site`)對應一個 Spider 實例。
Spider 實例。
**生命週期:** **生命週期:**

Loading…
Cancel
Save