mirror of
https://github.com/qist/tvbox.git
synced 2025-11-01 04:32:24 +00:00
添加猫影视测试
This commit is contained in:
152
cat/tjs/js/bookan.js
Normal file
152
cat/tjs/js/bookan.js
Normal file
@@ -0,0 +1,152 @@
|
||||
/*
|
||||
* @File : bookan.js
|
||||
* @Author : jade
|
||||
* @Date : 2024/1/31 13:44
|
||||
* @Email : jadehh@1ive.com
|
||||
* @Software : Samples
|
||||
* @Desc :
|
||||
*/
|
||||
import {_} from '../lib/cat.js';
|
||||
import {Spider} from "./spider.js";
|
||||
|
||||
function formatPlayUrl(name) {
|
||||
return name
|
||||
.trim()
|
||||
.replace(/<|>|《|》/g, '')
|
||||
.replace(/\$|#/g, ' ')
|
||||
.trim();
|
||||
}
|
||||
|
||||
class BooKanSpider extends Spider {
|
||||
constructor() {
|
||||
super();
|
||||
this.siteUrl = "https://api.bookan.com.cn";
|
||||
}
|
||||
|
||||
getName() {
|
||||
return "🎵┃看书┃🎵"
|
||||
}
|
||||
|
||||
getAppName() {
|
||||
return "看书"
|
||||
}
|
||||
|
||||
getJSName() {
|
||||
return "bookan"
|
||||
}
|
||||
|
||||
getType() {
|
||||
return 10
|
||||
}
|
||||
|
||||
async parseVodShortListFromJson(obj) {
|
||||
let books = [];
|
||||
for (const book of obj.list) {
|
||||
books.push({
|
||||
book_id: book.id, book_name: book.name, book_pic: book.cover, book_remarks: book.extra.author,
|
||||
});
|
||||
}
|
||||
return books
|
||||
}
|
||||
|
||||
async setClasses() {
|
||||
{
|
||||
this.classes = [{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 setCategory(tid, pg, filter, extend) {
|
||||
let content = await this.fetch(`${this.siteUrl}/voice/book/list?instance_id=25304&page=${pg}&category_id=${tid}&num=24`, null, this.getHeader());
|
||||
let data = JSON.parse(content).data;
|
||||
this.vodList = await this.parseVodShortListFromJson(data)
|
||||
}
|
||||
|
||||
|
||||
async parseVodDetailfromJson(obj) {
|
||||
let book = {
|
||||
audio: 1,
|
||||
type_name: '',
|
||||
book_year: '',
|
||||
book_area: '',
|
||||
book_remarks: '',
|
||||
book_actor: '',
|
||||
book_director: '',
|
||||
book_content: '',
|
||||
};
|
||||
let us = _.map(obj.list, function (b) {
|
||||
return formatPlayUrl(b.title) + '$' + b.file;
|
||||
}).join('#');
|
||||
book.volumes = '书卷';
|
||||
book.urls = us;
|
||||
return book
|
||||
}
|
||||
|
||||
async setDetail(id) {
|
||||
let content = await this.fetch(`${this.siteUrl}/voice/album/units?album_id=${id}&page=1&num=200&order=1`, null, this.getHeader());
|
||||
let data = JSON.parse(content).data;
|
||||
this.vodDetail = await this.parseVodDetailfromJson(data)
|
||||
this.vodDetail.book_id = id
|
||||
}
|
||||
|
||||
async play(flag, id, flags) {
|
||||
return JSON.stringify({
|
||||
parse: 0, url: id,
|
||||
});
|
||||
}
|
||||
|
||||
async setSearch(wd, quick) {
|
||||
let content = await this.fetch(`https://es.bookan.com.cn/api/v3/voice/book?instanceId=25304&keyword=${wd}&pageNum=1&limitNum=20`,null,this.getHeader());
|
||||
let data = JSON.parse(content).data;
|
||||
this.vodList = await this.parseVodShortListFromJson(data)
|
||||
}
|
||||
|
||||
}
|
||||
let spider = new BooKanSpider()
|
||||
|
||||
async function init(cfg) {
|
||||
await spider.init(cfg)
|
||||
}
|
||||
|
||||
async function home(filter) {
|
||||
return await spider.home(filter)
|
||||
}
|
||||
|
||||
async function homeVod() {
|
||||
return await spider.homeVod()
|
||||
}
|
||||
|
||||
async function category(tid, pg, filter, extend) {
|
||||
return await spider.category(tid, pg, filter, extend)
|
||||
}
|
||||
|
||||
async function detail(id) {
|
||||
return await spider.detail(id)
|
||||
}
|
||||
|
||||
async function play(flag, id, flags) {
|
||||
return await spider.play(flag, id, flags)
|
||||
}
|
||||
|
||||
async function search(wd, quick) {
|
||||
return await spider.search(wd, quick)
|
||||
}
|
||||
export function __jsEvalReturn() {
|
||||
return {
|
||||
init: init,
|
||||
home: home,
|
||||
homeVod: homeVod,
|
||||
category: category,
|
||||
detail: detail,
|
||||
play: play,
|
||||
search: search,
|
||||
};
|
||||
}
|
||||
export {spider}
|
||||
Reference in New Issue
Block a user