import { _ } from './lib/cat.js'; let key = 'bookan'; let url = 'https://api.bookan.com.cn'; let siteKey = ''; let siteType = 0; async function request(reqUrl, agentSp) { let res = await req(reqUrl, { method: 'get', }); return res.content; } // cfg = {skey: siteKey, ext: extend} async function init(cfg) { siteKey = cfg.skey; siteType = cfg.stype; } async function home(filter) { return JSON.stringify({ class: [ { type_id: '1305', type_name: '少年读物' }, { type_id: '1304', type_name: '儿童文学' }, { type_id: '1320', type_name: '国学经典' }, { type_id: '1306', type_name: '文艺少年' }, { type_id: '1309', type_name: '育儿心经' }, { type_id: '1310', type_name: '心理哲学' }, { type_id: '1307', type_name: '青春励志' }, { type_id: '1312', type_name: '历史小说' }, { type_id: '1303', type_name: '故事会' }, { type_id: '1317', type_name: '音乐戏剧' }, { type_id: '1319', type_name: '相声评书' }, ], }); } async function category(tid, pg, filter, extend) { pg = pg || 1; if (pg == 0) pg = 1; let content = await request(`${url}/voice/book/list?instance_id=25304&page=${pg}&category_id=${tid}&num=24`); let data = JSON.parse(content).data; let books = []; for (const book of data.list) { books.push({ vod_id: book.id, vod_name: book.name, vod_pic: book.cover, vod_remarks: book.extra.author, }); } return JSON.stringify({ page: data.current_page, pagecount: data.last_page, limit: 24, total: data.total, list: books, }); } async function detail(id) { let content = await request(`${url}/voice/album/units?album_id=${id}&page=1&num=200&order=1`); let data = JSON.parse(content).data; console.log(JSON.stringify(data)); let book = { vod_id: id, type_name: '', vod_year: '', vod_area: '', vod_remarks: '', vod_actor: '', vod_director: '', vod_content: '', }; let us = _.map(data.list, function (b) { return formatPlayUrl(b.title) + '$' + b.file; }).join('#'); book.vod_play_from = '书卷'; book.vod_play_url = us; return JSON.stringify({ list: [book], }); } function formatPlayUrl(name) { return name .trim() .replace(/<|>|\.《.*?》/g, '. ') .replace(/\$|#/g, ' ') .trim(); } async function proxy(segments, headers) {} async function play(flag, id, flags) { return JSON.stringify({ parse: 0, url: id, }); } async function search(wd, quick, pg) { pg = pg || 1; if (pg == 0) pg = 1; let content = await request(`https://es.bookan.com.cn/api/v3/voice/book?instanceId=25304&keyword=${wd}&pageNum=${pg}&limitNum=20`); let data = JSON.parse(content).data; let books = []; for (const book of data.list) { books.push({ vod_id: book.id, vod_name: book.name, vod_pic: book.cover, vod_remarks: book.extra.author, }); } return JSON.stringify({ page: data.current_page, pagecount: data.last_page, limit: 20, total: data.total, list: books, }); } export function __jsEvalReturn() { return { init: init, home: home, category: category, detail: detail, play: play, search: search, }; }