146 lines
3.1 KiB
JavaScript
146 lines
3.1 KiB
JavaScript
const UA = 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_2 like Mac OS X) AppleWebKit/604.1.14 (KHTML, like Gecko)'
|
|
const config = argsify($config_str)
|
|
|
|
let appConfig = {
|
|
ver: 1,
|
|
title: 'avdb',
|
|
site: 'https://avdbapi.com/api.php/provide/vod',
|
|
}
|
|
|
|
async function getConfig() {
|
|
let config = appConfig
|
|
config.tabs = await getTabs()
|
|
return jsonify(appConfig)
|
|
}
|
|
|
|
async function getTabs() {
|
|
let tabs = []
|
|
let url = appConfig.site
|
|
|
|
const { data } = await $fetch.get(url, {
|
|
headers: {
|
|
'User-Agent': UA,
|
|
},
|
|
})
|
|
|
|
argsify(data).class.forEach((e) => {
|
|
tabs.push({
|
|
id: e.type_id,
|
|
name: e.type_name,
|
|
ext: {
|
|
id: e.type_id,
|
|
},
|
|
ui: 1,
|
|
})
|
|
})
|
|
|
|
return tabs
|
|
}
|
|
|
|
async function getCards(ext) {
|
|
ext = argsify(ext)
|
|
let cards = []
|
|
let { id, page = 1 } = ext
|
|
|
|
try {
|
|
const url = appConfig.site + `?t=${id}&ac=detail&pg=${page}`
|
|
|
|
const { data } = await $fetch.get(url, {
|
|
headers: {
|
|
'User-Agent': UA,
|
|
},
|
|
})
|
|
|
|
argsify(data).list.forEach((e) => {
|
|
cards.push({
|
|
vod_id: `${e.id}`,
|
|
vod_name: e.name,
|
|
vod_pic: e.poster_url,
|
|
vod_remarks: e.tag,
|
|
vod_pubdate: e.created_at,
|
|
vod_duration: e.time,
|
|
ext: {
|
|
id: `${e.id}`,
|
|
},
|
|
})
|
|
})
|
|
|
|
return jsonify({
|
|
list: cards,
|
|
})
|
|
} catch (error) {
|
|
$print(error)
|
|
}
|
|
}
|
|
|
|
async function getTracks(ext) {
|
|
ext = argsify(ext)
|
|
let tracks = []
|
|
let id = ext.id
|
|
let url = appConfig.site + `?ac=detail&ids=${id}`
|
|
|
|
const { data } = await $fetch.get(url, {
|
|
headers: {
|
|
'User-Agent': UA,
|
|
},
|
|
})
|
|
|
|
let vod_play_url = argsify(data).list[0].episodes.server_data.Full.link_embed.split('?s=')[1]
|
|
tracks.push({
|
|
name: argsify(data).list[0].episodes.server_name,
|
|
pan: '',
|
|
ext: {
|
|
url: vod_play_url,
|
|
},
|
|
})
|
|
|
|
return jsonify({
|
|
list: [
|
|
{
|
|
title: '默认分组',
|
|
tracks,
|
|
},
|
|
],
|
|
})
|
|
}
|
|
|
|
async function getPlayinfo(ext) {
|
|
ext = argsify(ext)
|
|
let url = ext.url
|
|
|
|
return jsonify({ urls: [url], headers: [{ 'User-Agent': UA, Referer: `https://avdbapi.com/` }] })
|
|
}
|
|
|
|
async function search(ext) {
|
|
ext = argsify(ext)
|
|
let cards = []
|
|
|
|
const text = encodeURIComponent(ext.text)
|
|
const page = ext.page || 1
|
|
const url = `${appConfig.site}?ac=detail&wd=${text}&pg=${page}`
|
|
|
|
const { data } = await $fetch.get(url, {
|
|
headers: {
|
|
'User-Agent': UA,
|
|
},
|
|
})
|
|
|
|
argsify(data).list.forEach((e) => {
|
|
cards.push({
|
|
vod_id: `${e.id}`,
|
|
vod_name: e.name,
|
|
vod_pic: e.poster_url,
|
|
vod_remarks: e.tag,
|
|
vod_pubdate: e.created_at,
|
|
vod_duration: e.time,
|
|
ext: {
|
|
id: `${e.id}`,
|
|
},
|
|
})
|
|
})
|
|
|
|
return jsonify({
|
|
list: cards,
|
|
})
|
|
}
|