Git Product home page Git Product logo

hangaoheng / php-epg-docker-server Goto Github PK

View Code? Open in Web Editor NEW

This project forked from takcc/php-epg-docker-server

0.0 0.0 0.0 5.88 MB

用 php 实现的 EPG 服务端, Docker🐳 部署,带设置界面,支持 DIYP & 百川 、 超级直播 以及 xmltv 格式。

Home Page: https://hub.docker.com/r/taksss/php-epg/

License: GNU General Public License v2.0

Shell 0.79% PHP 96.31% CSS 2.55% Dockerfile 0.35%

php-epg-docker-server's Introduction

php-epg

PHP-EPG-Docker-Server 📺

Docker Pulls Image Size

PHP 实现的 EPG(电子节目指南)服务端, Docker 部署,自带设置界面,支持 DIYP & 百川超级直播 以及 xmltv 格式。

主要功能 ℹ️

  • 支持返回 DIYP & 百川超级直播 以及 xmltv 格式 📡
  • 提供 amd64arm64 架构 Docker 镜像,支持电视盒子等设备 🐳
  • 基镜像采用 alpine-apache-php压缩后大小仅 20M 📦
  • 采用先构建再存数据库的策略,存在部分冗余数据,但能提高读取速度 🚀
  • 支持繁体中文频道匹配 🌐
  • 支持 多对一频道映射,支持正则表达式 🔄
  • 支持设置频道忽略字符表 🔇
  • 支持生成指定频道节目单 📝
  • 内置定时任务,支持设置定时拉取数据 ⏳
  • 兼容多种 xmltv 格式 🗂️
  • 使用 SQLite 数据库存储 🗃️
  • 包含网页设置页面 🌐
  • 支持多个 EPG 源 📡
  • 可配置数据保存天数 📅
  • 内置 phpLiteAdmin 方便管理数据库 🛠️

设置页面

