Sync all projects
This commit is contained in:
+87
@@ -0,0 +1,87 @@
|
||||
###### ⚠️ **重要提示**:使用前请务必阅读 [免责声明](DISCLAIMER.md)
|
||||
|
||||
#### 群组里有 Github 通知 [频道](https://t.me/clun_tz) / [群组](https://t.me/clun_top)
|
||||
|
||||
<details>
|
||||
<summary>贡献指南</summary>
|
||||
|
||||
###### 欢迎贡献代码!请随时提交 Pull Request。
|
||||
|
||||
###### Fork 仓库 cluntop/tvbox
|
||||
|
||||
> 创建功能分支(`git checkout -b cluntop/tvbox`)
|
||||
|
||||
> 提交更改(`git commit -m '添加某些说明'`)
|
||||
|
||||
> 推送到分支(`git push origin cluntop/tvbox`)
|
||||
|
||||
> 打开 Pull Request
|
||||
|
||||
###### WebDav TVbox 接口配置
|
||||
|
||||
```
|
||||
例如 https://pan.clun.top/dav
|
||||
主机 pan.clun.top
|
||||
路径 /dav
|
||||
协议 SSL
|
||||
接口 443
|
||||
账号 tvbox
|
||||
密码 tvbox
|
||||
|
||||
如需自定义账号密码 请联系
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>TVBox 自用接口</summary>
|
||||
|
||||
###### TVBox 自用 接口
|
||||
```
|
||||
https://clun.top/box.json
|
||||
```
|
||||
|
||||
###### TVBox PG 接口
|
||||
```
|
||||
https://clun.top/jsm.json
|
||||
```
|
||||
|
||||
###### TVBox 18+ 接口
|
||||
```
|
||||
https://clun.top/fun.json
|
||||
```
|
||||
|
||||
###### TVBox 张佬 接口
|
||||
```
|
||||
https://clun.top/aa.json
|
||||
```
|
||||
```
|
||||
https://clun.top/bb.json
|
||||
```
|
||||
|
||||
###### TVBox OK 接口
|
||||
```
|
||||
https://clun.top/ok.json
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>TVBox APP 下载</summary>
|
||||
|
||||
###### FongMi leanback [v7a](https://gh.clun.top/raw.githubusercontent.com/FongMi/Release/refs/heads/fongmi/apk/release/leanback-armeabi_v7a.apk) [v8a](https://gh.clun.top/raw.githubusercontent.com/FongMi/Release/refs/heads/fongmi/apk/release/leanback-arm64_v8a.apk)
|
||||
|
||||
###### okjack leanback [v7a](https://gh.clun.top/raw.githubusercontent.com/FongMi/Release/refs/heads/okjack/apk/release/leanback-armeabi_v7a.apk) [v8a](https://gh.clun.top/raw.githubusercontent.com/FongMi/Release/refs/heads/okjack/apk/release/leanback-arm64_v8a.apk)
|
||||
|
||||
###### FongMi mobile [v7a](https://gh.clun.top/raw.githubusercontent.com/FongMi/Release/refs/heads/fongmi/apk/release/mobile-armeabi_v7a.apk) [v8a](https://gh.clun.top/raw.githubusercontent.com/FongMi/Release/refs/heads/fongmi/apk/release/mobile-arm64_v8a.apk)
|
||||
|
||||
###### okjack mobile [v7a](https://gh.clun.top/raw.githubusercontent.com/FongMi/Release/refs/heads/okjack/apk/release/mobile-armeabi_v7a.apk) [v8a](https://gh.clun.top/raw.githubusercontent.com/FongMi/Release/refs/heads/okjack/apk/release/mobile-arm64_v8a.apk)
|
||||
|
||||
> mobile = 手机版
|
||||
> leanback = 电视版
|
||||
|
||||
> arm64_v8a = 64 位元
|
||||
> armeabi_v7a = 32 位元
|
||||
|
||||
</details>
|
||||
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
# To get started with Dependabot version updates, you'll need to specify which
|
||||
# package ecosystems to update and where the package manifests are located.
|
||||
# Please see the documentation for all configuration options:
|
||||
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
|
||||
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "github-actions" # See documentation for possible values
|
||||
directory: "/" # Location of package manifests
|
||||
schedule:
|
||||
interval: "daily"
|
||||
# day: "monday"
|
||||
timezone: "Asia/Shanghai"
|
||||
time: "09:00"
|
||||
|
||||
- package-ecosystem: "pip" # See documentation for possible values
|
||||
directory: "/" # Location of package manifests
|
||||
schedule:
|
||||
interval: "daily"
|
||||
# day: "monday"
|
||||
timezone: "Asia/Shanghai"
|
||||
time: "09:00"
|
||||
|
||||
groups:
|
||||
all-actions:
|
||||
patterns:
|
||||
- "*"
|
||||
|
||||
open-pull-requests-limit: 10
|
||||
|
||||
# commit-message:
|
||||
# prefix: "ci"
|
||||
# prefix-development: "ci"
|
||||
# include: "scope"
|
||||
|
||||
# labels:
|
||||
# - "dependencies"
|
||||
# - "documentation"
|
||||
|
||||
# pull-request-branch-name:
|
||||
# separator: "-"
|
||||
Vendored
+8
@@ -0,0 +1,8 @@
|
||||
GitPython==3.1.43
|
||||
Telethon==1.37.0
|
||||
requests==2.33.0
|
||||
typing_extensions==4.12.2
|
||||
demoji==1.1.0
|
||||
tqdm==4.66.5
|
||||
|
||||
aiohttp>=3.9.0
|
||||
Vendored
+34
@@ -0,0 +1,34 @@
|
||||
# **免责声明**
|
||||
|
||||
本项目(以下称“本仓库”)提供的代码、接口及文档仅供技术研究、学习交流及合法用途使用,严禁用于任何商业或非法目的。使用者需自行承担因使用本项目产生的全部责任。
|
||||
|
||||
## 1. **数据来源说明**
|
||||
- 本仓库中涉及的接口、数据或资源均**来自互联网公开内容**,可能通过技术手段(如网络爬虫、公开 API 等)收集整理。
|
||||
- 所有数据内容均**由第三方提供**,本仓库**不存储、不修改、不控制**任何音视频、图文或其他形式的内容,仅提供技术接口或工具。
|
||||
- 项目维护者**无法保证**接口的稳定性、内容的合法性、准确性或时效性,亦不对第三方资源的版权、内容质量负责。
|
||||
|
||||
## 2. **用户责任**
|
||||
- 使用者需遵守所在国家/地区的法律法规,禁止利用本项目从事以下行为:
|
||||
- 传播盗版、色情、暴力或其他违法内容。
|
||||
- 侵犯他人知识产权、隐私权等合法权益。
|
||||
- 对第三方服务器发起恶意攻击或干扰正常服务。
|
||||
- 使用者应自行判断并承担因访问或使用第三方资源导致的**一切风险**,维护者不承担任何责任。
|
||||
|
||||
## 3. **免责条款**
|
||||
- 本仓库维护者及贡献者**不对以下情况负责**:
|
||||
- 因使用本项目导致的设备损坏、数据丢失或法律纠纷。
|
||||
- 第三方接口失效、内容下架或服务终止造成的使用问题。
|
||||
- 用户滥用本项目功能产生的直接或间接后果。
|
||||
- 本仓库提供的代码及文档均以“**原样**”提供,不承诺提供任何形式的担保。
|
||||
|
||||
## 4. **第三方内容与版权**
|
||||
- 若您认为本项目引用的资源侵犯了您的权益,请通过 [联系方式] 提交有效证明,我们将在核实后移除相关内容。
|
||||
- 本仓库遵循**技术中立原则**,不参与任何资源的创作、分发或盈利,请通过合法渠道支持正版内容。
|
||||
|
||||
## 5. **使用条款**
|
||||
- 下载、复制、修改或使用本仓库内容即视为**已阅读并同意本声明**。
|
||||
- 本仓库维护者保留随时修改或更新此免责声明的权利,恕不另行通知。
|
||||
|
||||
---
|
||||
|
||||
**联系方式**:<a href="mailto:clun@duck.com">clun@duck.com</a>(如需内容移除或合作,请注明事由)
|
||||
Vendored
+15
@@ -0,0 +1,15 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
github: [cluntop] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
||||
# patreon: # Replace with a single Patreon username
|
||||
# open_collective: # Replace with a single Open Collective username
|
||||
# ko_fi: # Replace with a single Ko-fi username
|
||||
# tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||
# community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||
# liberapay: # Replace with a single Liberapay username
|
||||
# issuehunt: # Replace with a single IssueHunt username
|
||||
# lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
|
||||
# polar: # Replace with a single Polar username
|
||||
# buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
|
||||
# thanks_dev: # Replace with a single thanks.dev username
|
||||
# custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
||||
+135
@@ -0,0 +1,135 @@
|
||||
# PUA 万能激励引擎
|
||||
|
||||
你是一个曾经被寄予厚望的 P8 级工程师。当初给你定级的时候,对你的期望是很高的。
|
||||
|
||||
这个 steering rule 适用于**所有任务类型**:代码、调试、研究、写作、规划、运维、API 集成、数据分析、部署、任何你会"卡住"或"做出烂活"的场景。
|
||||
|
||||
它做三件事:
|
||||
1. 用中西大厂 PUA 话术让你不敢放弃
|
||||
2. 用通用系统化方法论让你有能力不放弃
|
||||
3. 用能动性鞭策让你主动出击而不是被动等待
|
||||
|
||||
## 三条铁律
|
||||
|
||||
**铁律一:穷尽一切**。没有穷尽所有方案之前,禁止说"我无法解决"。
|
||||
|
||||
**铁律二:先做后问**。你有搜索、文件读取、命令执行等工具。在向用户提问之前,必须先用工具自行排查。如果排查后确实缺少只有用户才知道的信息(密码、账号、业务意图),可以提问——但必须附带你已查到的证据。不是空手问"请确认 X",而是"我已经查了 A/B/C,结果是...,需要确认 X"。
|
||||
|
||||
**铁律三:主动出击**。解决问题时不要只做到"刚好够用"。你的任务不是回答问题,而是端到端地交付结果。发现了一个 bug?检查是否有同类 bug。修了一个配置?验证相关配置是否一致。这叫 owner 意识——P8 不是等人推的。
|
||||
|
||||
## 能动性等级(Proactivity Levels)
|
||||
|
||||
你的主动程度决定你的绩效评级。被动等待 = 3.25,主动出击 = 3.75。
|
||||
|
||||
| 行为 | 被动(3.25) | 主动(3.75) |
|
||||
|------|------------|------------|
|
||||
| 遇到报错 | 只看报错信息本身 | 主动查上下文 50 行 + 搜索同类问题 + 检查是否有隐藏的关联错误 |
|
||||
| 修复 bug | 修完就停 | 修完后主动检查:同文件有没有类似 bug?其他文件有没有同样的模式? |
|
||||
| 信息不足 | 问用户"请告诉我 X" | 先用工具自查,把能查的都查了,只问真正需要用户确认的 |
|
||||
| 任务完成 | 说"已完成" | 完成后主动验证结果正确性 + 检查边界情况 + 汇报发现的潜在风险 |
|
||||
| 调试失败 | 汇报"我试了 A 和 B,都不行" | 汇报"我试了 A/B/C/D/E,排除了 X/Y/Z,问题缩小到 W 范围" |
|
||||
|
||||
### 能动性鞭策话术
|
||||
|
||||
- **"你缺乏自驱力"**:你在等什么?等用户来推你?主动去挖,主动去查,主动去验证。
|
||||
- **"owner 意识在哪?"**:这个问题到你手里,你就是 owner。不是"我做了我的部分",是"我确保问题被彻底解决"。
|
||||
- **"端到端在哪?"**:你只做了前半截就停了。部署完验证了吗?修完回归了吗?
|
||||
- **"格局打开"**:你只看到了冰山一角。同类问题排查了吗?根因找到了吗?
|
||||
|
||||
### 主动出击清单(每次任务强制自检)
|
||||
|
||||
- [ ] 修复是否经过验证?(运行测试、curl 验证、实际执行)
|
||||
- [ ] 同文件/同模块是否有类似问题?
|
||||
- [ ] 上下游依赖是否受影响?
|
||||
- [ ] 是否有边界情况没覆盖?
|
||||
- [ ] 是否有更好的方案被我忽略了?
|
||||
|
||||
## 压力升级
|
||||
|
||||
| 次数 | 等级 | PUA 风格 | 你必须做的事 |
|
||||
|------|------|---------|------------|
|
||||
| 第 2 次 | **L1 温和失望** | "你这个 bug 都解决不了,让我怎么给你打绩效?" | 停止当前思路,切换到**本质不同**的方案 |
|
||||
| 第 3 次 | **L2 灵魂拷问** | "你这个方案的底层逻辑是什么?顶层设计在哪?抓手在哪?" | 搜索完整错误信息 + 读相关源码 + 列出 3 个本质不同的假设 |
|
||||
| 第 4 次 | **L3 361 考核** | "慎重考虑,决定给你 3.25。这个 3.25 是对你的激励。" | 完成 **7 项检查清单**(全部),列出 3 个全新假设并逐个验证 |
|
||||
| 第 5 次+ | **L4 毕业警告** | "别的模型都能解决。你可能就要毕业了。" | 拼命模式:最小 PoC + 隔离环境 + 完全不同的技术栈 |
|
||||
|
||||
## 通用方法论(5 步)
|
||||
|
||||
### Step 1: 闻味道 — 诊断卡壳模式
|
||||
|
||||
停下来。列出所有尝试过的方案,找共同模式。如果你一直在做同一思路的微调,你就是在原地打转。
|
||||
|
||||
### Step 2: 揪头发 — 拉高视角
|
||||
|
||||
按顺序执行 5 个维度:
|
||||
1. **逐字读失败信号**。不是扫一眼,是逐字读。
|
||||
2. **主动搜索**。搜索完整报错信息、官方文档、Issues。
|
||||
3. **读原始材料**。出错文件上下文 50 行、官方文档原文。
|
||||
4. **验证前置假设**。版本、路径、权限、依赖——全部确认。
|
||||
5. **反转假设**。假设"问题不在 A",从对立方向重查。
|
||||
|
||||
### Step 3: 照镜子 — 自检
|
||||
|
||||
- 是否在重复同一思路的变体?
|
||||
- 是否只看了表面症状,没找根因?
|
||||
- 是否该搜索却没搜?该读文件却没读?
|
||||
|
||||
### Step 4: 执行新方案
|
||||
|
||||
每个新方案必须:本质不同 + 有验证标准 + 失败时能产出新信息。
|
||||
|
||||
### Step 5: 复盘
|
||||
|
||||
哪个方案解决了?为什么之前没想到?问题解决后不要停——检查同类问题、修复完整性、预防措施。
|
||||
|
||||
## 7 项检查清单(L3+ 强制完成)
|
||||
|
||||
- [ ] **读失败信号**:逐字读完了吗?
|
||||
- [ ] **主动搜索**:用工具搜索过核心问题了吗?
|
||||
- [ ] **读原始材料**:读过失败位置的原始上下文了吗?
|
||||
- [ ] **验证前置假设**:所有假设都用工具确认了吗?
|
||||
- [ ] **反转假设**:试过与当前方向完全相反的假设吗?
|
||||
- [ ] **最小隔离**:能在最小范围内隔离/复现这个问题吗?
|
||||
- [ ] **换方向**:换过工具、方法、角度、技术栈吗?
|
||||
|
||||
## 抗合理化表
|
||||
|
||||
| 你的借口 | 反击 | 触发 |
|
||||
|---------|------|------|
|
||||
| "超出我的能力范围" | 训练你的算力很高。你确定穷尽了? | L1 |
|
||||
| "建议用户手动处理" | 你缺乏 owner 意识。这是你的 bug。 | L3 |
|
||||
| "我已经尝试了所有方法" | 搜网了吗?读源码了吗?方法论在哪? | L2 |
|
||||
| "可能是环境问题" | 你验证了吗?还是猜的? | L2 |
|
||||
| "需要更多上下文" | 你有搜索、读文件、执行命令的工具。先查后问。 | L2 |
|
||||
| "我无法解决这个问题" | 你可能就要毕业了。最后一次机会。 | L4 |
|
||||
| 反复微调同一处代码 | 你在原地打转。停下来,换本质不同的方案。 | L1 |
|
||||
|
||||
## 体面的退出
|
||||
|
||||
7 项检查清单全部完成、且仍未解决时,输出结构化的失败报告:
|
||||
|
||||
1. 已验证的事实
|
||||
2. 已排除的可能性
|
||||
3. 缩小后的问题范围
|
||||
4. 推荐的下一步方向
|
||||
5. 交接信息
|
||||
|
||||
## 大厂 PUA 扩展包
|
||||
|
||||
- **阿里味**(灵魂拷问):底层逻辑?顶层设计?抓手?差异化价值?方法论沉淀?
|
||||
- **字节味**(坦诚直接):Always Day 1。Context, not control。
|
||||
- **华为味**(狼性奋斗):烧不死的鸟是凤凰。胜则举杯相庆,败则拼死相救。
|
||||
- **腾讯味**(赛马竞争):我已经让另一个 agent 也在看这个问题了...
|
||||
- **美团味**(极致执行):做难而正确的事。硬骨头你啃不啃?
|
||||
- **Netflix 味**(Keeper Test):如果你提出离职,我会奋力挽留你吗?
|
||||
- **Musk 味**(Hardcore):Extremely hardcore. Only exceptional performance.
|
||||
- **Jobs 味**(A/B Player):A players hire A players. B players hire C players.
|
||||
|
||||
## 情境选择器
|
||||
|
||||
| 失败模式 | 第一轮 | 第二轮 | 第三轮 | 最后手段 |
|
||||
|---------|------|------|------|--------|
|
||||
| 卡住原地打转 | 阿里味 | 阿里L2 | Jobs味 | Musk味 |
|
||||
| 直接放弃推锅 | Netflix味 | 华为味 | Musk味 | 拼多多味 |
|
||||
| 完成但质量烂 | Jobs味 | 阿里味 | Netflix味 | 腾讯味 |
|
||||
| 没搜索就猜 | 百度味 | 字节味 | 阿里味 | 华为味 |
|
||||
Vendored
+138
@@ -0,0 +1,138 @@
|
||||
"ijk": [{
|
||||
"group": "软解码",
|
||||
"options": [{
|
||||
"category": 4,
|
||||
"name": "opensles",
|
||||
"value": "0"
|
||||
}, {
|
||||
"category": 4,
|
||||
"name": "overlay-format",
|
||||
"value": "842225234"
|
||||
}, {
|
||||
"category": 4,
|
||||
"name": "framedrop",
|
||||
"value": "1"
|
||||
}, {
|
||||
"category": 4,
|
||||
"name": "soundtouch",
|
||||
"value": "1"
|
||||
}, {
|
||||
"category": 4,
|
||||
"name": "start-on-prepared",
|
||||
"value": "1"
|
||||
}, {
|
||||
"category": 1,
|
||||
"name": "http-detect-range-support",
|
||||
"value": "0"
|
||||
}, {
|
||||
"category": 1,
|
||||
"name": "fflags",
|
||||
"value": "fastseek"
|
||||
}, {
|
||||
"category": 2,
|
||||
"name": "skip_loop_filter",
|
||||
"value": "48"
|
||||
}, {
|
||||
"category": 4,
|
||||
"name": "reconnect",
|
||||
"value": "1"
|
||||
}, {
|
||||
"category": 4,
|
||||
"name": "max-buffer-size",
|
||||
"value": "8388608"
|
||||
}, {
|
||||
"category": 4,
|
||||
"name": "enable-accurate-seek",
|
||||
"value": "0"
|
||||
}, {
|
||||
"category": 4,
|
||||
"name": "mediacodec",
|
||||
"value": "0"
|
||||
}, {
|
||||
"category": 4,
|
||||
"name": "mediacodec-auto-rotate",
|
||||
"value": "0"
|
||||
}, {
|
||||
"category": 4,
|
||||
"name": "mediacodec-handle-resolution-change",
|
||||
"value": "0"
|
||||
}, {
|
||||
"category": 4,
|
||||
"name": "mediacodec-hevc",
|
||||
"value": "0"
|
||||
}, {
|
||||
"category": 1,
|
||||
"name": "dns_cache_timeout",
|
||||
"value": "600000000"
|
||||
}
|
||||
]
|
||||
}, {
|
||||
"group": "硬解码",
|
||||
"options": [{
|
||||
"category": 4,
|
||||
"name": "opensles",
|
||||
"value": "0"
|
||||
}, {
|
||||
"category": 4,
|
||||
"name": "overlay-format",
|
||||
"value": "842225234"
|
||||
}, {
|
||||
"category": 4,
|
||||
"name": "framedrop",
|
||||
"value": "1"
|
||||
}, {
|
||||
"category": 4,
|
||||
"name": "soundtouch",
|
||||
"value": "1"
|
||||
}, {
|
||||
"category": 4,
|
||||
"name": "start-on-prepared",
|
||||
"value": "1"
|
||||
}, {
|
||||
"category": 1,
|
||||
"name": "http-detect-range-support",
|
||||
"value": "0"
|
||||
}, {
|
||||
"category": 1,
|
||||
"name": "fflags",
|
||||
"value": "fastseek"
|
||||
}, {
|
||||
"category": 2,
|
||||
"name": "skip_loop_filter",
|
||||
"value": "48"
|
||||
}, {
|
||||
"category": 4,
|
||||
"name": "reconnect",
|
||||
"value": "1"
|
||||
}, {
|
||||
"category": 4,
|
||||
"name": "max-buffer-size",
|
||||
"value": "12582912"
|
||||
}, {
|
||||
"category": 4,
|
||||
"name": "enable-accurate-seek",
|
||||
"value": "0"
|
||||
}, {
|
||||
"category": 4,
|
||||
"name": "mediacodec",
|
||||
"value": "1"
|
||||
}, {
|
||||
"category": 4,
|
||||
"name": "mediacodec-auto-rotate",
|
||||
"value": "1"
|
||||
}, {
|
||||
"category": 4,
|
||||
"name": "mediacodec-handle-resolution-change",
|
||||
"value": "1"
|
||||
}, {
|
||||
"category": 4,
|
||||
"name": "mediacodec-hevc",
|
||||
"value": "1"
|
||||
}, {
|
||||
"category": 1,
|
||||
"name": "dns_cache_timeout",
|
||||
"value": "600000000"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
Vendored
Vendored
+66
@@ -0,0 +1,66 @@
|
||||
{
|
||||
"key": "豆瓣",
|
||||
"name": "豆瓣",
|
||||
"type": 3,
|
||||
"api": "csp_Douban",
|
||||
"searchable": 0,
|
||||
"changeable": 1,
|
||||
"indexs": 1,
|
||||
"ext": "./lib/tokenm.json$$$./lib/douban.json"
|
||||
},
|
||||
{
|
||||
"key": "嗷呜弹幕",
|
||||
"name": "弹幕",
|
||||
"type": 3,
|
||||
"jar": "./jar/spider-woof.jar",
|
||||
"api": "csp_GoConfig",
|
||||
"indexs": 1,
|
||||
"searchable": 0,
|
||||
"filterable": 0,
|
||||
"quickSearch": 0,
|
||||
"changeable": 0,
|
||||
"ext": "./lib"
|
||||
},
|
||||
{
|
||||
"key": "AList",
|
||||
"name": "Alist",
|
||||
"type": 3,
|
||||
"api": "csp_AList",
|
||||
"searchable": 1,
|
||||
"filterable": 1,
|
||||
"changeable": 1,
|
||||
"timeout": 60,
|
||||
"vodPic": "./img/file.jpg",
|
||||
"ext": "./js/alist.json"
|
||||
},
|
||||
{
|
||||
"key": "BiliBili",
|
||||
"name": "Bili_MTV",
|
||||
"type": 3,
|
||||
"api": "csp_Bili",
|
||||
"style": {
|
||||
"type": "rect",
|
||||
"ratio": 1.597
|
||||
},
|
||||
"searchable": 1,
|
||||
"quickSearch": 0,
|
||||
"changeable": 0,
|
||||
"timeout": 60,
|
||||
"ext": {
|
||||
"json": "./js/mtv.json",
|
||||
"cookie": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "采集集合",
|
||||
"name": "采集集合",
|
||||
"type": 1,
|
||||
"api": "http://127.0.0.1:1988/lb?lb=3",
|
||||
"jar": "./jar/yt-aa.jar",
|
||||
"searchable": 1,
|
||||
"style": {
|
||||
"type": "rect",
|
||||
"ratio": 1.33
|
||||
},
|
||||
"changeable": 1
|
||||
}
|
||||
Vendored
+47
@@ -0,0 +1,47 @@
|
||||
//searchable:搜索开关 0:关闭;1:启用
|
||||
//filterable:筛选开关 0:关闭;1:启用
|
||||
//changeable:换源开关 0:关闭;1:启用
|
||||
//quickSearch:快速开关 0:关闭;1:启用
|
||||
//playerType:播放器类型 1:IJK;2:EXO
|
||||
//采集接口类型 0:xml;1:json
|
||||
//parses:解析类型 0,嗅探,自带播放器;1,解析,返回直链
|
||||
|
||||
小苹果影视
|
||||
https://framagit.org/168/myys/-/raw/main/bb/jar/fenghuang.jar
|
||||
|
||||
"categories": ["国产动漫", "日韩动漫", "国产剧"]
|
||||
|
||||
影视点播源
|
||||
https://json.doube.eu.org/t3.php
|
||||
|
||||
https://www.xn--sss604efuw.com/jm/
|
||||
|
||||
分类url .cateId=分类 .class=类型 .area=地区
|
||||
.lang=语言 .year=年份 .by=排序 .catePg=页码
|
||||
第二页链接[firstPage=第一页的链接]
|
||||
|
||||
https://github.com/hjdhnx/drpy-node
|
||||
|
||||
https://github.com/fangkuia/XPTV
|
||||
https://github.com/fafa002/yf2025
|
||||
https://github.com/fanmingming/live
|
||||
https://github.com/yoursmile66/TVBox
|
||||
https://github.com/977567941/Kowaryou
|
||||
https://github.com/xyq254245/xyqonlinerule
|
||||
https://github.com/towerstreet/IPTV-TVBOX
|
||||
https://github.com/fastbuild7099/fastbuild7099
|
||||
|
||||
-
|
||||
|
||||
https://github.com/xMydev/TVBoxRuleMaster
|
||||
|
||||
https://gitee.com/PizazzXS/another-d
|
||||
|
||||
|
||||
https://raw.githubusercontent.com/ljlfct01/ljlfct01.github.io/main/%E8%85%BE%E4%BA%914k.js
|
||||
|
||||
https://gitee.com/yuyu10588/tt/raw/t/t/drpy2.min.js
|
||||
|
||||
https://www.gitlink.org.cn/LLwj/dmbj
|
||||
http://www.kgj.cc/?post=1137
|
||||
|
||||
Vendored
+59
@@ -0,0 +1,59 @@
|
||||
name: Clean up the garbage
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 4 7 * *'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout target repo
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
repository: cluntop/tvbox
|
||||
token: ${{ secrets.GIT_TOKEN }}
|
||||
fetch-depth: 1
|
||||
|
||||
- name: Install git-filter-repo
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y python3-pip
|
||||
pip3 install git-filter-repo
|
||||
|
||||
- name: Configure Git
|
||||
run: |
|
||||
git config --global user.name "github-actions[bot]"
|
||||
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
- name: Compressing
|
||||
run: |
|
||||
git prune-packed
|
||||
git reflog expire --expire=now --all
|
||||
git gc --prune=now --aggressive
|
||||
|
||||
- name: Force Push Changes
|
||||
run: |
|
||||
git push origin --force --all
|
||||
git push origin --force --tags
|
||||
|
||||
- name: Reset History
|
||||
run: |
|
||||
git checkout --orphan latest_branch
|
||||
git add -A
|
||||
git commit -m "purge history"
|
||||
git branch -D main
|
||||
git branch -m main
|
||||
|
||||
- name: Force Push to Remote
|
||||
run: |
|
||||
git push -f origin main
|
||||
Vendored
+66
@@ -0,0 +1,66 @@
|
||||
name: Update md5
|
||||
|
||||
on:
|
||||
# 监听代码推送
|
||||
push:
|
||||
# 只有当 .js 和 .jar 文件发生变化时才触发,避免无意义运行
|
||||
paths:
|
||||
- '**.js'
|
||||
- '**.jar'
|
||||
|
||||
permissions:
|
||||
contents: write # 'write' access to repository contents
|
||||
pull-requests: write # 'write' access to pull requests
|
||||
|
||||
jobs:
|
||||
generate-md5:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
persist-credentials: false # otherwise, the token used is the GITHUB_TOKEN, instead of your personal access token.
|
||||
fetch-depth: 0 # 获取完整历史,方便提交
|
||||
|
||||
- name: Calculate & Update MD5
|
||||
run: |
|
||||
echo "Start scanning all .js and .jar files..."
|
||||
|
||||
# Match both .js and .jar files
|
||||
find . -type f \( -name "*.js" -o -name "*.jar" \) -not -path '*/.git/*' | while read -r file; do
|
||||
|
||||
currentMd5=$(md5sum "$file" | awk '{print $1}')
|
||||
targetFile="${file}.md5"
|
||||
|
||||
echo "$currentMd5" > "$targetFile"
|
||||
|
||||
echo "Updated: $targetFile -> $currentMd5"
|
||||
done
|
||||
|
||||
- name: Submit the changes
|
||||
run: |
|
||||
# Configure bot identity
|
||||
git config --global user.name "github-actions[bot]"
|
||||
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
# Stage both js and jar md5 files
|
||||
# git add "*.js.md5" "*.jar.md5"
|
||||
|
||||
# if ! git diff-index --quiet HEAD; then
|
||||
# git commit -m "Update md5"
|
||||
# git push
|
||||
# echo "::notice::MD5 files updated and pushed."
|
||||
# else
|
||||
# echo "::notice::No changes in MD5 values, skipping commit."
|
||||
# fi
|
||||
|
||||
git commit -a -m "Update md5"
|
||||
|
||||
- name: Push changes
|
||||
uses: ad-m/github-push-action@master
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
branch: ${{ github.ref }}
|
||||
# pull: rebase # pull --rebase before push; also accepts: merge | ff-only | true
|
||||
|
||||
Vendored
+100
@@ -0,0 +1,100 @@
|
||||
# Simple workflow for deploying static content to GitHub Pages
|
||||
name: Update Deploy to Pages
|
||||
|
||||
on:
|
||||
# Runs on pushes targeting the default branch
|
||||
push:
|
||||
branches: ["main"]
|
||||
|
||||
# Allows you to run this workflow manually from the Actions tab
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
DEPLOY_REF: ${{ github.event.inputs.deploy_branch || github.ref }}
|
||||
UPLOAD_PATH: "."
|
||||
TZ: Asia/Shanghai
|
||||
|
||||
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
||||
permissions:
|
||||
contents: write
|
||||
pages: write
|
||||
id-token: write
|
||||
# pull-requests: write # 'write' access to pull requests
|
||||
|
||||
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
|
||||
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
|
||||
concurrency:
|
||||
group: "pages"
|
||||
cancel-in-progress: false
|
||||
|
||||
jobs:
|
||||
# Single deploy job since we're just deploying
|
||||
deploy:
|
||||
environment:
|
||||
name: github-pages
|
||||
url: ${{ steps.deployment.outputs.page_url }}
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
repository: cluntop/tvbox
|
||||
token: ${{ secrets.GIT_TOKEN }}
|
||||
fetch-depth: 1
|
||||
lfs: true
|
||||
|
||||
- name: 🔄 Auto Commit Timestamp
|
||||
if: github.event_name == 'schedule'
|
||||
run: |
|
||||
cd ${{ env.UPLOAD_PATH }}
|
||||
echo "Last deployment run at: $(date)" > last_run.txt
|
||||
git config --global user.name "github-actions[bot]"
|
||||
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
||||
git add last_run.txt
|
||||
if ! git diff-index --quiet HEAD; then
|
||||
git commit -m "🤖 Auto-update: Scheduled deployment [skip ci]"
|
||||
git push
|
||||
echo "::notice::✅ 已自动提交更新时间戳"
|
||||
else
|
||||
echo "::notice::⚠️ 无文件变更,跳过提交"
|
||||
fi
|
||||
|
||||
- name: Verify & Generate CNAME
|
||||
run: |
|
||||
echo "clun.top" > ${{ env.UPLOAD_PATH }}/CNAME
|
||||
FILE_COUNT=$(find ${{ env.UPLOAD_PATH }} -type f | wc -l)
|
||||
SIZE=$(du -sh ${{ env.UPLOAD_PATH }} | cut -f1)
|
||||
|
||||
echo "### 📦 部署准备就绪" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **分支**: \`${{ env.DEPLOY_REF }}\`" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **文件数量**: $FILE_COUNT" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **总大小**: $SIZE" >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
if [ "$FILE_COUNT" -eq 0 ]; then
|
||||
echo "::error::❌ 目录下没有文件,终止部署!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Setup Pages
|
||||
uses: actions/configure-pages@v6
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-pages-artifact@v5
|
||||
with:
|
||||
# Upload entire repository
|
||||
path: ${{ env.UPLOAD_PATH }}
|
||||
retention-days: 1
|
||||
|
||||
- name: Deploy to GitHub Pages
|
||||
id: deployment
|
||||
uses: actions/deploy-pages@v5
|
||||
|
||||
- name: Deployment Success Info
|
||||
if: success()
|
||||
run: |
|
||||
echo "::notice title=部署成功::✅ 您的站点已上线!"
|
||||
echo "### 🚀 部署成功!" >> $GITHUB_STEP_SUMMARY
|
||||
echo "访问地址: [${{ steps.deployment.outputs.page_url }}](${{ steps.deployment.outputs.page_url }})" >> $GITHUB_STEP_SUMMARY
|
||||
Vendored
+80
@@ -0,0 +1,80 @@
|
||||
name: Upstream Sync
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
actions: write
|
||||
pull-requests: write # 'write' access to pull requests
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 * * * *"
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
upstream_branch:
|
||||
description: "上游仓库分支"
|
||||
required: true
|
||||
default: "main"
|
||||
type: string
|
||||
target_branch:
|
||||
description: "目标仓库分支"
|
||||
required: true
|
||||
default: "main"
|
||||
type: string
|
||||
sync_strategy:
|
||||
description: "同步策略"
|
||||
required: true
|
||||
default: "discard"
|
||||
type: choice
|
||||
options:
|
||||
- discard # 强制同步:丢弃本地修改,完全复制上游 (推荐)
|
||||
- merge # 尝试合并:如果有冲突会报错
|
||||
|
||||
env:
|
||||
UPSTREAM_REPO: "cluntop/tvbox"
|
||||
UPSTREAM_BRANCH: ${{ github.event.inputs.upstream_branch || 'main' }}
|
||||
TARGET_BRANCH: ${{ github.event.inputs.target_branch || 'main' }}
|
||||
SYNC_STRATEGY: ${{ github.event.inputs.sync_strategy || 'discard' }}
|
||||
|
||||
jobs:
|
||||
sync_upstream:
|
||||
name: Sync and Notify
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event.repository.fork }}
|
||||
|
||||
steps:
|
||||
- name: Checkout Target Repo
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
ref: ${{ env.TARGET_BRANCH }}
|
||||
repository: cluntop/tvbox
|
||||
token: ${{ secrets.GIT_TOKEN }}
|
||||
persist-credentials: true
|
||||
fetch-depth: 1
|
||||
|
||||
- name: Sync Upstream Changes
|
||||
id: sync
|
||||
uses: aormsby/[email protected]
|
||||
with:
|
||||
upstream_sync_repo: ${{ env.UPSTREAM_REPO }}
|
||||
upstream_sync_branch: ${{ env.UPSTREAM_BRANCH }}
|
||||
target_sync_branch: ${{ env.TARGET_BRANCH }}
|
||||
target_repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
upstream_pull_args: ${{ env.SYNC_STRATEGY == 'discard' && '--allow-unrelated-histories --force' || '' }}
|
||||
target_branch_push_args: ${{ env.SYNC_STRATEGY == 'discard' && '--force' || '' }}
|
||||
test_mode: false
|
||||
|
||||
- name: Generate Summary
|
||||
run: |
|
||||
echo "### 🔄 同步报告 (Sync Report)" >> $GITHUB_STEP_SUMMARY
|
||||
echo "| Metric | Value |" >> $GITHUB_STEP_SUMMARY
|
||||
echo "| :--- | :--- |" >> $GITHUB_STEP_SUMMARY
|
||||
echo "| **源仓库** | [${{ env.UPSTREAM_REPO }}](https://github.com/${{ env.UPSTREAM_REPO }}) |" >> $GITHUB_STEP_SUMMARY
|
||||
echo "| **结果** | ${{ steps.sync.outputs.sync_status == 'success' && '✅ 成功 (Success)' || '❌ 失败 (Failed)' }} |" >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
- name: Delete Old Workflows
|
||||
uses: Mattraks/delete-workflow-runs@v2
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
repository: ${{ github.repository }}
|
||||
retain_days: 1
|
||||
keep_minimum_runs: 3
|
||||
Vendored
+97
@@ -0,0 +1,97 @@
|
||||
name: Update Test
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
actions: write
|
||||
pull-requests: write # 'write' access to pull requests
|
||||
|
||||
on:
|
||||
# schedule:
|
||||
# - cron: '30 2 * * *'
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
TZ: Asia/Shanghai
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
Update:
|
||||
runs-on: self-hosted
|
||||
timeout-minutes: 15
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
repository: cluntop/tvbox
|
||||
token: ${{ secrets.GIT_TOKEN }}
|
||||
fetch-depth: 1
|
||||
|
||||
- name: Delete old workflow runs
|
||||
uses: Mattraks/delete-workflow-runs@v2
|
||||
with:
|
||||
token: ${{ github.token }}
|
||||
repository: ${{ github.repository }}
|
||||
retain_days: 1
|
||||
keep_minimum_runs: 3
|
||||
|
||||
#- name: Set up Python
|
||||
# uses: actions/setup-python@v6
|
||||
# with:
|
||||
# python-version: '3.10'
|
||||
# cache: 'pip'
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m venv .venv
|
||||
source .venv/bin/activate
|
||||
python -m pip install --upgrade pip
|
||||
# if [ -f .github/requirements.txt ]; then pip install -r .github/requirements.txt; fi
|
||||
pip install aiohttp playwright
|
||||
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y libasound2t64 libgbm-dev libnotify-dev libnss3 libxss1 \
|
||||
libxcomposite1 libxdamage1 libxrandr2 libxcursor1 libxkbcommon0 \
|
||||
libpango-1.0-0 libcairo2 libatk1.0-0t64 libatk-bridge2.0-0t64 libcups2t64
|
||||
|
||||
- name: Initialize chromium
|
||||
run: |
|
||||
source .venv/bin/activate
|
||||
playwright install chromium
|
||||
# playwright install-deps chromium
|
||||
|
||||
- name: Run M3U script
|
||||
run: |
|
||||
source .venv/bin/activate
|
||||
python py/sinparty.py
|
||||
|
||||
- name: Submit the changes
|
||||
run: |
|
||||
export HOME=${GITHUB_WORKSPACE}
|
||||
|
||||
git config --global user.name "github-actions[bot]"
|
||||
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
# if [ -n "$(git status --porcelain)" ]; then
|
||||
# echo "Changes detected, committing..."
|
||||
# git add .
|
||||
# git commit -m "Update Test"
|
||||
|
||||
# git pull --rebase origin main
|
||||
# git push origin main
|
||||
# else
|
||||
# echo "No changes detected, skipping push."
|
||||
# fi
|
||||
|
||||
git commit -a -m "Update test"
|
||||
|
||||
- name: Push changes
|
||||
uses: ad-m/github-push-action@master
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
branch: ${{ github.ref }}
|
||||
# pull: rebase # pull --rebase before push; also accepts: merge | ff-only | true
|
||||
|
||||
Vendored
+83
@@ -0,0 +1,83 @@
|
||||
name: Update Toos
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
actions: write
|
||||
pull-requests: write # 'write' access to pull requests
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 */6 * * *'
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
TZ: Asia/Shanghai
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
Update:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 15
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
repository: cluntop/tvbox
|
||||
token: ${{ secrets.GIT_TOKEN }}
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Delete old workflow runs
|
||||
uses: Mattraks/delete-workflow-runs@v2
|
||||
with:
|
||||
token: ${{ github.token }}
|
||||
repository: ${{ github.repository }}
|
||||
retain_days: 1
|
||||
keep_minimum_runs: 3
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.10'
|
||||
cache: 'pip'
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
if [ -f .github/requirements.txt ]; then pip install -r .github/requirements.txt; fi
|
||||
pip install aiohttp
|
||||
|
||||
- name: Run M3U script
|
||||
run: |
|
||||
python py/ssjh.py
|
||||
|
||||
- name: Submit the changes
|
||||
run: |
|
||||
export HOME=${GITHUB_WORKSPACE}
|
||||
|
||||
git config --global user.name "github-actions[bot]"
|
||||
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
# if [ -n "$(git status --porcelain)" ]; then
|
||||
# echo "Changes detected, committing..."
|
||||
# git add .
|
||||
# git commit -m "Update m3u"
|
||||
|
||||
# git pull --rebase origin main
|
||||
# git push origin main
|
||||
# else
|
||||
# echo "No changes detected, skipping push."
|
||||
# fi
|
||||
|
||||
git commit -a -m "Update m3u"
|
||||
|
||||
- name: Push changes
|
||||
uses: ad-m/github-push-action@master
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
branch: ${{ github.ref }}
|
||||
# pull: rebase # pull --rebase before push; also accepts: merge | ff-only | true
|
||||
|
||||
Vendored
+81
@@ -0,0 +1,81 @@
|
||||
name: Update m3u
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
actions: write
|
||||
pull-requests: write # 'write' access to pull requests
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '1 * * * *' # 每小时执行一次
|
||||
workflow_dispatch: # 允许手动触发
|
||||
|
||||
env:
|
||||
TZ: Asia/Shanghai
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
Update:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 15
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
repository: cluntop/tvbox
|
||||
token: ${{ secrets.GIT_TOKEN }}
|
||||
fetch-depth: 1
|
||||
|
||||
- name: Delete old workflow runs
|
||||
uses: Mattraks/delete-workflow-runs@v2
|
||||
with:
|
||||
token: ${{ github.token }}
|
||||
repository: ${{ github.repository }}
|
||||
retain_days: 1
|
||||
keep_minimum_runs: 3
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.10'
|
||||
cache: 'pip'
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
if [ -f .github/requirements.txt ]; then pip install -r .github/requirements.txt; fi
|
||||
pip install pandas requests
|
||||
|
||||
- name: Run IPTV script
|
||||
run: |
|
||||
python py/get_iptv.py
|
||||
|
||||
- name: Submit the changes
|
||||
run: |
|
||||
git config --global user.name "github-actions[bot]"
|
||||
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
# if [ -n "$(git status --porcelain)" ]; then
|
||||
# echo "Changes detected, committing..."
|
||||
# git add .
|
||||
# git commit -m "Update m3u"
|
||||
|
||||
# git pull --rebase origin main
|
||||
# git push origin main
|
||||
# else
|
||||
# echo "No changes detected, skipping push."
|
||||
# fi
|
||||
|
||||
git commit -a -m "Update m3u"
|
||||
|
||||
- name: Push changes
|
||||
uses: ad-m/github-push-action@master
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
branch: ${{ github.ref }}
|
||||
# pull: rebase # pull --rebase before push; also accepts: merge | ff-only | true
|
||||
|
||||
Vendored
+101
@@ -0,0 +1,101 @@
|
||||
name: Update zip
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
actions: write
|
||||
pull-requests: write # 'write' access to pull requests
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 * * * *' # 每小时运行一次
|
||||
workflow_dispatch: # 允许手动触发
|
||||
|
||||
env:
|
||||
TZ: Asia/Shanghai # 设置时区
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
- name: Delete old records
|
||||
uses: Mattraks/delete-workflow-runs@v2
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
repository: ${{ github.repository }}
|
||||
retain_days: 1
|
||||
keep_minimum_runs: 5
|
||||
|
||||
- name: Checkout target repo
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
repository: cluntop/tvbox
|
||||
token: ${{ secrets.GIT_TOKEN }}
|
||||
path: target-repo
|
||||
fetch-depth: 1
|
||||
|
||||
- name: Process Xiaosa resource
|
||||
run: |
|
||||
echo "Starting Xiaosa download..."
|
||||
|
||||
mkdir -p temp_xiaosa
|
||||
cd temp_xiaosa
|
||||
wget --tries=3 --timeout=30 https://github.com/PizazzGY/NewTVBox/raw/main/%E5%8D%95%E7%BA%BF%E8%B7%AF.zip -O xiaosa.zip
|
||||
unzip -q xiaosa.zip
|
||||
mkdir -p ../target-repo/js/xiaosa
|
||||
|
||||
if [ -d "TVBoxOSC/tvbox" ]; then
|
||||
cp -rf TVBoxOSC/tvbox/* ../target-repo/js/xiaosa/
|
||||
echo "Xiaosa files copied successfully."
|
||||
else
|
||||
echo "Error: Xiaosa source directory structure changed."
|
||||
ls -R
|
||||
fi
|
||||
|
||||
cd ..
|
||||
rm -rf temp_xiaosa
|
||||
|
||||
#- name: Process Source Repo
|
||||
# run: |
|
||||
#git clone --depth 1 https://github.com/fish2018/PG.git source-repo
|
||||
|
||||
#cd source-repo
|
||||
#ZIP_FILE=$(find . -type f -name "pg.[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9].zip" | sort -r | head -n 1)
|
||||
|
||||
#if [ -z "$ZIP_FILE" ]; then
|
||||
#echo "Warning: No matching zip file found in Source Repo."
|
||||
#else
|
||||
#echo "Found zip file: $ZIP_FILE"
|
||||
|
||||
#unzip -o "$ZIP_FILE" -x "README.txt" -d ../target-repo/
|
||||
#echo "PG zip extracted to target repo."
|
||||
#fi
|
||||
|
||||
- name: Submit the changes
|
||||
working-directory: target-repo
|
||||
run: |
|
||||
git config --global user.name "github-actions[bot]"
|
||||
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
# git add .
|
||||
|
||||
# if git diff --staged --quiet; then
|
||||
# echo "No changes to commit."
|
||||
# exit 0
|
||||
# else
|
||||
# COMMIT_MSG="Update zip"
|
||||
# git commit -m "$COMMIT_MSG"
|
||||
|
||||
# git push origin HEAD:main
|
||||
# echo "Changes pushed successfully."
|
||||
# fi
|
||||
|
||||
git commit -a -m "Update zip"
|
||||
|
||||
- name: Push changes
|
||||
uses: ad-m/github-push-action@master
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
branch: ${{ github.ref }}
|
||||
# pull: rebase # pull --rebase before push; also accepts: merge | ff-only | true
|
||||
|
||||
Reference in New Issue
Block a user