var rule = {
    模板: "mxpro",
    title: "rarbt[]",
    host: "https://www.rarbt.fun",
    url: "/vod/show/id/fyclassfyfilter/page/fypage.html",
    searchUrl: "/vod/search/page/fypage/wd/**.html",
    filterable: 1,
    filter: "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",
    filter_url: "{{fl.剧情}}{{fl.地区}}{{fl.年份}}{{fl.明星}}{{fl.导演}}{{fl.下载}}{{fl.豆瓣}}{{fl.排序}}/id/fyclass",
    timeout: 5000,
    class_parse: ".navbar-items li:gt(0):lt(10);a&&Text;a&&href;type/(.*?)\\.html",
    lazy: $js.toString(() => {
        input = {
            parse: 1,
            url: input,
            js: ''
        };
    }),
    double: false,
    推荐: "*",
    一级: "body&&a.module-poster-item.module-item;a&&title;.lazyloaded&&data-original;.module-item-note&&Text;a&&href",
    二级: $js.toString(() => {
        let khtml = request(input);
        VOD = {};
        VOD.vod_id = input;
        VOD.vod_name = pdfh(khtml, 'h1&&Text');
        VOD.vod_pic = pdfh(khtml, 'img.ls-is-cached&&data-original');
        VOD.type_name = pdfh(khtml, '.module-info-tag-link:eq(2)&&Text');
        VOD.vod_remarks = pdfh(khtml, '.module-info-item:eq(-1)&&Text');
        VOD.vod_year = pdfh(khtml, '.module-info-tag-link:eq(0)&&Text');
        VOD.vod_area = pdfh(khtml, '.module-info-tag-link:eq(1)&&Text');
        VOD.vod_director = pdfh(khtml, '.module-info-item-content:eq(0)&&Text');
        VOD.vod_actor = pdfh(khtml, '.module-info-item-content:eq(2)&&Text');
        VOD.vod_content = pdfh(khtml, '.show-desc&&Text');

        let ktabs = [];
        let zx_tabs = pdfa(khtml, '.tab-item span');
        if (zx_tabs.length !== 0) {
            zx_tabs.map((it) => {
                return ktabs.push('在线-' + pdfh(it, 'body&&Text'))
            })
        };
        let xz_tabs = pdfa(khtml, '#playSwiper&&.downtab-item');
        if (xz_tabs.length !== 0) {
            xz_tabs.map((it) => {
                return ktabs.push('磁力-' + pdfh(it, 'body--small&&Text'))
            })
        };
        VOD.vod_play_from = ktabs.join('$$$');

        let klists = [];
        let zx_plists = pdfa(khtml, '.module-play-list');
        let xz_plists = pdfa(khtml, '.module-row-one');
        let i = 0;
        let j = 0;
        ktabs.forEach((tab) => {
            if (/在线/.test(tab)) {
                let zx_plist = pdfa(zx_plists[i], 'a').map((it) => {
                    return pdfh(it, 'a&&Text') + '$' + pd(it, 'a&&href', input)
                });
                i++;
                zx_plist = zx_plist.join('#');
                klists.push(zx_plist)
            } else if (/磁力/.test(tab)) {
                let xz_plist = pdfa(xz_plists[j], 'a.btn-down').map((it) => {
                    return pdfh(it, 'a&&title') + '$' + pdfh(it, 'a&&href')
                });
                j++;
                xz_plist = xz_plist.join('#');
                klists.push(xz_plist)
            }
        });
        VOD.vod_play_url = klists.join('$$$')
    }),
    搜索: "body&&.module-item;.module-card-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href;.module-info-item-content&&Text"
}