123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- /*
- * @File : haiwaikan.js
- * @Author : jade
- * @Date : 2024/04/02 9:15
- * @Email : jadehh@1ive.com
- * @Software : Samples
- * @Desc : 海外看
- */
- import {VodSpider} from "./vodSpider.js";
- class HaiWaiKanSpider extends VodSpider {
- constructor() {
- super();
- this.siteUrl = "https://haiwaikan.com"
- this.remove18 = true
- this.type_id_18 = 0
- }
- async spiderInit(inReq) {
- await super.spiderInit(inReq);
- }
- async init(cfg) {
- await super.init(cfg);
- await this.spiderInit(null)
- }
- getAppName() {
- return "海外看"
- }
- getName() {
- return "☕┃海外看┃☕墙"
- }
- getJSName() {
- return "haiwaikan"
- }
- getType() {
- return 3
- }
- async setClasses() {
- let content = await this.fetch(this.siteUrl + "/api.php/provide/vod/from", {"ac": "list"}, this.getHeader())
- let content_json = JSON.parse(content)
- for (const class_dic of content_json["class"]) {
- if (class_dic["type_id"] < 26 ) {
- this.classes.push(this.getTypeDic(class_dic["type_name"], class_dic["type_id"].toString()))
- }
- }
- this.content_json = content_json
- }
- async getFilter(type_id,obj) {
- let extend_list = []
- let extend_dic = {"key": "1", "name": "全部类别", "value": [{"n":"全部类别","v":type_id.toString()}]}
- for (const type_dic of obj["class"]){
- let a_type_id = type_dic["type_id"]
- let max_type_id = 0
- let min_type_id = 0
- if (type_id === 20){
- max_type_id = 50
- min_type_id = 27
- }
- if (type_id === 21){
- max_type_id = 128
- min_type_id = 100
- }
- if (type_id === 22){
- max_type_id = 143
- min_type_id = 134
- }
- if (type_id === 23){
- max_type_id = 135
- min_type_id = 127
- }
- if (a_type_id < max_type_id && a_type_id > min_type_id){
- extend_dic["value"].push({"n":type_dic["type_name"],"v":a_type_id.toString()})
- }
- }
- if (extend_dic["value"].length > 1){
- extend_list.push(extend_dic)
- return extend_list
- }else{
- return null
- }
- }
- async setFilterObj() {
- let content = await this.fetch(this.siteUrl + "/api.php/provide/vod/from", {"ac": "list"}, this.getHeader())
- let content_json = JSON.parse(content)
- for (const type_dic of this.classes){
- let type_id = type_dic["type_id"]
- if (type_id !== "最近更新"){
- let extend_list = await this.getFilter(parseInt(type_id),content_json)
- if (extend_list !== null){
- this.filterObj[type_id] = extend_list
- }
- }
- }
- }
- }
- let spider = new HaiWaiKanSpider()
- 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)
- }
- async function proxy(segments, headers) {
- return await spider.proxy(segments, headers)
- }
- export function __jsEvalReturn() {
- return {
- init: init,
- home: home,
- homeVod: homeVod,
- category: category,
- detail: detail,
- play: play,
- search: search,
- proxy: proxy
- };
- }
- export {spider}
|