Files
tvbox_collect/aa999ok/CK/18022/lib/harunasan.js
T
2026-06-29 03:41:14 +00:00

106 lines
2.3 KiB
JavaScript

const UA = 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_0_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0.1 Mobile/15E148 Safari/604.1'
let appConfig = {
ver: 1,
title: '聚合直播',
site: 'http://api.maiyoux.com:81',
}
async function getConfig() {
let config = appConfig
config.tabs = await getTabs()
return jsonify(config)
}
async function getTabs() {
let list = []
let ignore = ['卫视直播', '龙珠', '映客']
function isIgnoreClassName(className) {
return ignore.some((element) => className.includes(element))
}
const jsonurl = appConfig.site + '/mf/json.txt'
const { data } = await $fetch.get(jsonurl, {
headers: {
'User-Agent': UA,
},
})
argsify(data).pingtai.forEach((e) => {
const name = `${e.title} (${e.Number})`
const href = e.address
const isIgnore = isIgnoreClassName(name)
if (isIgnore) return
list.push({
name,
ext: {
url: encodeURI(href),
},
})
})
return list
}
async function getCards(ext) {
ext = argsify(ext)
let cards = []
let jsonurl = ext.url
let page = ext.page
let url
if (page === 1) {
url = `${appConfig.site}/mf/${jsonurl}`
}
const { data } = await $fetch.get(url, {
headers: {
'User-Agent': UA,
},
})
argsify(data).zhubo.forEach((e) => {
const cover = e.img
const time = e.duration
const addtime = e.createAt
const address = e.address
if (address.startsWith('rtmp')) return
cards.push({
vod_id: address,
vod_name: e.title,
vod_pic: cover,
vod_remarks: 'live',
ext: {
url: address,
},
})
})
return jsonify({
list: cards,
})
}
async function getTracks(ext) {
ext = argsify(ext)
let tracks = []
let url = ext.url
tracks.push({
name: '播放',
ext: {
playurl: url,
},
})
return jsonify({
list: [
{
title: '默认分组',
tracks,
},
],
})
}
async function getPlayinfo(ext) {
ext = argsify(ext)
let playurl = ext.playurl
return jsonify({ urls: [playurl] })
}