From 0dad53bcbcc0b3c874b4c80421d0f82c614c2495 Mon Sep 17 00:00:00 2001 From: "guorong.zheng" <360996299@qq.com> Date: Wed, 10 Jul 2024 10:31:44 +0800 Subject: [PATCH 1/4] Update: README --- README.md | 20 +++++++++++++++----- README_en.md | 24 +++++++++++++++++------- docs/images/ui.png | Bin 0 -> 38889 bytes docs/tutorial.md | 21 ++++++++++++++++----- docs/tutorial_en.md | 25 ++++++++++++++++++------- 5 files changed, 66 insertions(+), 24 deletions(-) create mode 100644 docs/images/ui.png diff --git a/README.md b/README.md index dfaf7d9..b57e0cc 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# TVBox 电视频道菜单自定义与直播源接口自动校验与更新工具 +# 电视频道菜单自定义与直播源接口更新工具 自定义频道菜单,根据模板文件的直播源接口,自动获取并更新最新的直播源接口,校验并生成可用的频道接口文件 @@ -37,10 +37,12 @@ pipenv run build pipenv run ui ``` + + ### 方式三:Docker 更新 -- requests:轻量级,性能要求低,更新速度快,成功率较低 -- driver:占用大,性能要求较高,更新速度慢,稳定性、成功率高 +- requests:轻量级,性能要求低,更新速度快,稳定性不确定(只使用订阅源推荐此版本) +- driver:性能要求较高,更新速度较慢,稳定性、成功率高(使用在线搜索、组播源使用此版本) ```bash 1. 拉取镜像: @@ -51,9 +53,17 @@ docker pull guovern/tv-requests:latest driver版本: docker pull guovern/tv-driver:latest -2. 运行容器:docker run -d -p 8000:8000 tv +2. 运行容器:docker run --name tv-requests或driver -d -p 8000:8000 guovern/tv-requests或driver -3. 访问(域名:8000)查看更新结果 +3. 查看更新结果:访问(域名:8000) + +4. 自定义(可选): + +- 修改模板: +docker cp 系统路径/user-demo.txt tv-requests或driver:/app/user-demo.txt + +- 修改配置: +docker cp 系统路径/user-config.py tv-requests或driver:/app/user-config.py ``` #### 注:方式一至三更新完成后的结果文件链接:http://本地 ip:8000 diff --git a/README_en.md b/README_en.md index 4fcea52..1898bcd 100644 --- a/README_en.md +++ b/README_en.md @@ -1,4 +1,4 @@ -# TVBox Custom TV Channel Menu and Live Source Interface Automatic Verification and Update Tool +# Television channel menu customization and live source interface update tool Customize channel menus and automatically obtain and update the latest live source interfaces based on template files, verify, and generate usable channel interface files. @@ -37,23 +37,33 @@ pipenv run build pipenv run ui ``` + + ### Method 3: Docker Update -- requests: lightweight, low performance requirements, fast update speed, lower success rate -- driver: large footprint, higher performance requirements, slow update speed, high stability and success rate +- requests: Lightweight, low performance requirements, fast update speed, stability uncertain (recommend this version only for subscription sources) +- driver: Higher performance requirements, slower update speed, high stability, high success rate (use this version for online search, multicast sources) ```bash 1. Pull the image: -requests version: +For requests version: docker pull guovern/tv-requests:latest -driver version: +For driver version: docker pull guovern/tv-driver:latest -2. Run the container: docker run -d -p 8000:8000 tv +2. Run the container: docker run --name tv-requests or driver -d -p 8000:8000 guovern/tv-requests or driver -3. Access (domain:8000) to check the update results +3. Check the update results: Visit (domain:8000) + +4. Customization (optional): + +- Modify the template: +docker cp your_system_path/user-demo.txt tv-requests or driver:/app/user-demo.txt + +- Modify the configuration: +docker cp your_system_path/user-config.py tv-requests or driver:/app/user-config.py ``` #### Note: Link to the result file after updates of methods one to three: http://local ip:8000 diff --git a/docs/images/ui.png b/docs/images/ui.png new file mode 100644 index 0000000000000000000000000000000000000000..539b9057b2f2852388b695a4d69c142692e7ba6d GIT binary patch literal 38889 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 Ju`rjX{{fKk!%qMJ literal 0 HcmV?d00001 diff --git a/docs/tutorial.md b/docs/tutorial.md index 99c5588..97f7418 100644 --- a/docs/tutorial.md +++ b/docs/tutorial.md @@ -75,17 +75,20 @@ pipenv run build ### 方式二:界面软件更新 -```python 1. 下载[更新工具软件](https://github.com/Guovin/TV/releases),打开软件,点击更新,即可完成更新 2. 或者在项目目录下运行以下命令,即可打开界面软件: + +```python pipenv run ui ``` + + ### 方式三:Docker 更新 -- requests:轻量级,性能要求低,更新速度快,成功率较低 -- driver:占用大,性能要求较高,更新速度慢,稳定性、成功率高 +- requests:轻量级,性能要求低,更新速度快,稳定性不确定(只使用订阅源推荐此版本) +- driver:性能要求较高,更新速度较慢,稳定性、成功率高(使用在线搜索、组播源使用此版本) ```bash 1. 拉取镜像: @@ -96,9 +99,17 @@ docker pull guovern/tv-requests:latest driver版本: docker pull guovern/tv-driver:latest -2. 运行容器:docker run -d -p 8000:8000 tv +2. 运行容器:docker run --name tv-requests或driver -d -p 8000:8000 guovern/tv-requests或driver -3. 访问(域名:8000)查看更新结果 +3. 查看更新结果:访问(域名:8000) + +4. 自定义(可选): + +- 修改模板: +docker cp 系统路径/user-demo.txt tv-requests或driver:/app/user-demo.txt + +- 修改配置: +docker cp 系统路径/user-config.py tv-requests或driver:/app/user-config.py ``` #### 注:方式一至三更新完成后的结果文件链接:http://本地 ip:8000 diff --git a/docs/tutorial_en.md b/docs/tutorial_en.md index f33451d..d952505 100644 --- a/docs/tutorial_en.md +++ b/docs/tutorial_en.md @@ -75,30 +75,41 @@ pipenv run build ### Method 2: GUI Software Update -```python 1. Download the update tool software, open the software, click update to complete the update. 2. Alternatively, run the following command in the project directory to open the GUI software: + +```python pipenv run ui ``` + + ### Method 3: Docker Update -- requests: lightweight, low performance requirements, fast update speed, lower success rate -- driver: large footprint, higher performance requirements, slow update speed, high stability and success rate +- requests: Lightweight, low performance requirements, fast update speed, stability uncertain (recommend this version only for subscription sources) +- driver: Higher performance requirements, slower update speed, high stability, high success rate (use this version for online search, multicast sources) ```bash 1. Pull the image: -requests version: +For requests version: docker pull guovern/tv-requests:latest -driver version: +For driver version: docker pull guovern/tv-driver:latest -2. Run the container: docker run -d -p 8000:8000 tv +2. Run the container: docker run --name tv-requests or driver -d -p 8000:8000 guovern/tv-requests or driver -3. Access (domain:8000) to check the update results +3. Check the update results: Visit (domain:8000) + +4. Customization (optional): + +- Modify the template: +docker cp your_system_path/user-demo.txt tv-requests or driver:/app/user-demo.txt + +- Modify the configuration: +docker cp your_system_path/user-config.py tv-requests or driver:/app/user-config.py ``` #### Note: Link to the result file after updates of methods one to three: http://local ip:8000 From 6b071123ca4534665cc95796190a344472febab1 Mon Sep 17 00:00:00 2001 From: "guorong.zheng" <360996299@qq.com> Date: Wed, 10 Jul 2024 11:14:53 +0800 Subject: [PATCH 2/4] feat:tag --- README.md | 18 ++++++++++++++++++ README_en.md | 18 ++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/README.md b/README.md index b57e0cc..580fcfb 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,24 @@ 自定义频道菜单,根据模板文件的直播源接口,自动获取并更新最新的直播源接口,校验并生成可用的频道接口文件 +<p align="center"> + <a href="https://github.com/Guovin/TV/releases"> + <img src="https://img.shields.io/badge/Version-1.3.1-307cf7" /> + </a> + <a> + <img src="https://img.shields.io/badge/Python-%20%3E%3D%203.8-47c219" /> + </a> + <a href="https://github.com/Guovin/TV/releases"> + <img src="https://img.shields.io/github/downloads/guovin/tv/total" /> + </a> + <a href="https://hub.docker.com/repository/docker/guovern/tv-requests"> + <img src="https://img.shields.io/docker/pulls/guovern/tv-requests?label=docker:requests" /> + </a> + <a href="https://hub.docker.com/repository/docker/guovern/tv-driver"> + <img src="https://img.shields.io/docker/pulls/guovern/tv-driver?label=docker:driver" /> + </a> +</p> + [English](./README_en.md) | 中文 ## 特点 diff --git a/README_en.md b/README_en.md index 1898bcd..d4135fd 100644 --- a/README_en.md +++ b/README_en.md @@ -2,6 +2,24 @@ Customize channel menus and automatically obtain and update the latest live source interfaces based on template files, verify, and generate usable channel interface files. +<p align="center"> + <a href="https://github.com/Guovin/TV/releases"> + <img src="https://img.shields.io/badge/Version-1.3.1-307cf7" /> + </a> + <a> + <img src="https://img.shields.io/badge/Python-%20%3E%3D%203.8-47c219" /> + </a> + <a href="https://github.com/Guovin/TV/releases"> + <img src="https://img.shields.io/github/downloads/guovin/tv/total" /> + </a> + <a href="https://hub.docker.com/repository/docker/guovern/tv-requests"> + <img src="https://img.shields.io/docker/pulls/guovern/tv-requests?label=docker:requests" /> + </a> + <a href="https://hub.docker.com/repository/docker/guovern/tv-driver"> + <img src="https://img.shields.io/docker/pulls/guovern/tv-driver?label=docker:driver" /> + </a> +</p> + [中文](./README.md) | English ## Features From 20b03bbdff3b7843e2ce530bec60c1dfd9ce1298 Mon Sep 17 00:00:00 2001 From: "guorong.zheng" <360996299@qq.com> Date: Wed, 10 Jul 2024 11:18:07 +0800 Subject: [PATCH 3/4] chore --- README.md | 2 +- README_en.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 580fcfb..8bc3b9f 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ <a href="https://github.com/Guovin/TV/releases"> <img src="https://img.shields.io/badge/Version-1.3.1-307cf7" /> </a> - <a> + <a href="https://www.python.org/"> <img src="https://img.shields.io/badge/Python-%20%3E%3D%203.8-47c219" /> </a> <a href="https://github.com/Guovin/TV/releases"> diff --git a/README_en.md b/README_en.md index d4135fd..e4637eb 100644 --- a/README_en.md +++ b/README_en.md @@ -6,7 +6,7 @@ Customize channel menus and automatically obtain and update the latest live sour <a href="https://github.com/Guovin/TV/releases"> <img src="https://img.shields.io/badge/Version-1.3.1-307cf7" /> </a> - <a> + <a href="https://www.python.org/"> <img src="https://img.shields.io/badge/Python-%20%3E%3D%203.8-47c219" /> </a> <a href="https://github.com/Guovin/TV/releases"> From 17c09084ead40797d17b30293e72caf0fd556d82 Mon Sep 17 00:00:00 2001 From: "guorong.zheng" <360996299@qq.com> Date: Wed, 10 Jul 2024 11:44:39 +0800 Subject: [PATCH 4/4] Update --- README.md | 8 ++++---- README_en.md | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 8bc3b9f..ac36383 100644 --- a/README.md +++ b/README.md @@ -3,13 +3,13 @@ 自定义频道菜单,根据模板文件的直播源接口,自动获取并更新最新的直播源接口,校验并生成可用的频道接口文件 <p align="center"> - <a href="https://github.com/Guovin/TV/releases"> - <img src="https://img.shields.io/badge/Version-1.3.1-307cf7" /> + <a href="https://github.com/Guovin/TV/releases/latest"> + <img src="https://img.shields.io/github/v/release/guovin/tv" /> </a> <a href="https://www.python.org/"> - <img src="https://img.shields.io/badge/Python-%20%3E%3D%203.8-47c219" /> + <img src="https://img.shields.io/badge/python-%20%3E%3D%203.8-47c219" /> </a> - <a href="https://github.com/Guovin/TV/releases"> + <a href="https://github.com/Guovin/TV/releases/latest"> <img src="https://img.shields.io/github/downloads/guovin/tv/total" /> </a> <a href="https://hub.docker.com/repository/docker/guovern/tv-requests"> diff --git a/README_en.md b/README_en.md index e4637eb..026f26d 100644 --- a/README_en.md +++ b/README_en.md @@ -3,13 +3,13 @@ Customize channel menus and automatically obtain and update the latest live source interfaces based on template files, verify, and generate usable channel interface files. <p align="center"> - <a href="https://github.com/Guovin/TV/releases"> - <img src="https://img.shields.io/badge/Version-1.3.1-307cf7" /> + <a href="https://github.com/Guovin/TV/releases/latest"> + <img src="https://img.shields.io/github/v/release/guovin/tv" /> </a> <a href="https://www.python.org/"> - <img src="https://img.shields.io/badge/Python-%20%3E%3D%203.8-47c219" /> + <img src="https://img.shields.io/badge/python-%20%3E%3D%203.8-47c219" /> </a> - <a href="https://github.com/Guovin/TV/releases"> + <a href="https://github.com/Guovin/TV/releases/latest"> <img src="https://img.shields.io/github/downloads/guovin/tv/total" /> </a> <a href="https://hub.docker.com/repository/docker/guovern/tv-requests">