内置正则表达式说明:

  • regex: 作为前缀

  • 示例:

    • regex:/^CCTV[-\s]*(\p{Han})/iu, $1 :将 CCTV风云足球cctv-风云音乐 等替换成 风云足球风云音乐

    • regex:/^CCTV[-\s]*(\d+(\s*PLUS|[K\+])?)(?!美洲|欧洲).*/i => CCTV$1 :将 CCTV 1综合CCTV-4K频道CCTV - 5+频道CCTV - 5PLUS频道 等替换成 CCTV1CCTV4KCCTV5+CCTV5PLUS(排除 CCTV4美洲CCTV4欧洲

    • regex:/^(深圳.*?)频道$/i, $1 :将 深圳xx频道 替换成 深圳xx

更新日志 📝

2024-8-5更新:

  1. 修改部分 openccupdate.php 代码,兼容 PHP 7.0 以上版本
  2. 新增 入库前处理频道名 选项( DIYP超级直播 用户保持默认 即可)
  3. 更新 manage.php ,打开设置页面时检查定时任务运行情况
  4. 优化正则表达式,增加 CCTV 5PLUS 频道匹配
  5. 新增 docker-compose.yml ,可持久化 adata.dbconfig.php 文件
  • 亦可使用以下命令,需确保 当前目录 包含上述文件
    docker run -d \
     --name php-epg \
     -v ./adata.db:/htdocs/epg/adata.db \
     -v ./config.php:/htdocs/epg/config.php \
     -p 5678:80 \
     --restart always \
     taksss/php-epg:latest

2024-7-31更新:

  1. 部分用户反馈 phpLiteAdmin-ngphp7.x 上打开较慢,已换回之前的 phpLiteAdmin 1.9.71
  2. 修复 phpLiteAdmin 1.9.71 部分节目不显示的问题:
    • 将部分 substrstrlen 替换为 mb_substrmb_strlen
  3. 修复未进入“更多设置”页面,Ctrl+S 会清空限定频道列表的问题

2024-7-30更新:

  1. 支持繁体中文频道匹配(感谢 overtrue/php-opencc
  2. 支持生成指定频道节目单(可通过 .txt.m3u 节目源导入
  3. 调整页面布局,将部分设置放至“更多设置”页面中
  4. 生成 .xml.gz 时,默认只包含预告数据(可在设置中更改)
  5. 修改频道忽略字符串逻辑,将忽略空格设为可选(默认开启)
  6. EPG 地址列表支持 Ctrl + / 设置(取消)注释
  7. 重构部分代码,加快数据生成速度,降低内存占用
  8. 改用 phpLiteAdmin-ng ,修复节目显示不完全的问题
  9. 修复频道包含 & 字符,报 Warning 的问题
  10. 修复 cron.php 首次执行在特定情况下异常的问题

功能基本完善,没大改动的话会比较少更新了。

2024-7-26更新:

  1. 自定义频道名支持多对一映射
  2. 支持整合 xmltv,并生成 .xml.gz 文件,降低硬盘占用
  3. 支持查看、搜索数据库频道列表,方便填写映射
  4. 修复 cron.php 在第三天失效的问题
  5. 删除 epg_lovetv 表,超级直播数据直接从对应 DIYP 中生成,减少数据冗余
  6. 优化更新当天数据的逻辑,避免更新时无法获取节目表

2024-7-21更新:

  1. 支持 超级直播 格式
  2. 重构代码,基镜像改为 alpine-apache-php ,镜像大小从 155M 下降到 23M
  3. 支持解析 M3U4U 等非 .xml/.gz 结尾 EPG 地址
  4. 数据分批插入,降低内存占用
  5. 修复部分界面显示异常问题
  6. 修复设置页面刷新,提示“是否重新提交表单”问题
  7. 增加接口测试说明

2024-7-18更新:

  1. 提供 Docker🐳 镜像(基于 php:7.4-apache ,支持 x86-64 跟 arm64 )
  2. 支持定时更新数据库
  3. EPG 源支持添加注释
  4. 支持更改登录密码 【默认为空!!!】
  5. 支持查看定时任务日志
  6. 支持查看数据库更新日志
  7. 配置页面支持 Ctrl+S 保存
  8. 更新部署流程

2024-7-14更新:

  1. 改用 Docker Compose🐳 部署
  2. 更新部署流程

2024-7-13更新:

  1. 优化自带正则表达式
  2. 更新默认返回数据,供回放使用
  3. 增加 TiviMate 示例图片

2024-7-13初始版本:

  1. 支持标准 xmltv 和 DIYP&百川 格式
  2. 包含网页设置页面
  3. 支持多个 EPG 源
  4. 可配置数据保存天数
  5. 支持设置频道忽略字符串
  6. 支持频道映射,支持正则表达式
  7. 内置 phpLiteAdmin 方便管理数据库

TODO:

  • 支持返回超级直播格式
  • 整合更轻量的 alpine-apache-php 容器
  • 整合生成 xml 文件
  • 支持多对一频道映射
  • 支持繁体频道匹配
  • 仅保存指定频道列表节目单

部署步骤 🚀

  1. 配置 Docker 环境

  2. 若已安装过,先删除旧版本(注意备份数据)

    docker rm php-epg -f
  3. 拉取镜像并运行:

    docker run -d \
      --name php-epg \
      -p 5678:80 \
      --restart always \
      taksss/php-epg:latest

    默认端口为 5678 ,根据需要自行修改。

  • adata.dbconfig.php 文件持久化:
    • 下载 源代码 后,在 根目录 执行 docker-compose up -d 部署(后续升级无需重新下载源代码)
    • 或执行以下命令 ,需确保 当前目录 存在文件
      docker run -d \
        --name php-epg \
        -v ./adata.db:/htdocs/epg/adata.db \
        -v ./config.php:/htdocs/epg/config.php \
        -p 5678:80 \
        --restart always \
        taksss/php-epg:latest

使用步骤 🛠️

  1. 在浏览器中打开 http://{服务器IP地址}:5678/epg/manage.php

  2. 默认密码为空,根据需要自行设置

  3. 添加 EPG 源地址, GitHub 源确保能够访问,点击 更新配置 保存

  4. 点击 更新数据库 拉取数据,点击 数据库更新日志 查看日志,点击 查看数据库 查看具体条目

  5. 设置 定时任务 ,点击 更新配置 保存,点击 定时任务日志 查看定时任务时间表

  6. 点击 更多设置 ,选择是否 生成xml文件生成方式 ,设置 限定频道节目单

  7. 用浏览器测试各个接口的返回结果是否正确:

    • xmltv 接口: http://{服务器IP地址}:5678/epg/index.php

    • DIYP&百川 接口: http://{服务器IP地址}:5678/epg/index.php?ch=CCTV1

    • 超级直播 接口: http://{服务器IP地址}:5678/epg/index.php?channel=CCTV1

  8. http://{服务器IP地址}:5678/epg/index.php 填入 DIYPTiviMate 等软件的 EPG 地址栏

    • ⚠️ 直接使用 docker run 运行的话,可以将 :5678/epg/index.php 替换为 :5678/epg
    • ⚠️ 部分软件不支持跳转解析 xmltv 文件,可直接使用 :5678/epg/t.xml.gz 访问。

快捷键:

  • Ctrl + S:保存设置

  • Ctrl + /:对选中 EPG 地址设置(取消)注释

设置定时任务

设置定时任务

定时任务日志

定时任务日志

更新日志

更新日志

查看、搜索频道

查看频道列表

更多设置

更多设置

phpLiteAdmin

phpLiteAdmin

效果示例 🖼️

DIYP

DIYP 示例

TiviMate

TiviMate

特别鸣谢 🙏

php-epg-docker-server's People

Contributors

takcc avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.