Files
2026-06-29 03:41:14 +00:00

117 lines
4.7 KiB
YAML

name: Download and Update Files
on:
workflow_dispatch:
schedule:
- cron: '0 0,12 * * *' # 每天运行两次
jobs:
download-and-update:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Download and extract file
run: |
mkdir -p temp_download
cd temp_download
echo "开始下载文件..."
curl -L -o "single_line.zip" "https://raw.githubusercontent.com/PizazzGY/NewTVBox/refs/heads/main/单线路.zip"
if [ -f "single_line.zip" ]; then
echo "文件下载成功,开始解压..."
unzip -o single_line.zip -d ../
echo "文件解压完成"
else
echo "文件下载失败"
exit 1
fi
cd ..
rm -rf temp_download
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Process JSON
run: |
import json
import os
# 读取源文件
with open('TVBoxOSC/tvbox/api.json', 'r', encoding='utf-8') as f:
data = json.load(f)
# 需要移除的key列表
remove_keys = ['预告', '酷乐', '闪电', '鬼鬼', '混合', '兄弟', '天翼', '盘搜', '夸克', '本地', '配置中心', '即刻', '小斑快映', '玩偶哥哥', "玩偶", "快映", '木偶', '蜡笔', '至臻', '多多', '欧哥', '二小', '虎斑', '雷鲸', '海绵', '夸父', '趣盘', '双星', '清影', '人人', '糖果', "移动盘搜", '夸克盘搜', 'UC盘搜', '天翼盘搜', '123盘搜', '百度盘搜', '百酷', '米搜', '酷乐搜索', '爱看搜索', '鬼鬼搜索', '夸克推送', 'UC推送', '天翼推送', '123推送', '百度推送', '荐片', '七味', '80S', 'New6v', '美剧迷', '迅雷吧', '电影港', '狐狸君', 'Mp4电影', '美剧天堂', '电影天堂', '夸克云盘', 'UC', 'UC云盘', "阿里云盘", "阿里盘搜", '百度云盘', 'AList', '版本信息', 'push_agent', '123']
# 过滤sites列表
data['sites'] = [site for site in data['sites'] if site['key'] not in remove_keys]
# 读取live.json文件内容
try:
with open('TVBoxOSC/tvbox/live.json', 'r', encoding='utf-8') as f:
live_content = json.load(f)
# 合并lives内容
if isinstance(live_content, dict):
# 合并sites数组
if 'sites' in live_content:
# 确保data中有sites数组
if 'sites' not in data:
data['sites'] = []
# 将live.json中的sites添加到data的sites中
data['sites'].extend(live_content['sites'])
# 合并lives数组
if 'lives' in live_content:
data['lives'] = live_content['lives']
# 合并headers
if 'headers' in live_content:
data['headers'] = live_content['headers']
# 合并proxy
if 'proxy' in live_content:
data['proxy'] = live_content['proxy']
# 合并hosts
if 'hosts' in live_content:
data['hosts'] = live_content['hosts']
else:
print("Error: live.json is not a valid dictionary")
except FileNotFoundError:
print("live.json file not found, skipping content addition")
except json.JSONDecodeError:
print("Error: live.json is not a valid JSON file")
except Exception as e:
print(f"Error processing live.json: {str(e)}")
# 写入新文件
with open('TVBoxOSC/tvbox/xs.json', 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=4)
shell: python
- name: Check and commit changes
run: |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
if [[ -n "$(git status --porcelain)" ]]; then
echo "检测到文件变更,提交更新..."
git add .
git commit -m "Update: 更新文件 $(date '+%Y-%m-%d %H:%M:%S')"
git push
echo "更新已推送到仓库"
else
echo "没有检测到文件变更"
fi