Skip to content

melancn/gdlt_epg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 

Repository files navigation

YSP - 广东联通 EPG 数据代理服务

YSP (Yet Another EPG Service) 是一个用于获取和缓存电视频道电子节目指南(EPG)数据的HTTP代理服务。

功能特点

  • 频道映射管理: 从远程API获取频道名称与数据链接的映射关系
  • EPG数据获取: 获取电视节目的电子节目指南数据
  • 智能缓存机制: 支持9天(216小时)的缓存,最多存储10000条缓存记录
  • 别名映射: 支持频道名称的别名替换功能

安装和运行

先决条件

  • Go 1.16 或更高版本
  • 广东联通网络以获取远程EPG数据

安装

# 克隆项目
go mod download # 下载依赖

运行

go run ysp.go [options]

配置选项

程序支持以下命令行参数:

参数 默认值 描述
-url http://120.87.12.38:8083/epg/api/page/biz_59417088.json 频道映射API的URL
-epgurl https://0777.112114.xyz/ EPG数据API的URL
-port 8080 服务器监听端口
-alias alias.json 别名映射文件路径
-config (无) 配置文件路径

配置文件

可以使用JSON格式的配置文件来设置参数:

{
  "channel_map_url": "http://your-channel-map-api.com",
  "epg_data_url": "http://your-epg-data-api.com",
  "port": "8080",
  "alias_file": "alias.json"
}

别名映射文件

别名映射文件是一个JSON文件,用于将频道名称映射到其他名称:

{
  "CCTV1高清": "CCTV1",
  "湖南卫视高清": "湖南卫视"
}

API 接口

获取EPG数据

GET /

参数:

  • ch (必需): 频道名称
  • date (必需): 日期,格式为 YYYY-MM-DD

示例:

GET /?ch=CCTV1&date=2024-01-01

响应格式:

{
  "date": "2024-01-01",
  "channel_name": "CCTV1",
  "url": "http://...",
  "epg_data": [
    {
      "start": "08:00",
      "desc": "",
      "end": "09:00",
      "title": "新闻联播"
    }
  ]
}

健康检查

GET /health

返回服务的健康状态和基本统计信息。

性能指标

GET /metrics

返回详细的服务指标信息,包括:

  • 缓存条目数量
  • 频道映射数量
  • 别名映射数量
  • 活跃锁数量
  • 频道屏蔽数量
  • HTTP客户端配置详情

内部工作机制

缓存策略

  • 缓存持续时间:9天(216小时)
  • 最大缓存条目:10000
  • 定期清理过期缓存(每小时执行)

并发控制

  • 每个频道有独立的读写锁,避免并发冲突
  • 最大频道锁数量限制为100个
  • 定期清理不用的锁

频道屏蔽

当某个频道的EPG数据API返回异常数据时,系统会临时屏蔽该频道的请求, 返回默认节目("精彩节目")直到次日。

About

广东联通epg服务

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages