菜单

开发与贡献

相关源文件

此页面概述了如何为IPTV存储库做出贡献,并解释了维护项目的开发流程。有关系统中使用的脚本和工具的详细技术信息,请参阅脚本和工具。有关添加特定流的信息,请参阅添加和修复流

贡献概述

IPTV项目欢迎社区的贡献,以帮助维护和扩展其公开可用的IPTV频道集合。贡献者可以提交新的流、报告损坏的流或帮助改进代码库。

来源: CONTRIBUTING.md9-100

贡献要求

在向存储库贡献之前,请确保您的提交符合这些要求

要求描述
流稳定性链接必须至少稳定运行一分钟
流ID每个流都应具有来自iptv-org.github.io的有效频道ID
唯一性流不应已存在于存储库中
流格式不得指向Xtream Codes服务器
描述格式必须遵循流描述方案

来源: CONTRIBUTING.md11-27 CONTRIBUTING.md102-141

流描述格式

所有流条目必须遵循此模板格式

#EXTINF:-1 tvg-id="STREAM_ID",CHANNEL_NAME (QUALITY) [LABEL]
STREAM_URL

其中组成部分是

属性描述必填示例值
STREAM_ID来自iptv-org数据库的频道ID可选ExampleTV.us
CHANNEL_NAME完整的频道名称必填Example TV
QUALITY最高流质量可选1080p, 720p, 480p
LABEL可用性信息可选地理限制, 非24/7
STREAM_URL流的URL必填https://example.com/stream.m3u8

如有必要,可以通过属性或#EXTVLCOPT标签指定额外的HTTP头。

来源: CONTRIBUTING.md102-141

贡献工作流程

来源: CONTRIBUTING.md9-100 CONTRIBUTING.md159-188

要向播放列表中添加新的流链接

  1. 创建一个issue,使用“添加流”模板,提供流URL和频道ID
  2. 提交一个pull request,直接将流添加到streams/目录中相应的国家文件中

提交前,请验证

  • 流至少稳定运行一分钟
  • 流尚未在存储库中
  • 您拥有来自iptv-org.github.io的正确频道ID
  • 频道未被列入黑名单
  • 流不是来自Xtream Codes服务器

来源: CONTRIBUTING.md11-30

报告损坏的流

要报告损坏的流

  1. 使用“损坏的流”模板创建一个issue
  2. 提供无法工作的流URL
  3. 验证流是否确实损坏,而不仅仅是地理限制
  4. 等待替换或移除

您可以使用VLC播放器或内置测试脚本测试流

来源: CONTRIBUTING.md52-92

请求移除流

频道所有者或其代表可以请求移除

  1. 使用“移除请求”模板创建一个issue
  2. 等待所有权验证(通常在1个工作日内)
  3. 批准后,频道将被立即移除并添加到黑名单

来源: CONTRIBUTING.md94-100

开发基础设施

IPTV项目使用强大的脚本和GitHub Actions工作流系统来维护质量并自动化例行流程。

来源: CONTRIBUTING.md159-198

脚本

该项目使用Node.js脚本来自动化维护任务。主要脚本包括:

脚本描述
playlist:format格式化播放列表(标准化URL、删除重复项、排序链接)
playlist:update使用已批准的issue更改更新播放列表
playlist:generate从内部源生成所有公共播放列表
playlist:validate检查ID和链接是否有错误
playlist:lint检查语法错误
playlist:test测试播放列表中的链接
api:generate为API存储库生成JSON数据
readme:update更新README.md播放列表列表

要运行脚本,请在安装Node.js后使用npm run <script-name>

来源: CONTRIBUTING.md159-188

自动化工作流

GitHub Actions工作流自动化了系统的维护

工作流触发器功能
check新的pull request验证更改,以防止错误合并
format手动格式化播放列表以保持一致性
update每日和手动使用新更改更新播放列表并部署到GitHub Pages

这些工作流确保了代码质量、一致性,并自动化了部署过程。

来源: CONTRIBUTING.md189-198

贡献者项目结构

了解存储库结构对于贡献者至关重要

目录描述
.github/Issue模板和工作流配置
.readme/用于生成README.md的文件
scripts/用于自动化的Node.js脚本
streams/按国家组织的流文件(主要贡献目标)
tests/脚本测试文件

在添加或修改流时,贡献者将主要处理streams/目录中的文件,这些文件按国家代码组织。

来源: CONTRIBUTING.md142-158

贡献最佳实践

在为IPTV项目做出贡献时

  1. 遵循模板 - 为流描述使用精确的格式
  2. 提交前验证 - 测试流至少一分钟
  3. 使用正确的频道ID - 始终参考iptv-org数据库
  4. 具体说明 - 适用时包含质量和可用性标签
  5. 记录HTTP要求 - 必要时添加用户代理或引荐头

遵循这些实践有助于维护存储库的一致性和质量。

来源: CONTRIBUTING.md11-141