import { getDateString, getDateTimeString } from "./time.js" import { appendFileSync } from "./fileUtil.js" import { cntvNames } from "./datas.js" import { fetchUrl } from "./net.js" async function getPlaybackData(programId, timeout = 6000) { const date = new Date() const today = getDateString(date) const resp = await fetchUrl(`https://program-sc.miguvideo.com/live/v2/tv-programs-data/${programId}/${today}`, {}, timeout) return resp.body?.program[0]?.content } async function updatePlaybackDataByMigu(program, filePath, timeout = 6000) { // 今日节目数据 const playbackData = await getPlaybackData(program.pID, timeout) if (!playbackData) { return false } // 写入频道信息 appendFileSync(filePath, ` \n` + ` ${program.name}\n` + ` \n` ) // 写入节目信息 for (let i = 0; i < playbackData.length; i++) { // 特殊字符转义 const contName = playbackData[i].contName.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll("\"", """).replaceAll("'", "'"); appendFileSync(filePath, ` \n` + ` ${contName}\n` + ` \n` ) } return true } async function updatePlaybackDataByCntv(program, filePath, timeout = 6000) { // 今日节目数据 const date = new Date() const today = getDateString(date) const cntvName = cntvNames[program.name] const resp = await fetchUrl(`https://api.cntv.cn/epg/epginfo3?serviceId=shiyi&d=${today}&c=${cntvName}`, {}, timeout) const playbackData = resp[cntvName]?.program if (!playbackData) { return false } // 写入频道信息 appendFileSync(filePath, ` \n` + ` ${program.name}\n` + ` \n` ) // 写入节目信息 for (let i = 0; i < playbackData.length; i++) { // 特殊字符转义 const contName = playbackData[i].t.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll("\"", """).replaceAll("'", "'"); appendFileSync(filePath, ` \n` + ` ${contName}\n` + ` \n` ) } return true } async function updatePlaybackData(program, filePath, timeout = 6000) { if (cntvNames[program.name]) { return updatePlaybackDataByCntv(program, filePath, timeout) } return updatePlaybackDataByMigu(program, filePath, timeout) } export { updatePlaybackData }