MCPcopy Create free account
hub / github.com/develop202/migu_video / updatePE

Function updatePE

utils/updateData.js:82–187  ·  view source on GitHub ↗

* @param {Number} _hours -更新小时数

(_hours)

Source from the content-addressed store, hash-verified

80 * @param {Number} _hours -更新小时数
81 */
82async function updatePE(_hours) {
83
84 const date = new Date()
85 const start = date.getTime()
86 // 获取PE数据
87 const datas = await fetchUrl("http://v0-sc.miguvideo.com/vms-match/v6/staticcache/basic/match-list/normal-match-list/0/all/default/1/miguvideo")
88 printGreen("PE数据获取成功!")
89 // console.dir(datas, { depth: null })
90
91 // 屏蔽所有TV分类
92 if (ignoreCategorySet.has("TV")) {
93 // 创建写入开头
94 writeFile(`${process.cwd()}/interface.txt.bak`, `#EXTM3U x-tvg-url="\${replace}/playback.xml" catchup="append" catchup-source="?playbackbegin=\${(b)yyyyMMddHHmmss}&playbackend=\${(e)yyyyMMddHHmmss}"\n`)
95 // txt
96 writeFile(`${process.cwd()}/interfaceTXT.txt.bak`, "")
97 } else {
98 copyFileSync(`${process.cwd()}/interface.txt`, `${process.cwd()}/interface.txt.bak`, 0)
99 copyFileSync(`${process.cwd()}/interfaceTXT.txt`, `${process.cwd()}/interfaceTXT.txt.bak`, 0)
100 }
101
102 const interfacePath = `${process.cwd()}/interface.txt.bak`
103 const interfaceTXTPath = `${process.cwd()}/interfaceTXT.txt.bak`
104
105 printYellow("开始更新PE...")
106
107 for (let i = 1; i < 4; i++) {
108 // 日期
109 const date = datas.body?.days[i]
110 let relativeDate = `昨天${date.substring(4, 6)}-${date.substring(6, 8)}`
111 const dateString = getDateString(new Date())
112 if (date == dateString) {
113 relativeDate = `今天${date.substring(4, 6)}-${date.substring(6, 8)}`
114 } else if (parseInt(date) > parseInt(dateString)) {
115 relativeDate = `明天${date.substring(4, 6)}-${date.substring(6, 8)}`
116 }
117 // 忽略分类
118 if (ignoreCategorySet.has(`体育-${relativeDate.substring(0, 2)}`)) {
119 printYellow(`PE分类###: 体育-${relativeDate}已屏蔽!`)
120 continue
121 }
122
123 appendFile(interfaceTXTPath, `体育-${relativeDate},#genre#\n`)
124 for (const data of datas.body?.matchList[date]) {
125
126 let pkInfoTitle = data.pkInfoTitle
127 if (data.confrontTeams) {
128 pkInfoTitle = `${data.confrontTeams[0].name}VS${data.confrontTeams[1].name}`
129 }
130 // const peResult = await fetch(`http://app-sc.miguvideo.com/vms-match/v5/staticcache/basic/all-view-list/${data.mgdbId}/2/miguvideo`).then(r => r.json())
131 const peResult = await fetchUrl(`https://vms-sc.miguvideo.com/vms-match/v6/staticcache/basic/basic-data/${data.mgdbId}/miguvideo`)
132 try {
133 // 比赛已结束
134 if (peResult.body.endTime < Date.now()) {
135 const replayResult = await fetchUrl(`http://app-sc.miguvideo.com/vms-match/v5/staticcache/basic/all-view-list/${data.mgdbId}/2/miguvideo`)
136 let replayList = replayResult.body?.replayList
137 if (replayList == null || replayList == undefined) {
138 replayList = peResult.body.multiPlayList.replayList
139 }

Callers 1

updateFunction · 0.85

Calls 9

fetchUrlFunction · 0.90
printGreenFunction · 0.90
writeFileFunction · 0.90
copyFileSyncFunction · 0.90
printYellowFunction · 0.90
getDateStringFunction · 0.90
appendFileFunction · 0.90
appendFileSyncFunction · 0.90
renameFileSyncFunction · 0.90

Tested by

no test coverage detected