/**
 * 影视TV 超連結跳轉支持
 * https://t.me/fongmi_offical/
 * https://github.com/FongMi/Release/tree/main/apk
@header({
  searchable: 2,
  filterable: 1,
  quickSearch: 0,
  title: '荐片',
  lang: 'ds'
})
*/var rule = {
    title: '荐片',
    // host: 'http://api2.rinhome.com',
    //host: 'https://oiuzy.haitu33.com',
    host: 'https://dns.alidns.com/resolve?name=jpmobile.jianpiandns.com&type=TXT',
    hostJs: async function () {
        let {HOST} = this;
        log(HOST)
        var html = await request(HOST, {headers: {"User-Agent": MOBILE_UA}});
        let json = JSON.parse(html);
        let data = json.Answer[0].data.replace(/'|"/g, '').split(',');
        src = data[0];
        if (!src.startsWith('http')) {
            src = 'https://' + src;
        }
        HOST = src
        return HOST
    },
    homeUrl: '/api/tag/hand?code=unknown601193cf375db73d&channel=wandoujia',//网站的首页链接,用于分类获取和推荐获取
    // url:'/api/crumb/list?area=0&category_id=fyclass&page=fypage&type=0&limit=24&fyfilter',
    url: '/api/crumb/list?page=fypage&type=0&limit=24&fyfilter',
    class_name: '全部&电影&电视剧&动漫&综艺',     // 筛选 /api/term/ad_fenlei?limit=10&page=1
    class_url: '0&1&2&3&4',
    detailUrl: '/api/node/detail?channel=wandoujia&token=&id=fyid',//二级详情拼接链接(json格式用)
    searchUrl: '/api/video/search?key=**&page=fypage',
    searchable: 2,
    quickSearch: 0,
    filterable: 1,
    filter: 'H4sIAAAAAAAAA+2V3UrDMBiG7yXHO2jTrtu8A69BPCiuqKhT6hTGGEzmxiY4f5CqWPBA3So4tsHE/aBX06T2Lsxc2mR2FWHzrId5vpA03/e8NA8EsLSSB1taDiwBVddUEAMZdUcjK2R20GmRrA/V7QPte1tmjMuWW7LGmCwEUIhRfPduD5sUiz62+y1ScRu3uN+mRelHEZ118OCDFhW/6HzUSZHiuI/d+2eGxaTP8fUTNl8oh6CwOi5MnpXTVJ171qBnjx7++iwoQNm7TEzxWPJwXOIx9LAg8lj0D0nyWPCwwlFyz4QmeJhkb2MwEegpgYq3c7oN+7t6lrUB1y/R8CzQBqfUcq+9NmzsZv1zP9vHqFqhBV3NbmbWWe/vetjo0NrBXlrNauObV2NEBGbXGsHLaW4Q1YrTHf0+CNZDt2HguhXQAZ1Y9rsZkAcZJqo1A23E1Rt7WKOYc+foHBcNitmQyQm4VPbnycysdjnOPtFpXqDByOOQ/0bnyufS1FCiyEWRW2zk4JyRg7MjJ8oh3jFPiG9ErGB7iSdEIY9zaXx9Q48G51WUiygX/5YLac5cSCG5SM32GQohPoizPf3Rocj/yP/F+i/P6b88238ohfgsh+Qi5H8Blcj/yP9/87/wBY9Rx63qDgAA',
    filter_url: 'area={{fl.area or "0"}}&sort={{fl.sort or "update"}}&year={{fl.year or "0"}}&category_id={{fl.cateId}}',
    filter_def: {
        0: {cateId: '0'},
        1: {cateId: '1'},
        2: {cateId: '2'},
        3: {cateId: '3'},
        4: {cateId: '4'}
    },
    headers: {
        'User-Agent': 'jianpian-android/350',
        'JPAUTH': 'y261ow7kF2dtzlxh1GS9EB8nbTxNmaK/QQIAjctlKiEv'
    },
    timeout: 5000,
    limit: 8,
    play_parse: true,
    lazy: async function () {
        let {input} = this;
        return {
            parse: 0,
            url: input,
            jx: 0
        }

    },

    推荐: async function () {
        let {input} = this;
        var d = [];
        var html = await request(input);
        html = JSON.parse(html).data[0].video;
        html.forEach(it => {
            d.push({
                title: it.title,
                img: it.path + '@Referer=www.jianpianapp.com@User-Agent=jianpian-version353',
                desc: it.playlist.title + ' ⭐' + it.score,
                url: it.id
            })
        });
        return setResult(d);
    },
    // 一级:'json:data;title;path;playlist.title;id',
    一级: async function (tid) {
        let {input, MY_PAGE} = this;
        tid = tid + '';
        if (tid.endsWith('_clicklink')) {
            tid = tid.split('_')[0];
            input = HOST + '/api/video/search?key=' + tid + '&page=' + +MY_PAGE;
        }
        var d = [];
        let html = await request(input);
        html = JSON.parse(html).data;
        html.forEach(it => {
            d.push({
                title: it.title,
                img: it.thumbnail || it.path,
                desc: (it.mask || it.playlist.title) + ' ⭐' + it.score,
                url: it.id
            })
        });
        return setResult(d);
    },
    二级: async function () {
        let {input} = this;

        function getLink(data) {
            let link = data.map(it => {
                return '[a=cr:' + JSON.stringify({
                    'id': it.name + '_clicklink',
                    'name': it.name
                }) + '/]' + it.name + '[/a]'
            }).join(', ');
            return link
        }

        try {
            let html = await request(input);
            html = JSON.parse(html);
            let node = html.data;
            VOD = {
                vod_id: node.id,
                vod_name: node.title,
                vod_pic: node.thumbnail + '@Referer=www.jianpianapp.com@User-Agent=jianpian-version353',
                type_name: node.types[0].name,
                vod_year: node.year.title,
                vod_area: node.area.title,
                vod_remarks: node.score,
                vod_actor: getLink(node.actors),
                vod_director: getLink(node.directors),
                vod_content: node.description.strip()
            };
            if (typeof play_url === 'undefined') {
                var play_url = ''
            }
            let playMap = {};
            if (node.have_ftp_ur == 1) {
                playMap["边下边播超清版"] = node.new_ftp_list.map(it => {
                    return it.title + "$" + (/m3u8/.test(it.url) ? play_url + it.url : "tvbox-xg:" + it.url)
                }).join('#');
            }
            if (node.have_m3u8_ur == 1) {
                playMap["在线点播普清版"] = node.new_m3u8_list.map(it => {
                    return it.title + "$" + (/m3u8/.test(it.url) ? play_url + it.url : "tvbox-xg:" + it.url)
                }).join('#');
            }
            let playFrom = [];
            let playList = [];
            Object.keys(playMap).forEach(key => {
                playFrom.append(key);
                playList.append(playMap[key])
            });
            VOD.vod_play_from = playFrom.join('$$$');
            VOD.vod_play_url = playList.join('$$$');
            return VOD
        } catch (e) {
            log("获取二级详情页发生错误:" + e.message);
        }
    },
    // 搜索:'json:data;*;thumbnail;mask;*',
    搜索: async function () {
        let {input} = this;
        var d = [];
        let html = await request(input);
        html = JSON.parse(html).data;
        html.forEach(it => {
            d.push({
                title: it.title,
                img: it.thumbnail,
                desc: it.mask + ' ⭐' + it.score,
                url: it.id
            })
        });
        return setResult(d);
    },
}
