-
Notifications
You must be signed in to change notification settings - Fork 462
Expand file tree
/
Copy pathfetchURLByzbpro.js
More file actions
64 lines (53 loc) · 1.77 KB
/
fetchURLByzbpro.js
File metadata and controls
64 lines (53 loc) · 1.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import { printGreen, printMagenta, printRed } from "./utils/colorOut.js"
import { appendFileSync, renameFileSync } from "./utils/fileUtil.js"
import { updatePlaybackData } from "./utils/playback.js"
import { writeFileSync } from "node:fs"
import { dataList } from "./utils/fetchList.js"
import updateChannels from "./utils/zbpro.js"
const start = new Date()
printMagenta("开始更新...")
printMagenta("开始更新接口文件...")
let updateResult = 2
for (let i = 0; i < 3; i++) {
try {
updateResult = await updateChannels()
break
} catch (error) {
printRed("接口更新出现问题,正在重试...")
}
}
switch (updateResult) {
case 1:
printGreen(`接口数据已是最新,无需更新`)
// process.exit(0)
break
case 2:
printRed(`接口请求失败`)
process.exit(1)
default:
printGreen("接口文件更新完成!")
break;
}
// 6小时更新节目单
if (!(start.getHours() % 6)) {
// 获取数据
const datas = await dataList()
printGreen("数据获取成功!")
try {
const playbackFile = `${process.cwd()}/playback.xml.bak`
writeFileSync(playbackFile, `<?xml version="1.0" encoding="UTF-8"?>\n` +
`<tv generator-info-name="Tak" generator-info-url="https://github.com/develop202/migu_video">\n`)
printMagenta("开始更新回放文件...")
for (const data of datas) {
for (const dataList of data?.dataList) {
await updatePlaybackData(dataList, playbackFile, 10000, 8 * 60 * 60 * 1000)
}
}
appendFileSync(playbackFile, `</tv>\n`)
renameFileSync(playbackFile, playbackFile.replace(".bak", ""))
printGreen("回放文件更新完成!")
} catch (error) {
printRed("回放文件更新失败!")
}
}
printGreen(`用时 ${(Date.now() - start.getTime()) / 1000}秒`)