import { dataList } from "./utils/fetchList.js" import { getAndroidURL720p } from "./utils/androidURL.js" import { appendFile, appendFileSync, renameFileSync, writeFile } from "./utils/fileUtil.js" import { updatePlaybackData } from "./utils/playback.js" import { printBlue, printGreen, printMagenta, printRed, printYellow } from "./utils/colorOut.js" async function fetchURLByAndroid720p() { const start = Date.now() // 获取数据 const datas = await dataList() // 必须绝对路径 const path = process.cwd() + '/interface.txt.bak' // 创建写入空内容 writeFile(path, "") // 回放 const playbackFile = process.cwd() + '/playback.xml.bak' writeFile(playbackFile, `\n` + `\n`) // 写入开头 appendFile(path, `#EXTM3U x-tvg-url="https://cdn.jsdelivr.net/gh/develop202/migu_video/playback.xml,https://ghfast.top/raw.githubusercontent.com/develop202/migu_video/refs/heads/main/playback.xml,https://hk.gh-proxy.org/raw.githubusercontent.com/develop202/migu_video/refs/heads/main/playback.xml,https://develop202.github.io/migu_video/playback.xml,https://raw.githubusercontents.com/develop202/migu_video/refs/heads/main/playback.xml" catchup="append" catchup-source="&playbackbegin=\${(b)yyyyMMddHHmmss}&playbackend=\${(e)yyyyMMddHHmmss}"\n`) // 分类列表 for (let i = 0; i < datas.length; i++) { printBlue(`分类###:${datas[i].name}`) const data = datas[i].dataList // 写入节目 for (let j = 0; j < data.length; j++) { printMagenta(`${data[j].name}:`) const res = await updatePlaybackData(data[j], playbackFile) if (res) { printGreen(` 节目单更新成功`) } else { printRed(` 节目单更新失败`) } // 获取链接 const resObj = await getAndroidURL720p(data[j].pID) if (resObj.url == "") { printRed(` 节目调整,暂不提供服务`) continue } // 写入节目 appendFile(path, `#EXTINF:-1 tvg-id="${data[j].name}" tvg-name="${data[j].name}" tvg-logo="${data[j].pics.highResolutionH}" group-title="${datas[i].name}",${data[j].name}\n${resObj.url}\n`) printGreen(` 节目链接更新成功`) } } appendFileSync(playbackFile, `\n`) renameFileSync(playbackFile, playbackFile.replace(".bak", "")) renameFileSync(path, path.replace(".bak", "")) const end = Date.now() printYellow(`本次耗时:${(end - start) / 1000}秒`) } fetchURLByAndroid720p()