code:
if (typeof Object.assign != 'function') {
    Object.assign = function () {
	var target = arguments[0];
    for (var i = 1; i < arguments.length; i++) {
        var source = arguments[i];
        for (var key in source) {
            if (Object.prototype.hasOwnProperty.call(source, key)) {
                target[key] = source[key];
            }
        }
    }
    return target;
};
}
function getMubans() {
    var mubanDict = { // 模板字典
        mxpro: {
            title: '',
            host: '',
            // homeUrl:'/',
            url: '/vodshow/fyclass--------fypage---.html',
            searchUrl: '/vodsearch/**----------fypage---.html',
            searchable: 2,//是否启用全局搜索,
            quickSearch: 0,//是否启用快速搜索,
            filterable: 0,//是否启用分类筛选,
            headers: {//网站的请求头,完整支持所有的,常带ua和cookies
                'User-Agent': 'MOBILE_UA',
                // "Cookie": "searchneed=ok"
            },
            class_parse: '.navbar-items li:gt(2):lt(8);a&&Text;a&&href;/(\\d+).html',
            play_parse: true,
            lazy: '',
            limit: 6,
            推荐: '.tab-list.active;a.module-poster-item.module-item;.module-poster-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href',
            double: true, // 推荐内容是否双层定位
            一级: 'body a.module-poster-item.module-item;a&&title;.lazyload&&data-original;.module-item-note&&Text;a&&href',
            二级: {
                "title": "h1&&Text;.module-info-tag&&Text",
                "img": ".lazyload&&data-original",
                "desc": ".module-info-item:eq(1)&&Text;.module-info-item:eq(2)&&Text;.module-info-item:eq(3)&&Text",
                "content": ".module-info-introduction&&Text",
                "tabs": ".module-tab-item",
                "lists": ".module-play-list:eq(#id) a"
            },
            搜索: 'body .module-item;.module-card-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href;.module-info-item-content&&Text',
        },
        mxone5: {
            title: '',
            host: '',
            url: '/show/fyclass--------fypage---.html',
            searchUrl: '/search/**----------fypage---.html',
            searchable: 2,//是否启用全局搜索,
            quickSearch: 0,//是否启用快速搜索,
            filterable: 0,//是否启用分类筛选,
            class_parse: '.nav-menu-items&&li;a&&Text;a&&href;.*/(.*?).html',
            play_parse: true,
            lazy: '',
            limit: 6,
            推荐: '.module-list;.module-items&&.module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
            double: true, // 推荐内容是否双层定位
            一级: '.module-items .module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
            二级: {
                "title": "h1&&Text;.tag-link&&Text",
                "img": ".module-item-pic&&img&&data-src",
                "desc": ".video-info-items:eq(0)&&Text;.video-info-items:eq(1)&&Text;.video-info-items:eq(2)&&Text;.video-info-items:eq(3)&&Text",
                "content": ".vod_content&&Text",
                "tabs": ".module-tab-item",
                "lists": ".module-player-list:eq(#id)&&.scroll-content&&a"
            },
            搜索: '.module-items .module-search-item;a&&title;img&&data-src;.video-serial&&Text;a&&href',
        },
        首图: {
            title: '',
            host: '',
            url: '/vodshow/fyclass--------fypage---/',
            searchUrl: '/vodsearch/**----------fypage---.html',
            searchable: 2,//是否启用全局搜索,
            quickSearch: 0,//是否启用快速搜索,
            filterable: 0,//是否启用分类筛选,
            headers: {//网站的请求头,完整支持所有的,常带ua和cookies
                'User-Agent': 'MOBILE_UA',
                // "Cookie": "searchneed=ok"
            },
            class_parse: '.myui-header__menu li.hidden-sm:gt(0):lt(5);a&&Text;a&&href;/(\\d+).html',
            play_parse: true,
            lazy: '',
            limit: 6,
            推荐: 'ul.myui-vodlist.clearfix;li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
            double: true, // 推荐内容是否双层定位
            一级: '.myui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
            二级: {
                "title": ".myui-content__detail .title&&Text;.myui-content__detail p:eq(-2)&&Text",
                "img": ".myui-content__thumb .lazyload&&data-original",
                "desc": ".myui-content__detail p:eq(0)&&Text;.myui-content__detail p:eq(1)&&Text;.myui-content__detail p:eq(2)&&Text",
                "content": ".content&&Text",
                "tabs": ".nav-tabs:eq(0) li",
                "lists": ".myui-content__list:eq(#id) li"
            },
            搜索: '#searchList li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
        },
        首图2: {
            title: '',
            host: '',
            url: '/list/fyclass-fypage.html',
            searchUrl: '/vodsearch/**----------fypage---.html',
            searchable: 2,//是否启用全局搜索,
            quickSearch: 0,//是否启用快速搜索,
            filterable: 0,//是否启用分类筛选,
            headers: {
                'User-Agent': 'UC_UA',
                // "Cookie": ""
            },
            // class_parse:'.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;/(\\d+).html',
            class_parse: '.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;.*/(.*?).html',
            play_parse: true,
            lazy: '',
            limit: 6,
            推荐: 'ul.stui-vodlist.clearfix;li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href',
            double: true, // 推荐内容是否双层定位
            一级: '.stui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
            二级: {
                "title": ".stui-content__detail .title&&Text;.stui-content__detail p:eq(-2)&&Text",
                "img": ".stui-content__thumb .lazyload&&data-original",
                "desc": ".stui-content__detail p:eq(0)&&Text;.stui-content__detail p:eq(1)&&Text;.stui-content__detail p:eq(2)&&Text",
                "content": ".detail&&Text",
                "tabs": ".stui-vodlist__head h3",
                "lists": ".stui-content__playlist:eq(#id) li"
            },
            搜索: 'ul.stui-vodlist__media:eq(0) li,ul.stui-vodlist:eq(0) li,#searchList li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
            搜索1: 'ul.stui-vodlist&&li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
            搜索2: 'ul.stui-vodlist__media&&li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
        },
        默认: {
            title: '',
            host: '',
            url: '/vodshow/fyclass--------fypage---.html',
            searchUrl: '/vodsearch/-------------.html?wd=**',
            searchable: 2,//是否启用全局搜索,
            quickSearch: 0,//是否启用快速搜索,
            filterable: 0,//是否启用分类筛选,
            headers: {
                'User-Agent': 'MOBILE_UA',
            },
            play_parse: true,
            lazy: '',
            limit: 6,
            double: true, // 推荐内容是否双层定位
        },
        vfed: {
            title: '',
            host: '',
            url: '/index.php/vod/show/id/fyclass/page/fypage.html',
            searchUrl: '/index.php/vod/search/page/fypage/wd/**.html',
            searchable: 2,//是否启用全局搜索,
            quickSearch: 0,//是否启用快速搜索,
            filterable: 0,//是否启用分类筛选,
            headers: {
                'User-Agent': 'UC_UA',
            },
            // class_parse:'.fed-pops-navbar&&ul.fed-part-rows&&a.fed-part-eone:gt(0):lt(5);a&&Text;a&&href;.*/(.*?).html',
            class_parse: '.fed-pops-navbar&&ul.fed-part-rows&&a;a&&Text;a&&href;.*/(.*?).html',
            play_parse: true,
            lazy: '',
            limit: 6,
            推荐: 'ul.fed-list-info.fed-part-rows;li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
            double: true, // 推荐内容是否双层定位
            一级: '.fed-list-info&&li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
            二级: {
                "title": "h1.fed-part-eone&&Text;.fed-deta-content&&.fed-part-rows&&li&&Text",
                "img": ".fed-list-info&&a&&data-original",
                "desc": ".fed-deta-content&&.fed-part-rows&&li:eq(1)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(2)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(3)&&Text",
                "content": ".fed-part-esan&&Text",
                "tabs": ".fed-drop-boxs&&.fed-part-rows&&li",
                "lists": ".fed-play-item:eq(#id)&&ul:eq(1)&&li"
            },
            搜索: '.fed-deta-info;h1&&Text;.lazyload&&data-original;.fed-list-remarks&&Text;a&&href;.fed-deta-content&&Text',
        },
        海螺3: {
            title: '',
            host: '',
            searchUrl: '/v_search/**----------fypage---.html',
            url: '/vod_____show/fyclass--------fypage---.html',
            headers: {
                'User-Agent': 'MOBILE_UA'
            },
            timeout: 5000,
            class_parse: 'body&&.hl-nav li:gt(0);a&&Text;a&&href;.*/(.*?).html',
            cate_exclude: '明星|专题|最新|排行',
            limit: 40,
            play_parse: true,
            lazy: '',
            推荐: '.hl-vod-list;li;a&&title;a&&data-original;.remarks&&Text;a&&href',
            double: true,
            一级: '.hl-vod-list&&.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
            二级: {
                "title": ".hl-infos-title&&Text;.hl-text-conch&&Text",
                "img": ".hl-lazy&&data-original",
                "desc": ".hl-infos-content&&.hl-text-conch&&Text",
                "content": ".hl-content-text&&Text",
                "tabs": ".hl-tabs&&a",
                "lists": ".hl-plays-list:eq(#id)&&li"
            },
            搜索: '.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
            searchable: 2,//是否启用全局搜索,
            quickSearch: 0,//是否启用快速搜索,
            filterable: 0,//是否启用分类筛选,
        },
        海螺2: {
            title: '',
            host: '',
            searchUrl: '/index.php/vod/search/page/fypage/wd/**/',
            url: '/index.php/vod/show/id/fyclass/page/fypage/',
            headers: {
                'User-Agent': 'MOBILE_UA'
            },
            timeout: 5000,
            class_parse: '#nav-bar li;a&&Text;a&&href;id/(.*?)/',
            limit: 40,
            play_parse: true,
            lazy: '',
            推荐: '.list-a.size;li;a&&title;.lazy&&data-original;.bt&&Text;a&&href',
            double: true,
            一级: '.list-a&&li;a&&title;.lazy&&data-original;.list-remarks&&Text;a&&href',
            二级: {
                "title": "h2&&Text;.deployment&&Text",
                "img": ".lazy&&data-original",
                "desc": ".deployment&&Text",
                "content": ".ec-show&&Text",
                "tabs": "#tag&&a",
                "lists": ".play_list_box:eq(#id)&&li"
            },
            搜索: '.search-list;a&&title;.lazy&&data-original;.deployment&&Text;a&&href',
            searchable: 2,//是否启用全局搜索,
            quickSearch: 0,//是否启用快速搜索,
            filterable: 0,//是否启用分类筛选,
        },
        短视: {
            title: '',
            host: '',
            // homeUrl:'/',
            url: '/channel/fyclass-fypage.html',
            searchUrl: '/search.html?wd=**',
            searchable: 2,//是否启用全局搜索,
            quickSearch: 0,//是否启用快速搜索,
            filterable: 0,//是否启用分类筛选,
            headers: {//网站的请求头,完整支持所有的,常带ua和cookies
                'User-Agent': 'MOBILE_UA',
                // "Cookie": "searchneed=ok"
            },
            class_parse: '.menu_bottom ul li;a&&Text;a&&href;.*/(.*?).html',
            cate_exclude: '解析|动态',
            play_parse: true,
            lazy: '',
            limit: 6,
            推荐: '.indexShowBox;ul&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
            double: true, // 推荐内容是否双层定位
            一级: '.pic-list&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
            二级: {
                "title": "h1&&Text;.content-rt&&p:eq(0)&&Text",
                "img": ".img&&img&&data-src",
                "desc": ".content-rt&&p:eq(1)&&Text;.content-rt&&p:eq(2)&&Text;.content-rt&&p:eq(3)&&Text;.content-rt&&p:eq(4)&&Text;.content-rt&&p:eq(5)&&Text",
                "content": ".zkjj_a&&Text",
                "tabs": ".py-tabs&&option",
                "lists": ".player:eq(#id) li"
            },
            搜索: '.sr_lists&&ul&&li;h3&&Text;img&&data-src;.int&&p:eq(0)&&Text;a&&href',
        },
        短视2:{
            title: '',
            host: '',
            class_name:'电影&电视剧&综艺&动漫',
            class_url:'1&2&3&4',
            searchUrl: '/index.php/ajax/suggest?mid=1&wd=**',
            searchable: 2,
            quickSearch: 0,
            headers:{'User-Agent':'MOBILE_UA'},
            url: '/index.php/api/vod#type=fyclass&page=fypage',
            filterable:0,//是否启用分类筛选,
            filter_url:'',
            filter: {},
            filter_def:{},
            detailUrl:'/index.php/vod/detail/id/fyid.html',
            推荐:'.list-vod.flex .public-list-box;a&&title;.lazy&&data-original;.public-list-prb&&Text;a&&href',
            一级:'js:let body=input.split("#")[1];let t=Math.round(new Date/1e3).toString();let key=md5("DS"+t+"DCC147D11943AF75");let url=input.split("#")[0];body=body+"&time="+t+"&key="+key;print(body);fetch_params.body=body;let html=post(url,fetch_params);let data=JSON.parse(html);VODS=data.list.map(function(it){it.vod_pic=urljoin2(input.split("/i")[0],it.vod_pic);return it});',
            二级:{
                "title":".slide-info-title&&Text;.slide-info:eq(3)--strong&&Text",
                "img":".detail-pic&&data-original",
                "desc":".fraction&&Text;.slide-info-remarks:eq(1)&&Text;.slide-info-remarks:eq(2)&&Text;.slide-info:eq(2)--strong&&Text;.slide-info:eq(1)--strong&&Text",
                "content":"#height_limit&&Text",
                "tabs":".anthology.wow.fadeInUp.animated&&.swiper-wrapper&&a",
                "tab_text":".swiper-slide&&Text",
                "lists":".anthology-list-box:eq(#id) li"
            },
            搜索:'json:list;name;pic;;id',
        }
    };
    return JSON.parse(JSON.stringify(mubanDict));
}
var mubanDict = getMubans();
var muban = getMubans();
export default {muban,getMubans};


站名: 零零七影视

图片: data-original="&&"

标题: title="&&"

搜索图片: data-original="&&"

搜索标题: title="&&"

搜索后缀: /detail/

影片类型: 类型：&&</span>

简介: style="display: none;">&&</span>

播放数组: <ul class="stui-content__playlist&&

剧情

key: class

n: 全部

n: 爱情

v: 爱情

n: 动作

v: 动作

n: 喜剧

v: 喜剧

n: 战争

v: 战争

n: 科幻

v: 科幻

n: 剧情

v: 剧情

n: 武侠

v: 武侠

n: 冒险

v: 冒险

n: 枪战

v: 枪战

n: 恐怖

v: 恐怖

n: 微电影

v: 微电影

n: 其他

v: 其他

地区

key: area

n: 大陆

v: 大陆

n: 香港

v: 香港

n: 台湾

v: 台湾

n: 韩国

v: 韩国

n: 日本

v: 日本

n: 美国

v: 美国

n: 泰国

v: 泰国

n: 新加坡

v: 新加坡

n: 马来西亚

v: 马来西亚

n: 印度

v: 印度

n: 英国

v: 英国

n: 法国

v: 法国

n: 加拿大

v: 加拿大

n: 西班牙

v: 西班牙

n: 俄罗斯

v: 俄罗斯

语言

key: lang

n: 国语

v: 国语

n: 英语

v: 英语

n: 粤语

v: 粤语

n: 闽南语

v: 闽南语

n: 韩语

v: 韩语

n: 日语

v: 日语

n: 法语

v: 法语

n: 德语

v: 德语

n: 其它

v: 其它

年份

key: year

排序

key: by

n: 时间

v: time

n: 人气

v: hits

n: 评分

v: score


站名: 新视觉影视

简介: 提示：低版本电视不可选“蓝光专享”。+剧情：&&<a

导演: 导演：&&</div>

主演: 主演：&&</div>

影片类型: video-tag-icon">&&立即播放

影片状态: 集数：&&</div>

数组: module-item-pic">&&module-item">

副标题: module-item-text">&&</div>

图片: data-src="&&"

搜索后缀: /video/

搜索数组: lazy lazyload"&&<h3>

搜索图片: data-src="&&"

播放数组: sort-item"&&</div>

类型

key: cateId

n: 全部类型

n: 动作片

n: 喜剧片

n: 爱情片

n: 科幻记

n: 恐怖片

n: 剧情片

n: 战争片

n: 记录片

n: 悬疑片

n: 犯罪片

n: 冒险片

n: 动画片

n: 惊悚片

n: 奇幻片

n: 理论片

剧情

n: 全部剧情

n: 喜剧

v: 喜剧

n: 爱情

v: 爱情

n: 恐怖

v: 恐怖

n: 动作

v: 动作

n: 科幻

v: 科幻

n: 剧情

v: 剧情

n: 战争

v: 战争

n: 警匪

v: 警匪

n: 犯罪

v: 犯罪

n: 动画

v: 动画

n: 奇幻

v: 奇幻

n: 武侠

v: 武侠

n: 冒险

v: 冒险

n: 枪战

v: 枪战

n: 悬疑

v: 悬疑

n: 惊悚

v: 惊悚

n: 经典

v: 经常

n: 青春

v: 青春

n: 文艺

v: 文艺

n: 微电影

v: 微电影

n: 古装

v: 古装

n: 儿童

v: 儿童

n: 网络电影

v: 网络电影

地区

n: 全部地区

n: 大陆

v: 大陆

n: 香港

v: 香港

n: 台湾

v: 台湾

n: 美国

v: 美国

n: 英国

v: 英国

n: 日本

v: 日本

n: 韩国

v: 韩国

n: 德国

v: 德国


站名: TVB云播

播放数组: <ul class="myui-content__list scrollbar sort-list clearfix"&&

影片类型: 分类：&&主演

导演: 导演：&&

主演: 主演：&&

简介: class="sketch content">&&</span>

类型

n: 全部

n: 动作片

n: 喜剧片

n: 爱情片

n: 科幻片

n: 恐怖片

n: 剧情片

n: 战争片

剧情

n: 喜剧

v: 喜剧

n: 爱情

v: 爱情

n: 恐怖

v: 恐怖

n: 动作

v: 动作

n: 科幻

v: 科幻

n: 剧情

v: 剧情

n: 战争

v: 战争

n: 警匪

v: 警匪

n: 犯罪

v: 犯罪

n: 动画

v: 动画

n: 奇幻

v: 奇幻

n: 武侠

v: 武侠

n: 冒险

v: 冒险

n: 枪战

v: 枪战

n: 悬疑

v: 悬疑

n: 惊悚

v: 经典

n: 历史

v: 历史

n: 运动

v: 运动

n: 农村

v: 农村

n: 法国

v: 法国

n: 泰国

v: 泰国

n: 印度

v: 印度

n: 意大利

v: 意大利

n: 西班牙

v: 西班牙

n: 加拿大

v: 加拿大


type_name: 遵义

type_id: 遵义

type_name: 旅游

type_id: 旅游

type_name: 风光片

type_id: 风景4K

type_name: 纪录片

type_id: 纪录片超清

type_name: 美食

type_id: 美食超清

type_name: 食谱

type_id: 食谱

type_name: 生活百科

type_id: 生活百科

分类

key: tid

n: 全部

v: 生活百科常识

n: 电器选购

v: 电器选购指南

n: 家庭装修

v: 家庭装修指南

n: 家庭用药

v: 家庭用药指导

n: 夫妻相处

v: 夫妻相处之道

n: 与人相处

v: 与人沟通的技巧

n: 育儿指导

v: 育儿指导

排序

key: order

n: 综合排序

n: 最多点击

v: click

n: 最新发布

v: pubdate

n: 最多弹幕

v: dm

n: 最多收藏

v: stow

时长

key: duration

n: 60分钟以上

n: 10分钟以下

分类

v: 旅游纪录片

n: 旅行视频

v: 4K旅行视频

n: 旅游攻略

v: 旅游攻略

n: 自驾游

v: 自驾游攻略

n: 旅游闭坑

v: 旅游闭坑

n: 国内旅游

v: 国内旅游

n: 出国旅游

v: 出国旅游推荐

世界

v: 世界风光4K

n: 亚洲

v: 亚洲风景4K

n: 欧洲

v: 欧洲风景4K

n: 美洲

v: 美洲风景4K

n: 非洲

v: 非洲风景4K

n: 大洋洲

v: 大洋洲风景4K

n: 三维地图看世界

v: 三维地图看世界

n: 海洋世界

v: 海洋世界

中国

v: 中国风光片4K

n: 航拍中国

v: 航拍中国4K

n: A澳门

v: 澳门风景4K

n: A安徽

v: 安徽风景4K

n: B布达拉宫

v: 布达拉宫风景4K


code:
{
    "规则名": "BT天堂",
    "规则作者": "",
    "请求头参数": "PC_UA",
    "网页编码格式": "UTF-8",
    "图片是否需要代理": "0",
    "是否开启获取首页数据": "1",
    "首页推荐链接": "https://www.bt-tt.com",
    "首页列表数组规则": "body&&.ul-imgtxt1",
    "首页片单列表数组规则": "li",
    "首页片单是否Jsoup写法": "1",
    "首页片单标题": "h3&&Text",
    "首页片单链接": "a&&href",
    "首页片单图片": "img&&src",
    "首页片单副标题": "span,-1&&Text",
    "首页片单链接加前缀": "https://www.bt-tt.com",
    "首页片单链接加后缀": "",
    "分类起始页码": "0",
    "分类链接": "https://www.bt-tt.com/html/{cateId}-{catePg}.html",
    //"分类链接": "https://www.clgod.xyz/list/{catePg}-{cateId}-0-0.html",
    "分类名称": "欧美电影&日韩电影&港台电影&大陆电影&亚太电影&欧美剧&日韩剧&港台剧&国产剧&亚太剧&动漫&综艺&纪录片",
    "分类名称替换词": "1&2&3&4&5&6&7&8&9&10&11&12&13",
    //"分类名称": "电影&动作&灵异&奇幻&宗教&励志&犯罪&功夫&喜剧&黑色&幽默&爱情&香港&纪录片&灾难&亲情&暴力&僵尸&丧尸&悬疑&人性&惊悚&血腥&武侠&剧情&历史&战争&经典&漫画&改编&恐怖&穿越&青春&黑帮&文艺&浪漫&同志&冒险&动画&演唱会",
    //"分类名称替换词": "0&1&2&3&4&5&6&7&8&10&11&12&1315&16&17&18&19&20&21&22&23&24&25&27&28&29&30&31&32&33&34&35&36&37&38&39&40&41&42",
    "筛选数据": {},
    "分类截取模式": "1",
    "分类列表数组规则": ".ul-imgtxt2&&li",
    "分类片单是否Jsoup写法": "1",
    "分类片单标题": "h3&&Text",
    "分类片单链接": "a&&href",
    "分类片单图片": "img&&src",
    "分类片单副标题": "span,-1--a&&Text!更新时间：",
    "分类片单链接加前缀": "https://www.bt-tt.com",
    "分类片单链接加后缀": "",
    "搜索请求头参数": "User-Agent$PC_UA",
    "搜索链接": "https://www.bt-tt.com/e/search/;post",
    "POST请求数据": "show=title,newstext&keyboard={wd}&searchtype=影视搜索",
    "搜索截取模式": "1",
    "搜索列表数组规则": ".ul-imgtxt2&&li",
    "搜索片单是否Jsoup写法": "1",
    "搜索片单图片": "img&&src",
    "搜索片单标题": "h3&&Text",
    "搜索片单链接": "a&&href",
    "搜索片单副标题": "span,-1--a&&Text!更新时间：",
    "搜索片单链接加前缀": "https://www.bt-tt.com",
    "搜索片单链接加后缀": "",
    "链接是否直接播放": "0",
    "直接播放链接加前缀": "",
    "直接播放链接加后缀": "",
    "直接播放直链视频请求头": "",
    "详情是否Jsoup写法": "0",
    "类型详情": "
◎类　　别&&
",
    "年代详情": "
◎年　　代&&
",
    "地区详情": "
◎产　　地&&
",
    "演员详情": "",
    "简介详情": "",
    "线路列表数组规则": "",
    "线路标题": "",
    "播放列表数组规则": "body&&.container",
    "选集列表数组规则": "a[href^=magnet]||a[href^=ed2K]",
    "选集标题链接是否Jsoup写法": "1",
    "选集标题": "Text",
    "选集链接": "a&&href",
    "是否反转选集序列": "0",
    "选集链接加前缀": "",
    "选集链接加后缀": "",
    "分析MacPlayer": "0",
    "是否开启手动嗅探": "0",
    "手动嗅探视频链接关键词": ".mp4#.m3u8#.flv",
    "手动嗅探视频链接过滤词": ".html"
}

license: unknown


规则名: 短剧网

规则作者: 醉卧东风

首页片单列表数组规则: .module-item

分类名称: 逆袭&甜宠&虐恋&穿越&重生

分类片单标题: a&&title

分类片单链接: a&&href

搜索片单图片: .lazyload&&data-src

搜索片单链接: a&&href

搜索片单副标题: .video-serial&&Text

直接播放链接加后缀: #isVideo=true#

演员详情: 主演：&&

简介详情: introduction">&&

线路标题: Text

选集列表数组规则: .scroll-content&&a

选集标题: a&&Text

选集链接: a&&href

手动嗅探视频链接过滤词: .html#?url=http


code:
#coding=utf-8
#!/usr/bin/python
import sys
sys.path.append('..')
from base.spider import Spider
import json
import time
import base64

class Spider(Spider):  # 元类 默认的元类 type
    def getName(self):
        return "中医药"
    def init(self,extend=""):
        print("============{0}============".format(extend))
        pass
    def isVideoFormat(self,url):
        pass
    def manualVideoCheck(self):
        pass
    def homeContent(self,filter):
        result = {}
        cateManual = {
		    "中医药":"中医药",
		    "中医基础":"中医基础",
		    "中药基础":"中药基础",
		    "伤寒论":"伤寒论",
			"难经":"难经",
			"神农本草经":"神农本草经",
			"金匮要略":"金匮要略",
			"脉经":"脉经",
			"中藏经":"中藏经",
			"针灸甲乙经":"针灸甲乙经",
			"濒湖脉学":"濒湖脉学",
			"本草纲目":"本草纲目",
			"汤头歌诀":"汤头歌诀",
			"药性赋":"药性赋"
        }
        classes = []
        for k in cateManual:
            classes.append({
                'type_name':k,
                'type_id':cateManual[k]
            })
        result['class'] = classes
        if(filter):
            result['filters'] = self.config['filter']
        return result
    def homeVideoContent(self):
        result = {
            'list':[]
        }
        return result
    cookies = ''
    def getCookie(self):
        import requests
        import http.cookies
        # 这里填cookie
        raw_cookie_line ="buvid3=8B57D3BA-607A-1E85-018A-E8C430023CED42659infoc; b_lsid=BEB8EE7F_18742FF8C2E; bsource=search_baidu; _uuid=DE810E367-B52C-AF6E-A612-EDF4C31567F358591infoc; b_nut=100; buvid_fp=711a632b5c876fa8bbcf668c1efba551; SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7; sid=5h4ruv6o; buvid4=978E9208-13DA-F87A-3DC0-0B8EDF46E80434329-123040301-dWliG5BMrUb70r3g583u7w%3D%3D"
        simple_cookie = http.cookies.SimpleCookie(raw_cookie_line)
        cookie_jar = requests.cookies.RequestsCookieJar()
        cookie_jar.update(simple_cookie)
        return cookie_jar
    def get_dynamic(self,pg):
        result = {}

        url= 'https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/all?timezone_offset=-480&type=all&page={0}'.format(pg)

        rsp = self.fetch(url,cookies=self.getCookie())
        content = rsp.text
        jo = json.loads(content)
        if jo['code'] == 0:
            videos = []
            vodList = jo['data']['items']
            for vod in vodList:
                if vod['type'] == 'DYNAMIC_TYPE_AV':
                    ivod = vod['modules']['module_dynamic']['major']['archive']
                    aid = str(ivod['aid']).strip()
                    title = ivod['title'].strip().replace("","").replace("","")
                    img =  ivod['cover'].strip()
                    remark = str(ivod['duration_text']).strip()
                    videos.append({
                        "vod_id":aid,
                        "vod_name":title,
                        "vod_pic":img,
                        "vod_remarks":remark
                    })
                result['list'] = videos
                result['page'] = pg
                result['pagecount'] = 9999
                result['limit'] = 90
                result['total'] = 999999
        return result

    def get_hot(self,pg):
        result = {}
        url= 'https://api.bilibili.com/x/web-interface/popular?ps=20&pn={0}'.format(pg)
        rsp = self.fetch(url,cookies=self.getCookie())
        content = rsp.text
        jo = json.loads(content)
        if jo['code'] == 0:
            videos = []
            vodList = jo['data']['list']
            for vod in vodList:
                aid = str(vod['aid']).strip()
                title = vod['title'].strip().replace("","").replace("","")
                img =  vod['pic'].strip()
                remark = str(vod['duration']).strip()
                videos.append({
                    "vod_id":aid,
                    "vod_name":title,
                    "vod_pic":img,
                    "vod_remarks":remark
                })
            result['list'] = videos
            result['page'] = pg
            result['pagecount'] = 9999
            result['limit'] = 90
            result['total'] = 999999
        return result
    def get_rank(self):
        result = {}
        url= 'https://api.bilibili.com/x/web-interface/ranking/v2?rid=0&type=all'
        rsp = self.fetch(url,cookies=self.getCookie())
        content = rsp.text
        jo = json.loads(content)
        if jo['code'] == 0:
            videos = []
            vodList = jo['data']['list']
            for vod in vodList:
                aid = str(vod['aid']).strip()
                title = vod['title'].strip().replace("","").replace("","")
                img =  vod['pic'].strip()
                remark = str(vod['duration']).strip()
                videos.append({
                    "vod_id":aid,
                    "vod_name":title,
                    "vod_pic":img,
                    "vod_remarks":remark
                })
            result['list'] = videos
            result['page'] = 1
            result['pagecount'] = 1
            result['limit'] = 90
            result['total'] = 999999
        return result
    def categoryContent(self,tid,pg,filter,extend):
        result = {}
        if tid == "热门":
            return self.get_hot(pg=pg)
        if tid == "排行榜" :
            return self.get_rank()
        if tid == '动态':
            return self.get_dynamic(pg=pg)
        url = 'https://api.bilibili.com/x/web-interface/search/type?search_type=video&keyword={0}&page={1}'.format(tid,pg)
        if len(self.cookies) <= 0:
            self.getCookie()
        rsp = self.fetch(url,cookies=self.getCookie())
        content = rsp.text
        jo = json.loads(content)
        if jo['code'] != 0:
            rspRetry = self.fetch(url,cookies=self.getCookie())
            content = rspRetry.text
        jo = json.loads(content)
        videos = []
        vodList = jo['data']['result']
        for vod in vodList:
            aid = str(vod['aid']).strip()
            title = tid + ":" + vod['title'].strip().replace("","").replace("","")
            img = 'https:' + vod['pic'].strip()
            remark = str(vod['duration']).strip()
            videos.append({
                "vod_id":aid,
                "vod_name":title,
                "vod_pic":img,
                "vod_remarks":remark
            })
        result['list'] = videos
        result['page'] = pg
        result['pagecount'] = 9999
        result['limit'] = 90
        result['total'] = 999999
        return result
    def cleanSpace(self,str):
        return str.replace('\n','').replace('\t','').replace('\r','').replace(' ','')
    def detailContent(self,array):
        aid = array[0]
        url = "https://api.bilibili.com/x/web-interface/view?aid={0}".format(aid)

        rsp = self.fetch(url,headers=self.header,cookies=self.getCookie())
        jRoot = json.loads(rsp.text)
        jo = jRoot['data']
        title = jo['title'].replace("","").replace("","")
        pic = jo['pic']
        desc = jo['desc']
        typeName = jo['tname']
        vod = {
            "vod_id":aid,
            "vod_name":title,
            "vod_pic":pic,
            "type_name":typeName,
            "vod_year":"",
            "vod_area":"bilidanmu",
            "vod_remarks":"",
            "vod_actor":jo['owner']['name'],
            "vod_director":jo['owner']['name'],
            "vod_content":desc
        }
        ja = jo['pages']
        playUrl = ''
        for tmpJo in ja:
            cid = tmpJo['cid']
            part = tmpJo['part']
            playUrl = playUrl + '{0}${1}_{2}#'.format(part,aid,cid)

        vod['vod_play_from'] = 'B站'
        vod['vod_play_url'] = playUrl

        result = {
            'list':[
                vod
            ]
        }
        return result
    def searchContent(self,key,quick):
        search = self.categoryContent(tid=key,pg=1,filter=None,extend=None)
        result = {
            'list':search['list']
        }
        return result
    def playerContent(self,flag,id,vipFlags):
        # https://www.555dianying.cc/vodplay/static/js/playerconfig.js
        result = {}

        ids = id.split("_")
        url = 'https://api.bilibili.com:443/x/player/playurl?avid={0}&cid=%20%20{1}&qn=112'.format(ids[0],ids[1])
        rsp = self.fetch(url,cookies=self.getCookie())
        jRoot = json.loads(rsp.text)
        jo = jRoot['data']
        ja = jo['durl']

        maxSize = -1
        position = -1
        for i in range(len(ja)):
            tmpJo = ja[i]
            if maxSize < int(tmpJo['size']):
                maxSize = int(tmpJo['size'])
                position = i

        url = ''
        if len(ja) > 0:
            if position == -1:
                position = 0
            url = ja[position]['url']

        result["parse"] = 0
        result["playUrl"] = ''
        result["url"] = url
        result["header"] = {
            "Referer":"https://www.bilibili.com",
            "User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36"
        }
        result["contentType"] = 'video/x-flv'
        return result

    config = {
        "player": {},
        "filter": {}
    }
    header = {}

    def localProxy(self,param):
        return [200, "video/MP2T", action, ""]


站名: 乐猪

请求头: 手机

分类: 电影&连续剧&动漫&综艺&韩剧&美剧

播放数组: list_block show">&&</ul>

类型

n: 全部

n: 动作片

n: 喜剧片

n: 爱情片

n: 科幻片

n: 恐怖片

n: 剧情片

n: 战争片

n: 奇幻片

n: 惊悚片

n: 动画片

n: 悬疑片

n: 犯罪片

n: 记录片

n: 音乐片

排序

n: 时间

v: time

n: 人气

v: hits

n: 评分

v: score

类型

n: 大陆

n: 港剧

n: 韩剧

n: 美剧

n: 日剧

n: 台剧

n: 泰剧

n: 大陆综艺

n: 港台综艺

n: 日韩综艺

n: 欧美综艺

n: 国产动漫

n: 日本动漫

n: 其他动漫


type_name: 儿童早教

type_id: 儿童早教

type_name: 儿童歌曲

type_id: 儿童歌曲

type_name: 儿童故事

type_id: 儿童故事

type_name: 儿童英语

type_id: 儿童英语启蒙

type_name: 儿童绘画

type_id: 儿童绘画

type_name: 儿童动画

type_id: 儿童动画

type_name: 安全教育

type_id: 儿童安全教育

type_name: 认字动画

type_id: 儿童认字动画

时长

n: 全部

n: 60分钟以上

n: 10分钟以下

分类

v: 儿童歌曲

n: 贝瓦儿歌

v: 贝瓦儿歌

n: 儿歌多多

v: 儿歌多多

n: 儿童MV

v: 儿童MV

n: 音乐

v: 儿童音乐

v: 儿童故事

n: 启蒙故事

v: 儿童启蒙故事

n: 成语故事

v: 儿童成语故事

n: 贝乐虎故事

v: 贝乐虎讲故事

n: 睡前故事

v: 睡前故事

n: 宝宝巴士

v: 宝宝巴士


type_name: 📕苏教版

type_id: 苏教版课程

type_name: 📗人教版

type_id: 人教版课程

type_name: 📘沪教版

type_id: 沪教版课程

type_name: 📚北师大版

type_id: 北师大版课程

排序

n: 综合排序

n: 最多点击

v: click

n: 最新发布

v: pubdate

n: 最多弹幕

v: dm

n: 最多收藏

v: stow

年级科目

n: 初一语文

v: 苏教版初一语文

n: 初一数学

v: 苏教版初一数学

n: 初一英语

v: 苏教版初一英语

n: 初一历史

v: 苏教版初一历史

n: 初一地理

v: 苏教版初一地理

n: 初一生物

v: 苏教版初一生物

n: 初一物理

v: 苏教版初一物理

n: 初一化学

v: 苏教版初一化学

n: 初二语文

v: 苏教版初二语文

n: 初二数学

v: 苏教版初二数学

n: 初二英语

v: 苏教版初二英语

n: 初二历史

v: 苏教版初二历史

n: 初二地理

v: 苏教版初二地理

n: 初二生物

v: 苏教版初二生物

n: 初二物理

v: 苏教版初二物理

n: 初二化学

v: 苏教版初二化学

n: 初三语文

v: 苏教版初三语文

n: 初三数学

v: 苏教版初三数学

v: 苏教版初三英语

n: 初三历史

v: 苏教版初三历史

n: 初三地理

v: 苏教版初三地理

n: 初三生物

v: 苏教版初三生物

n: 初三物理

v: 苏教版初三物理

n: 初三化学

v: 苏教版初三化学

v: 人教版初一语文

v: 人教版初一数学

v: 人教版初一英语

v: 人教版初一历史

v: 人教版初一地理

v: 人教版初一生物

v: 人教版初一物理

v: 人教版初一化学

v: 人教版初二语文


站名: 北川影视

简介: 银河影视提示根据流畅度和清晰度自行选择线路。+<p&&</p>

影片类型: module-info-tag"&&立即播放

搜索url: /vodsearch/?wd={wd}

搜索数组: module-card-item-class">&&</a>

搜索副标题: note">&&</div>

剧情

n: 全部剧情

n: 喜剧

v: 喜剧

n: 爱情

v: 爱情

n: 恐怖

v: 恐怖

n: 动作

v: 动作

n: 科幻

v: 科幻

n: 剧情

v: 剧情

n: 犯罪

v: 犯罪

n: 奇幻

v: 奇幻

n: 冒险

v: 冒险

n: 同性

v: 同性

n: 悬疑

v: 悬疑

n: 纪录片

v: 纪录片

n: 运动

v: 运动

n: 战争

v: 战争

n: 灾难

v: 灾难

地区

n: 全部地区

n: 大陆

v: 大陆

n: 香港

v: 香港

n: 台湾

v: 台湾

n: 美国

v: 美国

n: 日本

v: 日本

n: 韩国

v: 韩国

n: 印度

v: 印度

n: 英国

v: 英语

n: 法国

v: 法国

n: 瑞典

v: 瑞典

n: 俄罗斯

v: 俄罗斯

n: 泰国

v: 泰国

语言

n: 全部语言

n: 国语

v: 国语

n: 英语

n: 粤语

v: 粤语

n: 闽南语

v: 闽南语

n: 韩语

v: 韩语

n: 日语

v: 日语

n: 法语

v: 法语

n: 德语

v: 德语

n: 其它

v: 其它

时间

n: 全部时间

排序

n: 全部排序

n: 时间排序

v: time

n: 人气排序

v: hits

n: 评分排序

v: score


type_name: 英语

type_id: 英语学习

type_name: 法语

type_id: 法语

type_name: 德语

type_id: 德语

type_name: 俄语

type_id: 俄语

type_name: 西班牙语

type_id: 西班牙语

type_name: 韩语

type_id: 韩语

type_name: 日语

type_id: 日语

type_name: 阿拉伯语

type_id: 阿拉伯语

type_name: 意大利语

type_id: 意大利语

n: 综合排序

n: 最多点击

v: click

n: 最新发布

v: pubdate

n: 最多弹幕

v: dm

n: 最多收藏

v: stow

分类

n: 英语字母

v: 英语字母

n: 英语语法

v: 英语语法

n: 英语口语

v: 英语口语

n: 英语基础

v: 英语基础

n: 英语词汇

v: 英语词汇

n: 英语听力

v: 英语听力

n: 英语考试

v: 英语考试

时长

n: 全部

n: 60分钟以上

n: 10分钟以下

分类

n: 法语字母

v: 法语字母

n: 法语语法

v: 法语语法

n: 法语口语

v: 法语口语

n: 法语基础

v: 法语基础

n: 法语词汇

v: 法语词汇

n: 法语听力

v: 法语听力

n: 法语考试

v: 法语考试

n: 德语字母

v: 德语字母

n: 德语语法

v: 德语语法

n: 德语口语

v: 德语口语

n: 德语基础

v: 德语基础

n: 德语词汇

v: 德语词汇

n: 德语听力

v: 德语听力

n: 德语考试


type_name: 学而思课程

type_id: 学而思课程

排序

n: 综合排序

n: 最多点击

v: click

n: 最新发布

v: pubdate

n: 最多弹幕

v: dm

n: 最多收藏

v: stow

年级科目

n: 1年级语文

v: 苏教版1年级语文

n: 1年级数学

v: 苏教版1年级数学

n: 1年级英语

v: 苏教版1年级英语

n: 2年级语文

v: 苏教版2年级语文

n: 2年级数学

v: 苏教版2年级数学

n: 2年级英语

v: 苏教版2年级英语

n: 3年级语文

v: 苏教版3年级语文

n: 3年级数学

v: 苏教版3年级数学

n: 3年级英语

v: 苏教版3年级英语

n: 4年级语文

v: 苏教版4年级语文

n: 4年级数学

n: 4年级英语

v: 苏教版4年级英语

n: 5年级语文

v: 苏教版5年级语文

n: 5年级数学

v: 苏教版5年级数学

n: 5年级英语

v: 苏教版5年级英语

n: 6年级语文

v: 苏教版6年级语文

n: 6年级数学

v: 苏教版6年级数学

n: 6年级英语

v: 苏教版6年级英语

时长

n: 全部

年级科目

v: 人教版1年级语文

v: 人教版1年级数学

v: 人教版1年级英语

v: 人教版2年级语文

v: 人教版2年级数学

v: 人教版2年级英语

v: 人教版3年级语文

v: 人教版3年级数学

v: 人教版3年级英语

v: 人教版4年级语文

v: 人教版4年级英语

v: 人教版5年级语文

v: 人教版5年级数学


作者: zywhk

站名: 小鹿影视

副标题: module-item-note">&&</div>

导演: 导演：&&</span>

主演: 主演：&&</span>

线路数组: data-dropdown-value=&&</div>


type_name: 视频剪辑

type_id: 视频剪辑教程

type_name: 平面设计教学

type_id: 平面设计教学

type_name: 各类软件教程

type_id: 软件教程

type_name: Windows

type_id: Windows

type_name: 讲座

type_id: 讲座视频

排序

n: 综合排序

n: 最多点击

v: click

n: 最新发布

v: pubdate

n: 最多弹幕

v: dm

n: 最多收藏

v: stow

时长

n: 60分钟以上

n: 10分钟以下

分类

v: 平面设计教学

n: Adobe Photoshop教程

v: Adobe Photoshop教程

n: Adobe Illustrator教程

v: Adobe Illustrator教程

n: CorelDRAW教程

v: CorelDRAW教程

n: Adobe InDesign教程

v: Adobe InDesign教程

n: Adobe Pagermaker教程

v: Adobe Pagermaker教程

n: SAI教程

v: SAI教程

n: AdobeBridge教程

v: AdobeBridge教程

n: AdobePagermake教程

v: AdobePagermake教程

n: PR教程

v: PR教程

n: AE教程

v: AE教程

n: CINEMA 4D教程

v: CINEMA 4D教程

v: 软件教程

n: 办公软件

v: 办公软件教程

n: NP管理器

v: NP管理器

n: mixplorer教程

v: mixplorer教程

n: 脱壳教程

v: 脱壳教程

n: 爬虫教程

v: 爬虫教程

n: json&jar教程

v: json&jar教程

n: 网盘挂载教程

v: 网盘挂载教程

n: alist+WebDav教程

v: alist+WebDav

n: EXCEL教程

v: EXCEL教程

n: Git入门到精通

v: Git入门到精通

n: java教程

v: java教程

n: phyton教程

v: phyton教程


type_name: 演唱会

type_id: 演唱会现场

type_name: 音乐

type_id: 音乐

type_name: 歌曲

type_id: 歌曲

type_name: 戏曲

type_id: 戏曲超清

type_name: 相声小品

type_id: 相声小品超清

type_name: 舞蹈

type_id: 舞蹈超清

排序

n: 综合排序

n: 最多点击

v: click

n: 最新发布

v: pubdate

n: 最多弹幕

v: dm

n: 最多收藏

v: stow

n: 全部

v: 演唱会现场

n: 晚会

v: 晚会

n: 音乐会

v: 音乐会

n: 宝丽金

v: 宝丽金演唱会

n: 陈慧娴

v: 陈慧娴演唱会

n: 陈奕迅

v: 陈奕迅演唱会

n: 陈小春

v: 陈小春演唱会

n: 蔡依林

v: 蔡依林演唱会

n: 崔  健

v: 崔健演唱会

n: 邓紫棋

v: 邓紫棋演唱会

n: 邓丽君

v: 邓丽君演唱会

n: 刀  郎

v: 刀郎演唱会

n: 阿  杜

v: 阿杜演唱会

n: 费玉清

v: 费玉清演唱会

n: 凤飞飞

v: 凤飞飞演唱会

n: 凤凰传奇

v: 凤凰传奇演唱会

n: 郭富城

v: 郭富城演唱会

n: 胡彦斌

v: 胡彦斌演唱会

n: 韩  红

v: 韩红演唱会

n: 梁静茹

v: 梁静茹演唱会

n: 李玉刚

v: 李玉刚演唱会

n: 李荣浩

v: 李荣浩演唱会

n: 李宇春

v: 李宇春演唱会

n: 李克勤

v: 李克勤演唱会

n: 李宗盛

v: 李宗盛演唱会

n: 黎  明

v: 黎明演唱会

n: 林忆莲

v: 林忆莲演唱会

n: 林俊杰

v: 林俊杰演唱会

n: 林志炫

v: 林志炫演唱会

n: 刘德华

v: 刘德华演唱会

n: 罗大佑

v: 罗大佑演唱会

n: 莫文蔚

v: 莫文蔚演唱会

n: 毛不易

v: 毛不易演唱会

n: 梅艳芳

v: 梅艳芳演唱会

n: 齐  秦

v: 齐秦演唱会

n: 容祖儿

v: 容祖儿演唱会

n: 任贤齐

v: 任贤齐演唱会

n: 水木年华


code:
{

    "作者":"荷城茶秀",
    "站名":"明帝影视",
    "主页url":"https://ys.md214.cn/",
    "简介":"勿相信影片中广告。+module-info-item module-info-introduction\">&&
",
    "导演":"导演：&&
",
    "主演":"主演：&&
",
    "影片状态":"集数：&&
",
    "影片类型":"module-info-tag\">&&立即播放",
    "数组":"",
    "标题":"title=\"&&\"",
    "副标题":"note\">&&
",
    "图片":"data-original=\"&&\"",
    "链接":"href=\"&&\"",
    "搜索url":"/index.php/vod/search.html?wd={wd}",
    "搜索数组":"module-card-item-class\">&&",
    "搜索标题":"alt=\"&&\"",
    "搜索副标题":"note\">&&
",
    "搜索图片":"data-original=\"&&\"",
    "搜索链接":"href=\"&&\"",
  //  "搜索模式": "1",
    "线路数组":"data-dropdown-value=&&
[排序:备用线路>备用线路二]",
    "线路标题":"&&[替换:>>⚡共]+集⚡",
    "播放数组":"<div class=\"module-play-list-content&&
",
    "播放标题":"&&",
    "播放列表":"<a&&",
    "分类url":"https://ys.md214.cn/index.php/vod/show/area/{area}/by/{by}/class/{class}/id/{cateId}/lang/{lang}/page/{catePg}/year/{year}.html;;ak",
    "分类":"电影$1#电视剧$2#综艺$3#动漫$4"

    }


站名: 极客影院

数组: module-item">&&</div>


站名: 七月影视

影片类型: module-info-tag">&&立即播放


code:
{
 "站名":"热播之家",
 "主页url": "https://rebozj.pro",
//"数组": "
&&
",
"图片": "data-original=\"&&\"",
"标题": "title=\"&&\"",
"链接": "href=\"&&\"",
"副标题": "class=\"pic-text text-right\">&&",
"搜索模式": "1",
"嗅探词":".m3u8#video_mp4#tos-#.mp4#cdn.123pan.cn#huoshanvod.com",
"搜索url": "https://rebozj.pro/search/-------------.html?wd={wd}&submit=",
"搜索数组": "
&&
",
"搜索图片": "original=\"&&\"",
"搜索标题": "title=\"&&\"",
"搜索副标题": "class=\"pic-text text-right\">&&",
"搜索链接": "href=\"&&\"",
"线路数组":"&&<",
"播放列表": "",
"播放标题": ">&&<",
"影片类型": "类型：&&
",
"导演": "导演：&&
",
"主演": "主演：&&
",
"简介": "display: none;\">&&",
"分类": "电视剧$2#电影$1#综艺$3#动漫$4",
"分类url": "https://rebozj.pro/show/{cateId}--{area}------{catePg}---{year}.html;;a",
"跳转播放链接": "urlDecode(vod_class*url\":\"&&\")"
 }


站名: 爱看影院

类型

n: 全部类型

n: 动作片

n: 喜剧片

n: 爱情片

n: 科幻记

n: 恐怖片

n: 剧情片

n: 战争片

n: 记录片

n: 悬疑片

n: 犯罪片

n: 冒险片

n: 动画片

n: 惊悚片

n: 奇幻片

剧情

n: 全部剧情

n: 喜剧

v: 喜剧

n: 爱情

v: 爱情

n: 恐怖

v: 恐怖

n: 动作

v: 动作

n: 科幻

v: 科幻

n: 剧情

v: 剧情

n: 战争

v: 战争

n: 警匪

v: 警匪

n: 犯罪

v: 犯罪

n: 动画

v: 动画

n: 奇幻

v: 奇幻

n: 武侠

v: 武侠

n: 冒险

v: 冒险

n: 枪战

v: 枪战

n: 悬疑

v: 悬疑

n: 惊悚

v: 惊悚

n: 经典

v: 经常

n: 青春

v: 青春

n: 文艺

v: 文艺

n: 微电影

v: 微电影

n: 古装

v: 古装

n: 儿童

v: 儿童

n: 网络电影

v: 网络电影

地区

n: 全部地区

n: 大陆

v: 大陆

n: 香港

v: 香港

n: 台湾

v: 台湾

n: 美国

v: 美国

n: 法国

v: 法国

n: 英国

v: 英国

n: 日本

v: 日本

n: 韩国

v: 韩国

n: 德国

v: 德国

n: 泰国

v: 泰国

n: 印度

v: 印度

n: 意大利

v: 意大利

n: 西班牙


站名: 秋霞影视

线路标题: <h3 class="title"&&


站名: 策驰影视

影片状态: text-right">&&</span>

副标题: text-right"&&</span>

搜索副标题: text-right">&&</span>

线路数组: #playlist&&</li>[不包含:无尽资源#八戒资源#淘片资源][排序:策驰专线K]

播放数组: <ul class="myui-content__list&&

剧情

n: 全部剧情

n: 喜剧

v: 喜剧

n: 爱情

v: 爱情

n: 恐怖

v: 恐怖

n: 动作

v: 动作

n: 科幻

v: 科幻

n: 剧情

v: 剧情

n: 战争

v: 战争

n: 警匪

v: 警匪

n: 犯罪

v: 犯罪

n: 动画

v: 动画

n: 奇幻

v: 奇幻

n: 武侠

v: 武侠

n: 冒险

v: 冒险

n: 枪战

v: 枪战

n: 悬疑

v: 悬疑

n: 惊悚

v: 惊悚

n: 经典

v: 经典

n: 青春

v: 青春

n: 文艺

v: 文艺

n: 微电影

n: 古装

n: 历史

v: 历史

n: 运动

v: 运动

n: 农村

v: 农村

v: 西班牙

n: 加拿大

v: 加拿大

n: 其他

v: 其他

时间

n: 全部时间


code:
{
"站名":"素白白",
"主页url":"https://www.subaibaiys.com/",
"图片":"data-original=\"&&\"",
"标题":"alt=\"&&\"",
"副标题":"jidi\"&&",
"链接":"href=\"&&\"",
"线路数组":"mi_paly_box\">&&
",
"线路标题":"ypxingq_t\">&&[替换:在线播放>>播放列表]",
"影片年代":"年份：&&
",
"影片地区":"地区：&&
",
"影片类型":"类型：&&
",
"导演":"导演：&&</li",
"主演":"主演：&&</li",
"简介":"。
&&
",
"播放二次截取":"",
"播放数组":"
&&
",
"播放列表":"[替换:立即播放>>空]",
"播放标题":">&&<",
"播放链接":"href=\"&&\"",
"搜索模式":"1",
 //"搜索url": "/search?q={wd}",
"搜索url":"https://www.subaibaiys.com/grabble?q={wd}&f=_all&p={pg}",
"搜索图片":"data-original=\"&&\"",
"搜索标题":"alt=\"&&\"",
"搜索副标题":"jidi\"&&",
"搜索链接":"href=\"&&\"",
"搜索后缀":"/movie/",
"分类":"自定义搜索&国产剧&综合剧集&欧美剧&韩剧&电影综合&热门电影&高分电影&漫威宇宙系列&速度与激情系列&007系列",
"分类值":"movie_bt&domestic-drama&tv-drama&american-drama&korean-drama&new-movie&hot-month&high-movie&marvel-movies&fastfurious&zero-zero-seven",
"分类url":"https://www.subaibaiys.com/{cateId}/{area}/year/{year}/{class}/{cateId2}/page/{catePg}",
"筛选":
{"movie_bt":[
{"key":"cateId2","name":"分类","value":[
{"v":"","n":"全部"},
{"v":"movie_bt_series/guochanju","n":"国产剧"},
{"v":"movie_bt_series/guochandy","n":"国产电影"},
{"v":"movie_bt_series/gangju","n":"港台剧"},
{"v":"movie_bt_series/gangtaidy","n":"港台电影"},
{"v":"movie_bt_series/riju","n":"日剧"},
{"v":"movie_bt_series/hanju","n":"韩剧"},
{"v":"movie_bt_series/rihandy","n":"日韩电影"},
{"v":"movie_bt_series/oumeiju","n":"欧美剧"},
{"v":"movie_bt_series/oumeidy","n":"欧美电影"},
{"v":"movie_bt_series/taiju","n":"泰剧"},
{"v":"movie_bt_series/thaidy","n":"泰国电影"},
{"v":"movie_bt_series/yindudy","n":"印度电影"},
{"v":"movie_bt_series/dongmanju","n":"动漫剧"},
{"v":"movie_bt_series/dongmandy","n":"动漫电影"},
{"v":"movie_bt_series/zongyi","n":"综艺"},
{"v":"movie_bt_series/xianggangdy","n":"香港经典"}]},
{"key":"area","name":"地区1","value":[
{"v":"","n":"全部"},
{"v":"movie_bt_cat/china-mainland","n":"大陆"},
{"v":"movie_bt_cat/china-hongkong","n":"香港"},
{"v":"movie_bt_cat/china-taiwan","n":"台湾"},
{"v":"movie_bt_cat/japan","n":"日本"},
{"v":"movie_bt_cat/korea","n":"韩国"},
{"v":"movie_bt_cat/america","n":"美国"},
{"v":"movie_bt_cat/england","n":"英国"},
{"v":"movie_bt_cat/france","n":"法国"},
{"v":"movie_bt_cat/germany","n":"德国"},
{"v":"movie_bt_cat/thailand","n":"泰国"},
{"v":"movie_bt_cat/india","n":"印度"},
{"v":"movie_bt_cat/singapore","n":"新加坡"},
{"v":"movie_bt_cat/philippines","n":"菲律宾"},
{"v":"movie_bt_cat/russia","n":"俄罗斯"},
{"v":"movie_bt_cat/spain","n":"西班牙"},
{"v":"movie_bt_cat/italy","n":"意大利"},
{"v":"movie_bt_cat/canada","n":"加拿大"},
{"v":"movie_bt_cat/australia","n":"澳大利亚"},
{"v":"movie_bt_cat/vietnam","n":"越南"},
{"v":"movie_bt_cat/denmark","n":"丹麦"},
{"v":"movie_bt_cat/ukraine","n":"乌克兰"},
{"v":"movie_bt_cat/israel","n":"以色列"}]},
{"key":"area","name":"地区2","value":[
{"v":"movie_bt_cat/iran","n":"伊朗"},
{"v":"movie_bt_cat/bulgaria","n":"保加利亚"},
{"v":"movie_bt_cat/iceland","n":"冰岛"},
{"v":"movie_bt_cat/hungary","n":"匈牙利"},
{"v":"movie_bt_cat/south-africa","n":"南非"},
{"v":"movie_bt_cat/luxembourg","n":"卢森堡"},
{"v":"movie_bt_cat/indonesia","n":"印尼"},
{"v":"movie_bt_cat/turkey","n":"土耳其"},
{"v":"movie_bt_cat/serbia","n":"塞尔维亚"},
{"v":"movie_bt_cat/mexico","n":"墨西哥"},
{"v":"movie_bt_cat/austria","n":"奥地利"},
{"v":"movie_bt_cat/brazil","n":"巴西"},
{"v":"movie_bt_cat/greece","n":"希腊"},
{"v":"movie_bt_cat/norway","n":"挪威"},
{"v":"movie_bt_cat/chech","n":"捷克"},
{"v":"movie_bt_cat/zealand","n":"新西兰"},
{"v":"movie_bt_cat/chile","n":"智利"},
{"v":"movie_bt_cat/belgium","n":"比利时"},
{"v":"movie_bt_cat/poland","n":"波兰"},
{"v":"movie_bt_cat/ireland","n":"爱尔兰"},
{"v":"movie_bt_cat/sweden","n":"瑞典"},
{"v":"movie_bt_cat/switzerland","n":"瑞士"},
{"v":"movie_bt_cat/romania","n":"罗马尼亚"},
{"v":"movie_bt_cat/finland","n":"芬兰"},
{"v":"movie_bt_cat/netherlands","n":"荷兰"},
{"v":"movie_bt_cat/argentina","n":"阿根廷"},
{"v":"movie_bt_cat/malaysia","n":"马来西亚"}]},
{"key":"class","name":"剧情1","value":[
{"v":"","n":"全部"},
{"v":"movie_bt_tags/plot","n":"剧情"},
{"v":"movie_bt_tags/action","n":"动作"},
{"v":"movie_bt_tags/kehuan","n":"科幻"},
{"v":"movie_bt_tags/fancy","n":"玄幻"},
{"v":"movie_bt_tags/fantasy","n":"奇幻"},
{"v":"movie_bt_tags/animation","n":"动画"},
{"v":"movie_bt_tags/history","n":"历史"},
{"v":"movie_bt_tags/costume","n":"古装"},
{"v":"movie_bt_tags/love","n":"爱情"},
{"v":"movie_bt_tags/song-and-dance","n":"歌舞"},
{"v":"movie_bt_tags/comedy","n":"喜剧"},
{"v":"movie_bt_tags/music","n":"音乐"},
{"v":"movie_bt_tags/family","n":"家庭"},
{"v":"movie_bt_tags/child","n":"儿童"},
{"v":"movie_bt_tags/biography","n":"传记"},
{"v":"movie_bt_tags/sport","n":"运动"}]},
{"key":"class","name":"剧情2","value":[
{"v":"movie_bt_tags/martial-arts","n":"武侠"},
{"v":"movie_bt_tags/action","n":"动作"},
{"v":"movie_bt_tags/disaster","n":"灾难"},
{"v":"movie_bt_tags/war","n":"战争"},
{"v":"movie_bt_tags/adventure","n":"冒险"},
{"v":"movie_bt_tags/crime","n":"犯罪"},
{"v":"movie_bt_tags/terror","n":"恐怖"},
{"v":"movie_bt_tags/thriller","n":"惊悚"},
{"v":"movie_bt_tags/suspense","n":"悬疑"},
{"v":"movie_bt_tags/west","n":"西部"},
{"v":"movie_bt_tags/short-film","n":"短片"},
{"v":"movie_bt_tags/documentary","n":"纪录片"},
{"v":"movie_bt_tags/reality-show","n":"真人秀"},
{"v":"movie_bt_tags/talkshow","n":"脱口秀"}]},
{"key":"year","name":"年份","value":[
{"n":"全部","v":""},
{"n":"2023","v":"2023"},
{"n":"2022","v":"2022"},
{"n":"2021","v":"2021"},
{"n":"2020","v":"2020"},
{"n":"2019","v":"2019"},
{"n":"2018","v":"2018"},
{"n":"2017","v":"2017"},
{"n":"2016","v":"2016"},
{"n":"2015","v":"2015"},
{"n":"2014","v":"2014"},
{"n":"2013","v":"2013"},
{"n":"2012","v":"2012"},
{"n":"2011","v":"2011"},
{"n":"2010","v":"2010"},
{"n":"2009","v":"2009"},
{"n":"2008","v":"2008"},
{"n":"2007","v":"2007"},
{"n":"2006","v":"2006"},
{"n":"2005","v":"2005"},
{"n":"2004","v":"2004"},
{"n":"2003","v":"2003"},
{"n":"2002","v":"2002"},
{"n":"2001","v":"2001"},
{"n":"2000","v":"2000"}]}
]}}


code:
{
  "站名": "freeok",
  "主页url": "https://www.freeok.vip/",
  "分类": "综合&热榜&新上线&电影&电视剧&动漫&综艺",
  "分类值": "0&label/hot&vodtype/0&vodtype/1&vodtype/2&vodtype/3&vodtype/4",
  "分类url": "https://www.freeok.vip/{cateId}.html",
//"分类url": "https://www.freeok.vip/vodshow/{cateId}-{area}-{by}-{class}-----{catePg}---{year}.html",
  "二次截取":"class=\"module-items&&fixedGroup",
  "数组": "&&
",
  "搜索模式": "1",
  "搜索url":"/vodsearch/-------------.html?wd={wd}",
  "搜索数组":"class=\"module-card-item-class\">&&",
  "搜索图片": "data-original=\"&&\"",
  "搜索标题": "alt=\"&&\"",
  "搜索链接": "href=\"&&\"",
  "搜索副标题": "class=\"module-item-note\">&&
",
  "影片类型":"class=\"module-info-tag-link\">&&
",
  "导演": "导演：&&
",
  "主演": "主演：&&
",
  "简介": "class=\"module-info-introduction-content\">&&
",
  "线路数组": "data-dropdown-value=&&
[不包含:备用频道①][排序:超清频道]",
  "线路标题": "&&[替换:>>(共]+集) ",
  "播放数组": "class=\"module-play-list\">&&
",
  "播放列表":"<a&&",
  "播放标题":"&&",
  "播放链接":"href=\"&&\""

}


站名: 速映影视

类型

n: 全部类型

n: 动作

n: 喜剧

n: 爱情

n: 科幻

n: 恐怖

n: 剧情

n: 战争

n: 犯罪

n: 动画

n: 奇幻

剧情

n: 全部剧情

v: 喜剧

v: 爱情

v: 恐怖

v: 动作

v: 科幻

v: 剧情

v: 战争

n: 警匪

v: 警匪

v: 犯罪

v: 微电影

v: 古装

n: 儿童

v: 儿童

n: 网络电影

v: 网络电影

地区

n: 全部地区

n: 大陆

v: 大陆

n: 香港

v: 香港

n: 台湾

v: 台湾

n: 美国

v: 美国

n: 法国

v: 法国

n: 英国

v: 英国

n: 日本

v: 日本

n: 韩国

v: 韩国


type_name: 📕苏教版

type_id: 苏教版课程

type_name: 📗人教版

type_id: 人教版课程

type_name: 📘沪教版

type_id: 沪教版课程

type_name: 📚北师大版

type_id: 北师大版课程

type_name: 高中信息技术

type_id: 高中信息技术

排序

n: 综合排序

n: 最多点击

v: click

n: 最新发布

v: pubdate

n: 最多弹幕

v: dm

n: 最多收藏

v: stow

年级科目

n: 高一语文

v: 苏教版高一语文

n: 高一数学

v: 苏教版高一数学

n: 高一英语

v: 苏教版高一英语

n: 高一历史

v: 苏教版高一历史

n: 高一地理

v: 苏教版高一地理

n: 高一生物

v: 苏教版高一生物

n: 高一物理

v: 苏教版高一物理

n: 高一化学

v: 苏教版高一化学

n: 高二语文

v: 苏教版高二语文

n: 高二数学

v: 苏教版高二数学

n: 高二英语

v: 苏教版高二英语

n: 高二历史

v: 苏教版高二历史

n: 高二地理

v: 苏教版高二地理

n: 高二生物

v: 苏教版高二生物

n: 高二物理

v: 苏教版高二物理

n: 高二化学

v: 苏教版高二化学

n: 高三语文

v: 苏教版高三语文

n: 高三数学

v: 苏教版高三数学

v: 苏教版高三英语

n: 高三历史

v: 苏教版高三历史

n: 高三地理

v: 苏教版高三地理

n: 高三生物

v: 苏教版高三生物

n: 高三物理

v: 苏教版高三物理

n: 高三化学

v: 苏教版高三化学

时长

n: 全部

n: 60分钟以上

n: 10分钟以下

年级科目

v: 人教版高一语文

v: 人教版高一数学

v: 人教版高一英语

v: 人教版高一历史

v: 人教版高一地理

v: 人教版高一生物

v: 人教版高一物理

v: 人教版高一化学


站名: 黑影影院


少儿教育

key: 儿童

小学课堂

key: 小学

初中课堂

key: 初中

高中课堂

key: 高中

外语学习

key: 外语

📚软件教程A

key: 教程

📚软件教程B

key: 软件

Json聚合

url: Demo

Web聚合

url: Web

银河解析

flag: qiyi qq 腾讯 letv sohu youku mgtv bilibili wasu xigua 1905

flags: youku qq iqiyi qiyi letv sohu tudou pptv mgtv wasu bilibili renrenmi

group: 软解码

fflags

value: fastseek

group: 硬解码


վ��: ������Ӱ��

ͼƬ: data-original="&&"

����ͼƬ: data-original="&&"

/detail/

ӰƬ����: ���ͣ�&&</span>

style="display: none;">&&</span>

n: ȫ��

n: ϲ��

v: ϲ��

n: ս��

v: ս��

n: �ƻ�

v: �ƻ�

n: ð��

v: ð��

n: ǹս

v: ǹս

n: ΢��Ӱ

v: ΢��Ӱ

n: ��½

v: ��½

n: �ձ�

v: �ձ�

n: �¼���

v: �¼���

n: ӡ��

v: ӡ��

n: Ӣ��

v: Ӣ��

n: ���ô�

v: ���ô�

n: ʱ��

v: time

v: hits

v: score

n: ��װ

v: ��װ

n: ��ʷ

v: ��ʷ

n: �龰

v: �龰

n: ��ս

v: ��ս


类型

n: 全部

n: 动作片

n: 喜剧片

n: 爱情片

n: 科幻片

n: 恐怖片

n: 剧情片

n: 战争片

剧情

n: 喜剧

v: 喜剧

n: 爱情

v: 爱情

n: 恐怖

v: 恐怖

n: 动作

v: 动作

n: 科幻

v: 科幻

n: 剧情

v: 剧情

n: 战争

v: 战争

n: 警匪

v: 警匪

n: 犯罪

v: 犯罪

n: 动画

v: 动画

n: 奇幻

v: 奇幻

n: 武侠

v: 武侠

n: 冒险

v: 冒险

n: 枪战

v: 枪战

n: 悬疑

v: 悬疑

n: 惊悚

v: 惊悚

n: 经典

v: 经典

n: 青春

v: 青春

n: 文艺

v: 文艺

n: 微电影

v: 微电影

n: 古装

v: 古装

n: 历史

v: 历史

n: 运动

v: 运动

n: 农村

v: 农村

n: 儿童

v: 儿童

n: 网络电影

v: 网络电影

地区

n: 大陆

v: 大陆

n: 香港

v: 香港

n: 台湾

v: 台湾

n: 美国

v: 美国

n: 法国

v: 法国

n: 英国

v: 英国

n: 日本

v: 日本

n: 韩国

v: 韩国

n: 德国

v: 德国

n: 泰国

v: 泰国

n: 印度

v: 印度

n: 意大利

v: 意大利

n: 西班牙

v: 西班牙

n: 加拿大

v: 加拿大


简介: 银河影视提示根据流畅度和清晰度自行选择线路。+<p&&</p>

剧情

n: 全部剧情

n: 喜剧

v: 喜剧

n: 爱情

v: 爱情

n: 恐怖

v: 恐怖

n: 动作

v: 动作

n: 科幻

v: 科幻

n: 剧情

v: 剧情

n: 犯罪

v: 犯罪

n: 奇幻

v: 奇幻

n: 冒险

v: 冒险

n: 同性

v: 同性

n: 悬疑

v: 悬疑

n: 纪录片

v: 纪录片

n: 运动

v: 运动

n: 战争

v: 战争

n: 灾难

v: 灾难

n: 全部地区

v: 英语

n: 瑞典

v: 瑞典

n: 俄罗斯

v: 俄罗斯

语言

n: 全部语言

n: 国语

v: 国语

n: 英语

n: 粤语

v: 粤语

n: 闽南语

v: 闽南语

n: 韩语

v: 韩语

n: 日语

v: 日语

n: 法语

v: 法语

n: 德语

v: 德语

n: 其它

v: 其它

时间

n: 全部时间

排序

n: 全部排序

n: 时间排序

v: time

n: 人气排序

v: hits

n: 评分排序

v: score


type_name: 遵义

type_id: 遵义

type_name: 旅游

type_id: 旅游

type_name: 风光片

type_id: 风景4K

type_name: 纪录片

type_id: 纪录片超清

type_name: 美食

type_id: 美食超清

type_name: 食谱

type_id: 食谱

type_name: 生活百科

type_id: 生活百科

分类

n: 全部

v: 生活百科常识

n: 电器选购

v: 电器选购指南

n: 家庭装修

v: 家庭装修指南

n: 家庭用药

v: 家庭用药指导

n: 夫妻相处

v: 夫妻相处之道

n: 与人相处

v: 与人沟通的技巧

n: 育儿指导

v: 育儿指导

n: 综合排序

n: 最多点击

v: click

n: 最新发布

v: pubdate

n: 最多弹幕

v: dm

n: 最多收藏

v: stow

时长

n: 60分钟以上

n: 10分钟以下

分类

v: 旅游纪录片

n: 旅行视频

v: 4K旅行视频

n: 旅游攻略

v: 旅游攻略

n: 自驾游

v: 自驾游攻略

n: 旅游闭坑

v: 旅游闭坑

n: 国内旅游

v: 国内旅游

n: 出国旅游

v: 出国旅游推荐

世界

v: 世界风光4K

n: 亚洲

v: 亚洲风景4K

n: 欧洲

v: 欧洲风景4K

n: 美洲

v: 美洲风景4K

n: 非洲

v: 非洲风景4K

n: 大洋洲

v: 大洋洲风景4K

n: 三维地图看世界

v: 三维地图看世界

n: 海洋世界

v: 海洋世界

中国

v: 中国风光片4K

n: 航拍中国

v: 航拍中国4K

n: A澳门

v: 澳门风景4K

n: A安徽

v: 安徽风景4K

n: B布达拉宫

v: 布达拉宫风景4K


排序

n: 综合排序

n: 最多点击

v: click

n: 最新发布

v: pubdate

n: 最多弹幕

v: dm

n: 最多收藏

v: stow

年级科目

n: 初一语文

v: 苏教版初一语文

n: 初一数学

v: 苏教版初一数学

n: 初一英语

v: 苏教版初一英语

n: 初一历史

v: 苏教版初一历史

n: 初一地理

v: 苏教版初一地理

n: 初一生物

v: 苏教版初一生物

n: 初一物理

v: 苏教版初一物理

n: 初一化学

v: 苏教版初一化学

n: 初二语文

v: 苏教版初二语文

n: 初二数学

v: 苏教版初二数学

n: 初二英语

v: 苏教版初二英语

n: 初二历史

v: 苏教版初二历史

n: 初二地理

v: 苏教版初二地理

n: 初二生物

v: 苏教版初二生物

n: 初二物理

v: 苏教版初二物理

n: 初二化学

v: 苏教版初二化学

n: 初三语文

v: 苏教版初三语文

n: 初三数学

v: 苏教版初三数学

v: 苏教版初三英语

n: 初三历史

v: 苏教版初三历史

n: 初三地理

v: 苏教版初三地理

n: 初三生物

v: 苏教版初三生物

n: 初三物理

v: 苏教版初三物理

n: 初三化学

v: 苏教版初三化学

时长

n: 全部

n: 60分钟以上

n: 10分钟以下

年级科目

v: 人教版初一语文

v: 人教版初一数学

v: 人教版初一英语

v: 人教版初一历史

v: 人教版初一地理

v: 人教版初一生物

v: 人教版初一物理

v: 人教版初一化学

v: 人教版初二语文


code:
��{

    "title": "R�N�wƉ��",

    "author": "��Ŗ�`",

    "UserAgent":"",

    "firstpage": "1",

    "class_url": "http://www.sharenice.net/{cateId}?page={catePg}[firstPage=http://www.sharenice.net/{cateId}]",

    "class_name": "�b�&�_Kb&�_Ɖ&kpq\&:W�^&SO��&��b&�y�b&hQl&�h&}YTQ&�sY&ck��ϑ&d{&>yO&8nb&1ZPN&�e8n&��|&u;m&�PN&�ߘ&ff&�R+o&q_Ɖ&�e\",

    "class_value": "douyin&kuaishou&weishi&huoshan&changku&tags/t-5L2T6IKy.html&meipai&miaopai&quanmin&lishipin&haotu&tags/t-576O5aWz.html&tags/t-5q2j6IO96YeP.html&tags/t-5pCe56yR.html&tags/t-56S+5Lya.html&tags/t-5ri45oiP.html&tags/t-5aix5LmQ.html&tags/t-5peF5ri4.html&tags/t-6JCM57O7.html&tags/t-55Sf5rS7.html&tags/t-6Z+z5LmQ.html&tags/t-576O6aOf.html&tags/t-5piO5pif.html&tags/t-5Yqo5ryr.html&tags/t-5b2x6KeG.html&tags/t-5pe25bCa.html",

    "filterdata":{},

    "cat_YN_twice": "1",

    "cat_twice_pre": "class=\"main-container\">",

    "cat_twice_suf": "<div class=\"page",

    "cat_arr_pre": "<li",

    "cat_arr_suf": "
",

    "cat_pic": "original=\"&&\"",

    "cat_title": "title=\"&&\"",

    "cat_subtitle": "",

    "cat_url": "href=\"&&\"",

    "cat_prefix": "",

    "cat_suffix": "",

    "search_url": "",

    "search_mode": "0",

    "jsonpic": "pic",

    "jsonname": "name",

    "jsonid": "id",

    "jsonstitle":"",

    "sea_YN_twice": "",

    "sea_twice_pre": "",

    "sea_twice_suf": "",

    "sea_arr_pre": "",

    "sea_arr_suf": "",

    "sea_pic": "",

    "sea_title": "",

    "sea_url": "",

    "search_prefix": "",

    "search_suffix": "",

    "sea_subtitle": "",

    "force_play": "1",

    "play_prefix": "",

    "play_suffix": "",

    "play_header": "zz",

    "proj_actor": "zz",

    "proj_plot": "",

    "tab_YN_twice": "0",

    "tab_twice_pre": "",

    "tab_twice_suf": "",

    "tab_arr_pre": "",

    "tab_arr_suf": "",

    "tab_title": "",

    "list_YN_twice": "0",

    "list_twice_pre": "zz",

    "list_twice_suf": "zz",

    "list_arr_pre": "",

    "list_arr_suf": "",

    "epi_YN_twice": "0",

    "epi_twice_pre": "zz",

    "epi_twice_suf": "zz",

    "epi_arr_pre": "",

    "epi_arr_suf": "",

    "epi_title": "",

    "epi_url": "",

    "epiurl_prefix": "",

    "epiurl_suffix": "",

    ///f&T_/TKb�R�U�c

    "ManualSniffer":"1",

    //Kb�R�U�cƉ�����csQ.�W[��k*N(u#��_

    "VideoFormat":".mp4#.m3u8#.flv#is_play_url=1#item/video#kaiyanapp#qianpailive"

}


code:
��{

  "�z
T": "freeok",

  ";Nu�url": "https://www.freeok.vip/",

  "R{|": "�~T&�p�i&�e
N�~&5uq_&5uƉgR&�R+o&�~z�",

  "R{|<P": "0&label/hot&vodtype/0&vodtype/1&vodtype/2&vodtype/3&vodtype/4",

  "R{|url": "https://www.freeok.vip/{cateId}.html",

//"R{|url": "https://www.freeok.vip/vodshow/{cateId}-{area}-{by}-{class}-----{catePg}---{year}.html",

  "�N!k*b�S":"class=\"module-items&&fixedGroup",

  "pe�~": "&&
",

  "d"}!j_": "1",

  "d"}url":"/vodsearch/-------------.html?wd={wd}",

  "d"}pe�~":"class=\"module-card-item-class\">&&",

  "d"}�VGr": "data-original=\"&&\"",

  "d"}h��": "alt=\"&&\"",

  "d"}���c": "href=\"&&\"",

  "d"}oRh��": "class=\"module-item-note\">&&
",

  "q_Gr{|�W":"class=\"module-info-tag-link\">&&
",

  "�[o": "�[o�&&
",

  ";No": ";No�&&
",

  "�{�N": "class=\"module-info-introduction-content\">&&
",

  "�~�pe�~": "data-dropdown-value=&&
[
NS+T:Y(u��S�`$]",

  "�~�h��": "&&[�fbc:>>�&]+Ɩ ",

  "�d>epe�~": "class=\"module-play-list\">&&
",

  "�d>eRh�":"<a&&",

  "�d>eh��":"&&",

  "�d>e���c":"href=\"&&\""

}


排序

n: 综合排序

n: 最多点击

v: click

n: 最新发布

v: pubdate

n: 最多弹幕

v: dm

n: 最多收藏

v: stow

n: 高一语文

v: 苏教版高一语文

n: 高一数学

v: 苏教版高一数学

n: 高一英语

v: 苏教版高一英语

n: 高一历史

v: 苏教版高一历史

n: 高一地理

v: 苏教版高一地理

n: 高一生物

v: 苏教版高一生物

n: 高一物理

v: 苏教版高一物理

n: 高一化学

v: 苏教版高一化学

n: 高二语文

v: 苏教版高二语文

n: 高二数学

v: 苏教版高二数学

n: 高二英语

v: 苏教版高二英语

n: 高二历史

v: 苏教版高二历史

n: 高二地理

v: 苏教版高二地理

n: 高二生物

v: 苏教版高二生物

n: 高二物理

v: 苏教版高二物理

n: 高二化学

v: 苏教版高二化学

n: 高三语文

v: 苏教版高三语文

n: 高三数学

v: 苏教版高三数学

v: 苏教版高三英语

n: 高三历史

v: 苏教版高三历史

n: 高三地理

v: 苏教版高三地理

n: 高三生物

v: 苏教版高三生物

n: 高三物理

v: 苏教版高三物理

n: 高三化学

v: 苏教版高三化学

v: 人教版高一语文

v: 人教版高一数学

v: 人教版高一英语

v: 人教版高一历史

v: 人教版高一地理

v: 人教版高一生物

v: 人教版高一物理

v: 人教版高一化学


code:
��{

"classes":[

{"type_name":"Ɖ��jR��","type_id":"Ɖ��jR��Yez"},

{"type_name":"s^b�����Yef[","type_id":"s^b�����Yef["},

{"type_name":"T{|o��NYez","type_id":"o��NYez"},

{"type_name":"Windows","type_id":"Windows"},

{"type_name":"���^","type_id":"���^Ɖ��"}],

"filter":{

"Ɖ��jR��Yez": [

{"key":"order","name":"�c�^","value": [

{"n":"�~T�c�^","v":"0"},

{"n":"gY�p�Q","v":"click"},

{"n":"g�e�S^","v":"pubdate"},

{"n":"gY9_U^","v":"dm"},

{"n":"gY6eυ","v":"stow"}]},

{"key":"duration","name":"�e�","value":[

{"n":"hQ�","v":"0"},

{"n":"60R���N
N","v":"4"},

{"n":"30~60R��","v":"3"},

{"n":"10~30R��","v":"2"},

{"n":"10R���NN","v":"1"}]}],

"s^b�����Yef[": [

{"key":"order","name":"�c�^","value": [

{"n":"�~T�c�^","v":"0"},

{"n":"gY�p�Q","v":"click"},

{"n":"g�e�S^","v":"pubdate"},

{"n":"gY9_U^","v":"dm"},

{"n":"gY6eυ","v":"stow"}]},

{"key":"tid","name":"R{|","value":[

{"n":"hQ�","v":"s^b�����Yef["},

{"n":"Adobe PhotoshopYez","v":"Adobe PhotoshopYez"},

{"n":"Adobe IllustratorYez","v":"Adobe IllustratorYez"},

{"n":"CorelDRAWYez","v":"CorelDRAWYez"},

{"n":"Adobe InDesignYez","v":"Adobe InDesignYez"},

{"n":"Adobe PagermakerYez","v":"Adobe PagermakerYez"},

{"n":"SAIYez","v":"SAIYez"},

{"n":"AdobeBridgeYez","v":"AdobeBridgeYez"},

{"n":"AdobePagermakeYez","v":"AdobePagermakeYez"},

{"n":"3DStudioMaxYez","v":"3DStudioMaxYez"},

{"n":"PRYez","v":"PRYez"},

{"n":"AEYez","v":"AEYez"},

{"n":"CINEMA 4DYez","v":"CINEMA 4DYez"}]},

{"key":"duration","name":"�e�","value":[

{"n":"hQ�","v":"0"},

{"n":"60R���N
N","v":"4"},

{"n":"30~60R��","v":"3"},

{"n":"10~30R��","v":"2"},

{"n":"10R���NN","v":"1"}]}],

"o��NYez": [

{"key":"order","name":"�c�^","value": [

{"n":"�~T�c�^","v":"0"},

{"n":"gY�p�Q","v":"click"},

{"n":"g�e�S^","v":"pubdate"},

{"n":"gY9_U^","v":"dm"},

{"n":"gY6eυ","v":"stow"}]},

{"key":"tid","name":"R{|","value":[

{"n":"hQ�","v":"o��NYez"},

{"n":"�RlQo��N","v":"�RlQo��NYez"},

{"n":"NP�{thV","v":"NP�{thV"},

{"n":"mixplorerYez","v":"mixplorerYez"},

{"n":"1��XYez","v":"1��XYez"},

{"n":",rk�Yez","v":",rk�Yez"},

{"n":"json&jarYez","v":"json&jarYez"},

{"n":"Q�vc}�Yez","v":"Q�vc}�Yez"},

{"n":"alist+WebDavYez","v":"alist+WebDav"},

{"n":"EXCELYez","v":"EXCELYez"},

{"n":"GiteQ�0R�|�","v":"GiteQ�0R�|�"},

{"n":"javaYez","v":"javaYez"},

{"n":"phytonYez","v":"phytonYez"},

{"n":"xmlYez","v":"xmlYez"}]},

{"key":"duration","name":"�e�","value":[

{"n":"hQ�","v":"0"},

{"n":"60R���N
N","v":"4"},

{"n":"30~60R��","v":"3"},

{"n":"10~30R��","v":"2"},

{"n":"10R���NN","v":"1"}]}],

"Windows": [

{"key":"order","name":"�c�^","value": [

{"n":"�~T�c�^","v":"0"},

{"n":"gY�p�Q","v":"click"},

{"n":"g�e�S^","v":"pubdate"},

{"n":"gY9_U^","v":"dm"},

{"n":"gY6eυ","v":"stow"}]},

{"key":"duration","name":"�e�","value":[

{"n":"hQ�","v":"0"},

{"n":"60R���N
N","v":"4"},

{"n":"30~60R��","v":"3"},

{"n":"10~30R��","v":"2"},

{"n":"10R���NN","v":"1"}]}],

"���^Ɖ��":[

{"key":"order","name":"�c�^","value": [

{"n":"�~T�c�^","v":"0"},

{"n":"gY�p�Q","v":"click"},

{"n":"g�e�S^","v":"pubdate"},

{"n":"gY9_U^","v":"dm"},

{"n":"gY6eυ","v":"stow"}]},

{"key":"tid","name":"R{|","value":[

{"n":"hQ�","v":"���^Ɖ��"},

{"n":"�l�_���^","v":"�l�_���^"},

{"n":"�ynf���^","v":"�ynf���^"},

{"n":"�lQ���","v":"�lQ���"}]},

{"key":"duration","name":"�e�","value":[

{"n":"hQ�","v":"0"},

{"n":"60R���N
N","v":"4"},

{"n":"30~60R��","v":"3"},

{"n":"10~30R��","v":"2"},

{"n":"10R���NN","v":"1"}]}

]}}


code:
��{

        "�z
T": "egs|q_Ɖ",

        ";Nu�url": "https://www.laimi.me",

        "oRh��": "class=\"module-item-text\">&&</div",

        "�[o": "�[o�&&</div",

        ";No": ";No�&&</div",

        "�{�N": "
&&
",

        "�~�pe�~": "class=\"module-tab-item tab-item&&
",

        "�~�h��": "&&",

        "�d>eh��": "&&",

        "d"}url": "/rss.xml?wd={wd}",

        "d"}!j_": "1",

        "d"}�N!k*b�S": "class=\"module-items&&id=\"footer",

        "d"}pe�~": "
e���c": "https://data.m3u8.in/api.php?url=+const Url*\"&&\"+&sign=+const Sign*\"&&\"+&form=+const From*\"&&\"",

        "	N!k�l��d>e���c": "\"url\"*\"&&\""

      }


code:
��{

        "�z
T": "egs|q_Ɖ",

        ";Nu�url": "https://www.milaitv.com/",

        "oRh��": "class=\"module-item-text\">&&</div",

        "�[o": "�[o�&&</div",

        ";No": ";No�&&</div",

        "�{�N": "
&&
",

        "�~�pe�~": "class=\"module-tab-item tab-item&&
",

        "�~�h��": "&&",

        "�d>eh��": "&&",

        "d"}url": "/rss.xml?wd={wd}",

        "d"}!j_": "1",

        "d"}�N!k*b�S": "class=\"module-items&&id=\"footer",

        "d"}pe�~": "
e���c": "https://data.m3u8.in/api.php?url=+const Url*\"&&\"+&sign=+const Sign*\"&&\"+&form=+const From*\"&&\"",

        "	N!k�l��d>e���c": "\"url\"*\"&&\""

      }


分类: 电影&连续剧&动漫&综艺&韩剧&美剧

类型

n: 全部

n: 动作片

n: 喜剧片

n: 爱情片

n: 科幻片

n: 恐怖片

n: 剧情片

n: 战争片

n: 奇幻片

n: 惊悚片

n: 动画片

n: 悬疑片

n: 犯罪片

n: 记录片

n: 音乐片

n: 时间

v: time

n: 人气

v: hits

n: 评分

v: score

n: 大陆

n: 港剧

n: 韩剧

n: 美剧

n: 日剧

n: 台剧

n: 泰剧

n: 大陆综艺

n: 港台综艺

n: 日韩综艺

n: 欧美综艺

n: 国产动漫

n: 日本动漫

n: 其他动漫


code:
����   {

     "�z
T":"f^q_Ɖ",

    ";Nu�url":"https://ys.md214.cn/",

    "�{�N":" �R�v�Oq_Gr-N�v^JT��NMQ
NS_�S��0+module-info-item module-info-introduction\">&&
",

    "�[o":"�[o�&&
",

    ";No":";No�&&
",

    "q_Gr�r`":"Ɩpe�&&
",

    "q_Gr{|�W":"module-info-tag\">&&�zsS�d>e",

    "pe�~":"",

    "h��":"title=\"&&\"",

    "oRh��":"note\">&&
",

    "�VGr":"data-original=\"&&\"",

    "���c":"href=\"&&\"",

    "d"}url":"/index.php/vod/search.html?wd={wd}",

    "d"}pe�~":"module-card-item-class\">&&",

    "d"}h��":"alt=\"&&\"",

    "d"}oRh��":"note\">&&
",

    "d"}�VGr":"data-original=\"&&\"",

    "d"}���c":"href=\"&&\"",

    //"d"}!j_": "1",

    "�~�pe�~":"data-dropdown-value=&&
[�c�^:Y(u�~�>Y(u�~N]",

    "�~�h��":"&&[�fbc:>>�&�qQ]+Ɩ�&�",

    "�d>epe�~":"eh��":"&&",

    "�d>eRh�":"<a&&",

    "R{|url":"https://ys.md214.cn/index.php/vod/show/area/{area}/by/{by}/class/{class}/id/{cateId}/lang/{lang}/page/{catePg}/year/{year}.html;;ak",

   "R{|":"5uq_$1#5uƉgR$2#�~z�$3#�R+o$4"

    }


code:
{
	"主页url": "https://rebozj.pro",
 //   "数组": "
&&
",
    "数组": "
&&
",
	"图片": "data-original=\"&&\"",
	"标题": "title=\"&&\"",
	"链接": "href=\"&&\"",
	"副标题": "class=\"pic-text text-right\">&&",
	"搜索模式": "1",

    "搜索url": "https://rebozj.pro/search/-------------.html?wd={wd}&submit=",
	"搜索数组": "
&&
",
	"搜索图片": "original=\"&&\"",
	"搜索标题": "title=\"&&\"",
	"搜索副标题": "class=\"pic-text text-right\">&&",
	"搜索链接": "href=\"&&\"",
	"线路数组":"&&<",
	"播放列表": "",
	"播放标题": ">&&<",
	"影片类型": "类型：&&
",
//	"导演": "导演：&&
",
//	"主演": "主演：&&
",
//	"简介": "display: none;\">&&",
    "请求头": "手机#Referer$https://rebozj.pro/",
	"嗅探词":".m3u8#video_mp4#tos-#.mp4#cdn.123pan.cn#huoshanvod.com",
	"分类": "电视剧$2#国产剧$13#电影$1#综艺$3#动漫$4",
	"分类url": "https://rebozj.pro/show/{cateId}-{area}-{by}-{class}-----{catePg}---{year}.html",
	"跳转播放链接": "urlDecode(vod_class*url\":\"&&\")"

}


副标题: note">&&</div>

播放数组: <div class="module-play-list&&

n: 全部类型

n: 动作

n: 喜剧

n: 爱情

n: 科幻

n: 恐怖

n: 剧情

n: 战争

n: 犯罪

n: 冒险

n: 动画

n: 悬疑

n: 武侠

n: 奇幻

n: 其他

剧情

n: 全部剧情

v: 喜剧

v: 爱情

v: 恐怖

v: 动作

v: 科幻

v: 剧情

v: 战争

n: 警匪

v: 警匪

v: 犯罪

v: 动画

v: 奇幻

v: 武侠

v: 冒险

n: 枪战

v: 枪战

v: 悬疑

n: 惊悚

v: 惊悚

n: 经典

v: 经典

n: 青春

v: 青春

n: 文艺

v: 文艺

n: 微电影

v: 微电影

n: 古装

v: 古装

n: 历史

v: 历史

n: 运动

v: 运动

n: 农村

v: 农村

n: 儿童

v: 儿童

n: 网络电影

v: 网络电影

地区

n: 全部地区

v: 大陆

n: 香港

v: 香港

n: 台湾

v: 台湾

n: 美国

v: 美国

n: 法国

v: 法国

n: 英国

v: 英国

n: 日本

v: 日本

n: 韩国


type_name: 英语

type_id: 英语学习

type_name: 法语

type_id: 法语

type_name: 德语

type_id: 德语

type_name: 俄语

type_id: 俄语

type_name: 西班牙语

type_id: 西班牙语

type_name: 韩语

type_id: 韩语

type_name: 日语

type_id: 日语

type_name: 阿拉伯语

type_id: 阿拉伯语

type_name: 意大利语

type_id: 意大利语

排序

n: 综合排序

n: 最多点击

v: click

n: 最新发布

v: pubdate

n: 最多弹幕

v: dm

n: 最多收藏

v: stow

分类

n: 英语字母

v: 英语字母

n: 英语语法

v: 英语语法

n: 英语口语

v: 英语口语

n: 英语基础

v: 英语基础

n: 英语词汇

v: 英语词汇

n: 英语听力

v: 英语听力

n: 英语考试

v: 英语考试

时长

n: 全部

n: 60分钟以上

n: 10分钟以下

分类

n: 法语字母

v: 法语字母

n: 法语语法

v: 法语语法

n: 法语口语

v: 法语口语

n: 法语基础

v: 法语基础

n: 法语词汇

v: 法语词汇

n: 法语听力

v: 法语听力

n: 法语考试

v: 法语考试

n: 德语字母

v: 德语字母

n: 德语语法

v: 德语语法

n: 德语口语

v: 德语口语

n: 德语基础

v: 德语基础

n: 德语词汇

v: 德语词汇

n: 德语听力

v: 德语听力

n: 德语考试


type_name: 📕苏教版

type_id: 苏教版课程

type_name: 📗人教版

type_id: 人教版课程

type_name: 📘沪教版

type_id: 沪教版课程

type_name: 📚北师大版

type_id: 北师大版课程

type_name: 学而思课程

type_id: 学而思课程

排序

n: 综合排序

n: 最多点击

v: click

n: 最新发布

v: pubdate

n: 最多弹幕

v: dm

n: 最多收藏

v: stow

年级科目

n: 1年级语文

v: 苏教版1年级语文

n: 1年级数学

v: 苏教版1年级数学

n: 1年级英语

v: 苏教版1年级英语

n: 2年级语文

v: 苏教版2年级语文

n: 2年级数学

v: 苏教版2年级数学

n: 2年级英语

v: 苏教版2年级英语

n: 3年级语文

v: 苏教版3年级语文

n: 3年级数学

v: 苏教版3年级数学

n: 3年级英语

v: 苏教版3年级英语

n: 4年级语文

v: 苏教版4年级语文

n: 4年级数学

n: 4年级英语

v: 苏教版4年级英语

n: 5年级语文

v: 苏教版5年级语文

n: 5年级数学

v: 苏教版5年级数学

n: 5年级英语

v: 苏教版5年级英语

n: 6年级语文

v: 苏教版6年级语文

n: 6年级数学

v: 苏教版6年级数学

n: 6年级英语

v: 苏教版6年级英语

时长

n: 全部

年级科目

v: 人教版1年级语文

v: 人教版1年级数学

v: 人教版1年级英语

v: 人教版2年级语文

v: 人教版2年级数学

v: 人教版2年级英语

v: 人教版3年级语文

v: 人教版3年级数学

v: 人教版3年级英语

v: 人教版4年级语文

v: 人教版4年级英语

v: 人教版5年级语文

v: 人教版5年级数学


code:
����var rule = {

    title:'܃�r',

    host:'https://waptv.sogou.com',

    homeUrl:'',

    searchUrl:'https://v.sogou.com/v?query=**&typemask=6&p=&dp=&dr=&_asf=v.sogou.com&enter=1&ie=utf8',

    searchable:2,

    quickSearch:0,

    filterable:1,

    multi:1,

    // R{|���cfypage�Spe/ec1*N()h���_

    url:'/napi/video/classlist?abtest=0&iploc=CN1304&spver=&listTab=fyclass&filter=&start=((fypage-1)*15)&len=15&fr=filter',

    filter_url:'style={{fl.style}}&zone={{fl.zone}}&year={{fl.year}}&fee={{fl.fee}}&order={{fl.order}}',

    headers:{

        'User-Agent':'PC_UA'

    },

    timeout:5000,

    class_name:'5uƉgR&5uq_&�R+o&�~z�&�~U_Gr',

    class_url:'teleplay&film&cartoon&tvshow&documentary',

    filter:{'teleplay': [

{'key': 'style', 'name': '{|�W', 'value': [

{'n': 'hQ�', 'v': ''}, {'n': '1r�`', 'v': '1r�`'}, {'n': '�UgR', 'v': '�UgR'}, {'n': '��^', 'v': '��^'}, {'n': '�`�u', 'v': '�`�u'}, {'n': '�Sň', 'v': '�Sň'}, {'n': 'vP�P', 'v': 'vP�P'}, {'n': '�rj', 'v': '�rj'}, {'n': '�S�S', 'v': '�S�S'}, {'n': 'b�N', 'v': 'b�N'}, {'n': 'fk�O', 'v': 'fk�O'}, {'n': 'f�*S', 'v': 'f�*S'}, {'n': '�y{^', 'v': '�y{^'}, {'n': 'GY{^', 'v': 'GY{^'}, {'n': '
�b', 'v': '
�b'}, {'n': '�QQg', 'v': '�QQg'}, {'n': 'vQ�N', 'v': 'vQ�N'}]}, {'key': 'zone', 'name': '0W:S', 'value': [

{'n': 'hQ�', 'v': ''}, {'n': '�Q0W', 'v': '�Q0W'}, {'n': '��/n', 'v': '��/n'}, {'n': '�S~n', 'v': '�S~n'}, {'n': '��V', 'v': '��V'}, {'n': '�l�V', 'v': '�l�V'}, {'n': '�e,g', 'v': '�e,g'}, {'n': '��V', 'v': '��V'}, {'n': '��V', 'v': '��V'}, {'n': '�e�RaW', 'v': '�e�RaW'}, {'n': 'vQ�N', 'v': 'vQ�N'}]},


🎤文艺综合

key: 音乐

🅱戏曲

key: 戏曲

🎤酷奇MV

key: 酷奇MV

分类: 华语高清$1#日韩精选$2#欧美MV$3#高清现场$4#影视MV$5#夜店视频$6#车模视频$7#热舞视频$8#美女打碟$9

副标题: target="play">&&<

养生﹠健身

key: 健身

🚑急救教学

key: Aid

🍔美食合集

key: 美食

🐠网易CC直播

key: 网易CC


code:
//以下全部出自网络和大佬资源，如有冒犯请联系删除。QQ:314511788 [所有内容仅供学习使用，请勿用于违法用途]
//本接口无公众号、无盈利、无引流、免费分享给小白使用，请勿轻信他人，谨防上当受骗。
 {
  "spider": "./jar/Yoursmile.jar;md5;1545ef72896b2fa34dec2f79a8e625ce",
  "wallpaper": "https://tuapi.eees.cc/api.php?category=fengjing&type=302",
  "sites": [
    {
      "key": "js豆瓣",
      "name": "🔍豆瓣推荐",
      "type": 3,
      "api": "./js/drpy.min.js",
      "ext": "./json/豆瓣.js"
    },
    {
      "key": "废物影视",
      "name": "银河聚合",
      "searchable": 1,
      "quickSearch": 1,
      "type":1,
      "api":"http://playersll.gaoxin155.com.cn/api.php/provide/vod/",
      "filterable": 1,
      "categories": ["国产剧","港台剧","欧美剧","日韩剧","综艺","科幻片","奇幻片","喜剧片","爱情片",
                     "惊悚片","犯罪片","冒险片","动作片","战争片","悬疑片","剧情片","记录片","动漫"]
    },
    {
      "key": "csp_WoGG2",
      "name": "玩偶云盘T4",
      "type": 4,
      "api": "http://home.jundie.top:9520/spider/csp_Wogg?sort=原画,蓝光,超清,高清       &token=0068144bf4d24f3284819c15f3a49482",
      "searchable": 1,
      "quickSearch": 1,
      "filterable": 1
    },
    {
      "key": "drpy_js_奇珍异兽",
      "name": "奇艺官源",
      "type": 3,
      "searchable": 1,
      "quickSearch": 1,
      "api": "./js/drpy.min.js",
      "ext": "./json/奇异.js"
    },
    {
      "key": "mtv_搜狗视频",
      "name": "搜狗视频",
      "type": 3,
      "api": "./js/drpy.min.js",
      "searchable": 2,
      "quickSearch": 0,
      "filterable": 1,
      "ext": "./json/菜狗.js"
    },
    {
      "key": "Qtv",
      "name": "🐧腾讯解析",
      "type": 3,
      "api": "csp_Qtv",
      "searchable": 1,
      "quickSearch": 1,
      "filterable": 1,
      "changeable": 0
    },
    {
      "key": "csp_Czsapp",
      "name": "🏭厂长资源",
      "type": 3,
      "api": "csp_Czsapp",
      "playerType": 2,
      "searchable": 1,
      "quickSearch": 1,
      "ext": "https://www.czzy88.com/",
      "filterable": 1,
      "jar":"./jar/yinhe.jar"
    },
    {
      "key": "PanSou",
      "name": "😽盘搜S",
      "type": 3,
      "api": "csp_PanSou",
      "searchable": 1,
      "quickSearch": 1,
      "filterable": 0,
      "changeable": 0
    },
    {
      "key": "UpYun",
      "name": "☁UP云搜S",
      "type": 3,
      "api": "csp_UpYun",
      "searchable": 1,
      "quickSearch": 1,
      "filterable": 0,
      "changeable": 0
    },
    {
      "key": "YiSo",
      "name": "🆎易搜S",
      "type": 3,
      "api": "csp_YiSo",
      "searchable": 1,
      "quickSearch": 1,
      "filterable": 0,
      "changeable": 0
    },
    {
      "key": "PanSearch",
      "name": "🙀盘搜索S",
      "type": 3,
      "api": "csp_PanSearch",
      "searchable": 1,
      "quickSearch": 1,
      "filterable": 0
    },
    {
      "key": "csp_SP33",
      "name": "📺360解析",
      "type": 3,
      "api": "csp_SP33",
      "searchable": 1,
      "quickSearch": 1,
      "filterable": 1,
      "changeable": 0
    },
    {
      "key": "Mtv",
      "name": "🍋芒果解析",
      "type": 3,
      "api": "csp_Mtv",
      "searchable": 1,
      "quickSearch": 1,
      "filterable": 1,
      "changeable": 0
    },
    {
      "key": "云播",
      "name": " ☁TVB云播",
      "type": 3,
      "searchable": 1,
      "quickSearch": 1,
      "filterable": 0,
      "api": "csp_XBPQ",
      "ext": "./json/TVB云播.json"
    },
    {
       "key": "007",
       "name": "♹007影院",
       "type": 3,
       "api": "csp_XBPQ",
       "searchable": 1,
       "quickSearch": 1,
       "filterable": 1,
       "ext": "./json/007影视.json"
    },
    {
      "key": "TV酷影",
      "name": "TV酷影视",
      "type": 3,
      "api": "csp_AppYsV2",
      "searchable": 1,
      "quickSearch": 1,
      "filterable": 1,
      "ext": "https://www.tvkuys.xyz/api.php/app/"
    },
    {
      "key": "子子",
      "name": "📹子子影院",
      "type": 3,
      "api": "csp_XBPQ",
      "playerType": "1",
      "searchable": 1,
      "quickSearch": 1,
      "ext": "./json/子子影院.json"
    },
    {
      "key": "XBPQ_voflix",
      "name": "voflix电影网",
      "type": 3,
      "api": "csp_XBPQ",
      "filterable": 1,
      "quickSearch": 1,
      "searchable": 1,
      "ext": "./json/voflix.json"
    },
    {
      "key": "freeok",
      "name": "🍾菲克高清",
      "type": 3,
      "api": "csp_XBPQ",
      "searchable": 1,
      "quickSearch": 1,
      "filterable": 1,
      "ext": "./json/菲克高清.json"
    },
    {
      "key": "6080",
      "name": "新视觉影院",
      "type": 3,
      "api": "csp_Xinsj",
      "searchable": 1,
      "quickSearch": 1,
      "changeable": 1,
      "ext": "https://www.6080yy3.com/"
    },
    {
      "key": "秋霞电影",
      "name":"🌈秋霞聚合",
      "type":3,
      "api":"csp_XBPQ",
      "searchable":1,
      "quickSearch":1,
      "filterable":1,
      "ext":"./json/秋霞.json"
    },
    {
      "key": "csp_Zxzj",
      "name": "🏠海外剧场",
      "type": 3,
      "api": "csp_Zxzj",
      "searchable": 1,
      "quickSearch": 1,
      "filterable": 1,
      "ext": "https://www.zxzj.pro/"
    },
    {
      "key": "量子",
      "name": "💢量子资源",
      "type": 0,
      "api": "https://cj.lziapi.com/api.php/provide/vod/at/xml/",
      "searchable": 1,
      "changeable": 1,
      "categories": [
           "国产剧","韩国剧","日本剧","台湾剧","香港剧","欧美剧","泰国剧","海外剧",
           "动作片","喜剧片","爱情片","科幻片","剧情片","战争片","记录片",
           "大陆综艺","港台综艺","日韩综艺","欧美综艺"]
    },
    {
      "key": "csp_xml_ck",
      "name": "🎀CK资源",
      "type": 0,
      "api": "https://ckzy.me/api.php/provide/vod/at/xml/",
      "searchable": 1,
      "quickSearch": 1,
      "filterable": 0,
      "categories": [
        "国产剧","欧美剧","日韩剧","港台剧","奇幻片","动作片","喜剧片","爱情片","科幻片",
        "剧情片","战争片","记录片"]
    },
    {"key":"18","name":"有S标记为搜网盘用，用手机阿里云盘扫码观看","type":0,"api":""}
  ],
"parses": [
    { "name": "解析轮询", "type": 3, "url": "Demo"},
    { "name": "嗅探轮询", "type": 3, "url": "Web"},
    { "name": "json轮询", "type": 2, "url": "Sequence"},
    { "name": "银河解析", "type": 1, "url": "https://jxjson.cf/json.php?url="},
    { "name": "左岸解析", "type": 1, "url": "http://pandown.pro/app/lvdou.php?url="},
    { "name": "右岸解析", "type": 1, "url": "http://pandown.pro/app/kkdy.php?url="},
    { "name": "云端解析", "type": 1, "url": "https://api.tyun77.cn/api.php/provide/parseDicturl?url="},
    { "name": "爱酷解析", "type": 1, "url": "http://cache.json.icu/1804857380.php?url="},
    { "name": "爱酷嗅探", "type": 0, "url": "https://jx.zhanlangbu.com/?url="},
    { "name": "银河嗅探", "type": 0, "url": "https://jx.jsonplayer.com/player/?url="},
    { "name": "4433嗅探", "url": "https://jx.bozrc.com:4433/player/?url=","showType": 1"},
    { "name": "777嗅探","type": 0, "url":"https://jx.777jiexi.com/player/?url="},
    { "name": "云嗅探","type": 0,"url": "https://jx.yparse.com/index.php?url="}
    ],
  "lives": [
    {"name": "live","type": 0,
      "url": "https://notabug.org/wdy123/b/raw/master/live.txt",
      "epg": "http://epg.112114.xyz/?ch={name}&date={date}",
      "logo": "https://epg.112114.xyz/logo/{name}.png"}],
  "doh": [
    {"name": "Google", "url": "https://dns.google/dns-query", "ips": ["8.8.4.4", "8.8.8.8"]},
    {"name": "Cloudflare", "url": "https://cloudflare-dns.com/dns-query","ips":["1.1.1.1","1.0.0.1","2606:4700:4700::1111","2606:4700:4700::1001"]},
    {"name": "AdGuard", "url": "https://dns.adguard.com/dns-query","ips": [ "94.140.14.140","94.140.14.141"]},
    {"name": "DNSWatch", "url": "https://resolver2.dns.watch/dns-query","ips": [ "84.200.69.80","84.200.70.40"]},
    {"name": "Quad9","url": "https://dns.quad9.net/dns-quer","ips": [ "9.9.9.9","149.112.112.112"]}],
 "rules":[
{"name":"量子","hosts":["vip.lz","hd.lz"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:6.433333,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},
{"name":"非凡","hosts":["vip.ffzy","hd.ffzy"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:6.666667,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},
{"name":"暴风","hosts":["bfzy"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:3,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},
{"name":"火山","hosts":["huoshan.com"],"regex":["item_id="]},
{"name":"抖音","hosts":["douyin.com"],"regex":["is_play_url="]},
{"name":"磁力","hosts":["magnet"],"regex":["最 新","直 播","更 新"]}],
 "flags":
 ["youku","优酷","优酷视频","qq","腾讯","腾讯视频","iqiyi","qiyi","奇艺","爱奇艺", "m1905","xigua","letv","leshi","乐视","sohu","搜狐","搜狐视频", "tudou","pptv","mgtv","芒果","imgo", "芒果TV", "bilibili","哔 哩"],
  "ijk":[
{"group":"软解码","options":[
{"category":4,"name":"opensles","value":"0"},
{"category":4,"name":"overlay-format","value":"842225234"},
{"category":4,"name":"framedrop","value":"1"},
{"category":4,"name":"soundtouch","value":"1"},
{"category":4,"name":"start-on-prepared","value":"1"},
{"category":1,"name":"http-detect-range-support","value":"0"},
{"category":1,"name":"fflags","value":"fastseek"},
{"category":2,"name":"skip_loop_filter","value":"48"},
{"category":4,"name":"reconnect","value":"1"},
{"category":4,"name":"enable-accurate-seek","value":"0"},
{"category":4,"name":"mediacodec","value":"0"},
{"category":4,"name":"mediacodec-auto-rotate","value":"0"},
{"category":4,"name":"mediacodec-handle-resolution-change","value":"0"},
{"category":4,"name":"mediacodec-hevc","value":"0"},
{"category":1,"name":"dns_cache_timeout","value":"600000000"}]},
{"group":"硬解码","options":[
{"category":4,"name":"opensles","value":"0"},
{"category":4,"name":"overlay-format","value":"842225234"},
{"category":4,"name":"framedrop","value":"1"},
{"category":4,"name":"soundtouch","value":"1"},
{"category":4,"name":"start-on-prepared","value":"1"},
{"category":1,"name":"http-detect-range-support","value":"0"},
{"category":1,"name":"fflags","value":"fastseek"},
{"category":2,"name":"skip_loop_filter","value":"48"},
{"category":4,"name":"reconnect","value":"1"},
{"category":4,"name":"enable-accurate-seek","value":"0"},
{"category":4,"name":"mediacodec","value":"1"},
{"category":4,"name":"mediacodec-auto-rotate","value":"1"},
{"category":4,"name":"mediacodec-handle-resolution-change","value":"1"},
{"category":4,"name":"mediacodec-hevc","value":"1"},
{"category":1,"name":"dns_cache_timeout","value":"600000000"}]}],
"ads":[
"mimg.0c1q0l.cn","www.googletagmanager.com","www.google-analytics.com","mc.usihnbcq.cn",
"mg.g1mm3d.cn","mscs.svaeuzh.cn","cnzz.hhttm.top","tp.vinuxhome.com","cnzz.mmstat.com",
"www.baihuillq.com","s23.cnzz.com","z3.cnzz.com","c.cnzz.com","stj.v1vo.top","z12.cnzz.com",
"img.mosflower.cn","tips.gamevvip.com","ehwe.yhdtns.com","xdn.cqqc3.com","www.jixunkyy.cn",
"sp.chemacid.cn","hm.baidu.com","s9.cnzz.com","z6.cnzz.com","um.cavuc.com","mav.mavuz.com",
"wofwk.aoidf3.com","z5.cnzz.com","xc.hubeijieshikj.cn","tj.tianwenhu.com","xg.gars57.cn","k.jinxiuzhilv.com",
"cdn.bootcss.com","ppl.xunzhuo123.com","xomk.jiangjunmh.top","img.xunzhuo123.com",
"z1.cnzz.com","s13.cnzz.com","xg.huataisangao.cn","z7.cnzz.com","xg.huataisangao.cn",
"z2.cnzz.com","s96.cnzz.com","q11.cnzz.com","thy.dacedsfa.cn","xg.whsbpw.cn","s19.cnzz.com",
"z8.cnzz.com","s4.cnzz.com","f5w.as12df.top","ae01.alicdn.com","www.92424.cn",
"k.wudejia.com","vivovip.mmszxc.top","qiu.xixiqiu.com","cdnjs.hnfenxun.com","cms.qdwght.com"]
}


code:
# SLACKDESCGEN

slackdescgen is a simple inline TEMPLATE generator for slack-desc.<br/>
**NOTE: ONLY CREATE TEMPLATE!!!!!!!!**

repo_name: henryjr/SLACKDESCGEN


code:
#!/bin/sh
#============HEADER==========================================================|
#AUTHOR
# Jefferson Rocha
#
#PROGRAM
# SLACKDESCGEN
#============================================================================|

_USAGE()
{
cat <<EOF
slackdescgen <OPTIONS>

WHAT IS?
slackdescgen is a simple inline TEMPLATE generator for slack-desc.

USAGE:
   -g, --generate
     NAME:        Name of package.
     SMALL DESC:  Small description of your package.
     HOMEPAGE:    Homepage of your package.

   -h, --help
     Print this manual.

SIMPLE MODE:
   Do not switch the order!!!! <name> <small desc> <homepage>
   slackdescgen --generate slackdescgen 'slackdesckgen simple generate template slack-desc' slackdesc.github.io

Created by Jefferson Rocha BUGS? <lrcjefferson@gmail.com>
EOF

}
_GENERATE()
{
cat > slack-desc <<END
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.  Line
# up the first '|' above the ':' following the base package name, and the '|' on
# the right side marks the last column you can put a character in.  You must make
# exactly 11 lines for the formatting to be correct.  It's also customary to
# leave one space after the ':'.

        |-----handy-ruler------------------------------------------------------|
$appname: $appname ($short_description)
$appname:
$appname:
$appname:
$appname:
$appname:
$appname:
$appname:
$appname:
$appname: $homepage
$appname:
END

   echo "Template 'slack-desc' created!"
}

#====MAIN
case $1 in
    -g|-generate)
       shift
       appname="$1"
       shift
       short_description="$1"
       shift
       homepage="$1"
       _GENERATE
    ;;
    -h|--help) _USAGE ;;
    *) _USAGE ;;
esac

path: slackdescgen


code:
!api/.env
api/vendor/:composer.lock

path: .git-ftp-include

license: mit


code:
    Torneo de las Fresas 2025 es una plataforma integral para gestionar y optimizar el evento deportivo del mismo nombre, proporcionando herramientas para el registro de participantes, seguimiento de partidos y análisis de datos.

    Innovaciones Tecnológicas en el Torneo de las Fresas 2025 »

  Tabla de Contenidos

Sobre el Proyecto

Construido con

Conoce al Equipo

      Empezando

Prerrequisitos

Instalación

Uso

Pasos

Pruebas

Consideraciones

## Sobre el Proyecto

El Torneo de las Fresas 2025 es una plataforma diseñada para facilitar la gestión del evento deportivo, asegurando que todo funcione sin problemas desde el registro y gestión de participantes, la creación de grupos y partidos, hasta la finalización del torneo. Utiliza algoritmos avanzados para analizar datos y proporcionar estadísticas de rendimiento una vez concluido el evento.

## Construido con

- [![PHP][PHP.js]][PHP-url]
- [![Next.js][Next.js.js]][Next.js-url]
- [![Tailwind CSS][Tailwind.js]][Tailwind-url]
- [![Python][Python.js]][Python-url]
- [![Jupyter][Jupyter.js]][Jupyter-url]
- [![MySQL][MySQL.js]][MySQL-url]

(volver arriba)

## Conoce al Equipo

- [Francisco Solis](https://github.com/ricardogj08) - Frontend
- [Ricardo Garcia](https://github.com/francisco-solis99) - Backend
- [Juan Ramírez](https://github.com/Astra-exe) - Data Science

(volver arriba)

## Empezando

### Prerrequisitos

> [!WARNING]
> Considera contar con las variables de entorno necesarias para ejecutar la aplicación. Puedes ver los archivos .env-example en cada directorio de los servicios para saber que valores o secretos hay que setear para su correcto funcionamiento.

Asegúrate de tener PHP, Node.js y Python instalados en tu dispositivo local.

> [Instalar PHP](https://www.php.net/downloads)

> [Instalar Node.js](https://nodejs.org/)

> [Instalar Python](https://www.python.org/downloads/)

### Instalación

1. Clona el repositorio `git clone https://github.com/Astra-exe/TDLF2025.git`
2. Muévete al directorio `cd TDLF2025`
3. Muévete al directorio `cd da`
4. Instala los paquetes de Python `pip install -r requirements.txt`
5. Muévete al directorio `cd api`
6. Instala php, sus paquetes necesarios y la base de datos ya con migraciones para la aplicación `composer install`
7. Muévete al directorio `tdlf2025-app`
8. Para la aplicación de NextJs, instala los paquetes de Node.js `pnpm install` o `npm install`
9. Ejecuta la aplicación `pnpm run dev` o `npm run dev`

O Instala Docker para correr los servicios de php y python:

> [Instalar Docker](https://www.docker.com/)

1. Construye el contenedor de python en el directorio `da` con el comando `docker build -t tdlf-python`
2. Corre el contenedor de python con `docker run -d -p 8000:80 --name tdlf-data tdlf-python`
3. Construye el contenedor de php en el directorio `api` con el comando `docker build -t TDLF2025/api -f Dockerfile.dev ./`
4. Corre el contenedor de php con `docker run --name TDLF2025-api --env-file .env -p 8080:80 TDLF2025/api`
5. Para la aplicación de NextJs, instala los paquetes de Node.js `pnpm install` o `npm install`
6. Ejecuta la aplicación `pnpm run dev` o `npm run dev`

(volver arriba)

## Uso

### Pasos

> [!NOTE]
> Asegúrate que los servicios estén corriendo en su puerto especificado y si hay problemas cambia el puerto del servicio.
> Puedes crear un usuario con algún password para poder ingresarlo desde la base de datos o desde algún seeder en el backend.
> Considera preprocesar en los diferentes Jupiter Notebooks del directorio `/da/notebooks`

1. Inicia la aplicacion de NextJs en local, por defecto esta en el puerto 3000. Visita `http://localhost:3000/` para ver la landing del evento:
   ![landing](https://github.com/user-attachments/assets/26b761f7-ac60-4267-aa8c-e5f29aba6a0b)
   ![landing2](https://github.com/user-attachments/assets/1d943616-9243-4870-a06d-fbd3e822ef9f)
   ![landing3](https://github.com/user-attachments/assets/3ec10eeb-49a0-4453-bb1d-fa88a126b102)
2. Visita la ruta `http://localhost:3000/login` para loguearte.
   ![login](https://github.com/user-attachments/assets/49773e39-8f79-4291-9050-14f442597398)
3. En el home dashboard podrás ver algunos datos generales del torneo, como el numero de participantes, parejas, grupos, categorías, etc del torneo.
   ![dashboard](https://github.com/user-attachments/assets/0bf9d90b-7601-4693-822a-758d554313f8)
4. Visita la ruta `http://localhost:3000/dashboard/inscripcion` para crear nuevos jugadores del torneo.
   ![inscripcion](https://github.com/user-attachments/assets/b62a4a15-ea14-4cb5-9b55-f34d2458e1f5)
   ![players](https://github.com/user-attachments/assets/8b334341-5df8-4ec8-895f-f46bcb816c2e)
5. Puedes consultar el perfil de cada uno de los jugadores con algunos consejos para la competencia dando clic en sus nombres.
   ![profile](https://github.com/user-attachments/assets/7d138c37-c2f0-4e9c-80c2-b6c8481baea9)
6. Visita la ruta `http://localhost:3000/dashboard/parejas` para visualizar las parejas creadas o crear alguna nueva de los jugadores previamente inscritos.
   ![pairs](https://github.com/user-attachments/assets/84f5f89f-a6e3-4ed7-b607-795a2faca1da)
   ![create-pairs](https://github.com/user-attachments/assets/650ba25b-62ad-42dd-8d4a-d045ef8625fd)
7. Una vez lista la tabla de parejas visita la ruta `http://localhost:3000/dashboard/grupos` para crear de manera aleatoria los grupos a los que pertenecerán cada pareja y los partidos a llevarse a cabo en cada categoría.
   ![groups](https://github.com/user-attachments/assets/30e3d80b-25f9-4cbe-a9f8-5f434313ad35)
8. Dentro de esa misma ruta `http://localhost:3000/dashboard/grupos` podrás acceder a los grupos de cada categoría para verlos.
   ![group-sebior](https://github.com/user-attachments/assets/03d2e2e1-c5f7-4bc1-8604-cc888828c3a2)
   ![group-open](https://github.com/user-attachments/assets/e3413416-af57-439c-8f19-ab193f29e96d)
9. Visita `http://localhost:3000/dashboard/partidos` podrás ver la tabla de partidos de cada categoría y modificar el score o las parejas del partido.
   ![matches](https://github.com/user-attachments/assets/71e87f5e-bc27-4bc3-90a5-15f761fccf69)
   ![match-update](https://github.com/user-attachments/assets/e84bf55f-c362-4405-b30d-77aed38422cb)
   ![match-delete](https://github.com/user-attachments/assets/daa064d8-e41f-4112-baec-5d185b7a6e03)
10. Una vez creados los partidos y grupos, puedes ver la tabla de parejas en `http://localhost:3000/parejas`
11. De igual forma puedes ver los partidos de cada grupo `http://localhost:3000/grupos/idCategory/idGroup` y la tabla de clasificación. Esta tabla cambia conforme se den los partidos.
    ![matches-group](https://github.com/user-attachments/assets/be0da39a-5078-4c56-a09e-9502882d0c26)
    ![matches-classify](https://github.com/user-attachments/assets/51652a42-8de4-48b0-83ea-d2f69a8b12e2)
12. Cuando el torneo o los datos de los partidos estén capturados se podrán ver las estadísticas generales del evento en `http://localhost:3000/estadisticas`
    ![map](https://github.com/user-attachments/assets/ec56856e-0705-4802-b546-67b58ad9d69c)
13. Podrás visitar estadísticas especificas de cada categoría como puntos hechos vs puntos recibidos, la sinergia de las parejas y la paridad de grupos desde `http://localhost:3000/estadisticas/idCategory`
    ![stats](https://github.com/user-attachments/assets/69d323e2-207a-4e67-b009-fd2f54a35bd0)
14. De igual forma visita `http://localhost:3000/emociones` para ver el análisis general de sentimientos realizado con machine learning.
    ![emotions](https://github.com/user-attachments/assets/45916a8f-acdf-4b56-b6fa-b854bcca8ec5)

### Pruebas

- Puedes probar el sistema con tus propios datos en el entorno local.
- También puedes ver los resultados de la herramienta en: Torneo de las Fresas 2025

(volver arriba)

## Consideraciones

- Asegúrate de que tus datos de entrada estén correctamente formateados.
- El sistema puede requerir ajustes dependiendo de los datos específicos que utilices.
- Para las estadísticas post-torneo cabe recalcar que fueron procesadas fuera del servicio de python en un Jupyter Notebook en la nube para evitar sobrecargar el servidor usado.
- Por el momento el sistema solo abarca hasta la fase de grupos, sin contar la fase de eliminación directa

(volver arriba)

## Evento

El Torneo de las Fresas 2025, celebrado en la vibrante ciudad de Irapuato, Guanajuato, México, el 23 de marzo de 2025, se consolidó como el evento de frontenis más grande y destacado del Bajío. Este torneo no solo atrajo a participantes y espectadores de toda la región central de México, sino que también se convirtió en un referente de organización y eficiencia gracias al sistema desarrollado específicamente para la ocasión.

Con todas las amenidades necesarias para los jugadores, el evento se desarrolló sin contratiempos, permitiendo una experiencia fluida y agradable para todos los asistentes. El sistema implementado fue el pilar fundamental del torneo, facilitando la organización y asegurando que cada detalle se manejara con precisión y rapidez. Este evento no solo celebró el deporte, sino que también demostró cómo la tecnología puede transformar y mejorar la gestión de eventos deportivos.

### Alcance

El Torneo de las Fresas 2025 contó con una afluencia constante de espectadores a lo largo del día, sin registrar un "pico máximo" específico. **Se estima que más de 500 personas visitaron el evento** para apoyar a familiares y amigos, creando un ambiente vibrante y lleno de energía.

Muchos de estos visitantes se acercaron a las áreas donde se mostraba la clasificación de los grupos, aprovechando la funcionalidad del sistema para seguir el progreso de sus favoritos en tiempo real. Esta característica no solo facilitó la experiencia de los espectadores, sino que también permitió una mayor interacción y compromiso con el evento, asegurando que todos estuvieran informados sobre el desarrollo de los partidos.

### Adversidades y obstáculos

El desarrollo del sistema para el Torneo de las Fresas 2025 presentó varios desafíos técnicos que requirieron soluciones innovadoras. A continuación, se detallan algunos de los principales obstáculos y cómo se superaron.

#### Retos y Soluciones en la implementación de la Ciencia de Datos

1. La falta de disponibilidad de una GPU en la nube para realizar grandes procesamientos de datos o utilizar modelos pesados de machine learning. Para mitigar este problema, se optó por procesar los datos localmente. Utilizando el entorno local, se realizaron los cálculos intensivos y luego se enviaron los datos ya procesados a través de la API Flask. Esta estrategia no solo evitó sobrecargar la API, sino que también eliminó errores de timeout y problemas de memoria en producción, asegurando un rendimiento eficiente y estable.

2. La poca compatibilidad de los servicios de deploy con versiones superiores a Python 3.10+, lo que complicaba el funcionamiento correcto de las librerías debido a problemas de compatibilidad. Afortunadamente, Render permitió el despliegue en versiones recientes de Python. Sin embargo, antes de descubrir esta opción, ya se había realizado un downgrade de las librerías y versiones de Python y Flask para asegurar la compatibilidad. Esta medida preventiva garantizó que el sistema funcionara sin problemas en cualquier entorno de despliegue, proporcionando una solución robusta y adaptable.

### Criticas y areas de mejora

El Torneo de las Fresas 2025 fue un éxito rotundo, pero siempre hay espacio para la mejora y la innovación. A continuación, se presentan algunas áreas clave que podrían optimizarse para futuras ediciones del evento.

#### Horizontes de Mejora: Innovaciones Futuras en la Ciencia de Datos
- Modelos de Machine Learning Avanzados: Implementar algoritmos más sofisticados para predicciones precisas y detalladas sobre el rendimiento de jugadores y equipos.

- Estadísticas Completas y Detalladas: Ampliar el alcance de las estadísticas recopiladas para proporcionar una visión más completa del evento.

- Generación Dinámica de Perfiles de Usuario: Crear perfiles personalizados que se adapten a las preferencias y comportamientos individuales, mejorando la experiencia del usuario.

- Procesamiento de Datos Eficiente: Optimizar los procesos de recopilación y análisis de datos para obtener resultados en tiempo real y mejorar la capacidad de respuesta del sistema.

¡Gracias por visitar! 🏆

[PHP.js]: https://img.shields.io/badge/PHP-777BB4?style=for-the-badge&logo=php&logoColor=white
[PHP-url]: https://www.php.net/
[Next.js.js]: https://img.shields.io/badge/Next.js-000000?style=for-the-badge&logo=next.js&logoColor=white
[Next.js-url]: https://nextjs.org/
[Tailwind.js]: https://img.shields.io/badge/Tailwind_CSS-38B2AC?style=for-the-badge&logo=tailwind-css&logoColor=white
[Tailwind-url]: https://tailwindcss.com/
[Python.js]: https://img.shields.io/badge/Python-3776AB?style=for-the-badge&logo=python&logoColor=white
[Python-url]: https://www.python.org/
[Jupyter.js]: https://img.shields.io/badge/Jupyter-F37626?style=for-the-badge&logo=jupyter&logoColor=white
[Jupyter-url]: https://jupyter.org/
[MySQL.js]: https://img.shields.io/badge/MySQL-4479A1?style=for-the-badge&logo=mysql&logoColor=white
[MySQL-url]: https://www.mysql.com/


code:
# Composer
composer.phar
vendor/

# Archivos de entorno
.env


code:
# Define el Dockerfile base a utilizar.
FROM php:8.1-apache

# Instala las dependencias del proyecto.
RUN \
  apt-get update \
  && apt-get install -y --no-install-recommends --autoremove --purge \
    git \
    unzip \
    libicu-dev \
    libpq-dev \
  && apt-get clean \
  && docker-php-ext-install -j"$(nproc)" \
    pdo_pgsql \
    bcmath \
    intl

# Instala composer desde la imagen oficial.
COPY --from=composer/composer:2-bin /composer /usr/local/bin/composer

# Establece variables de entorno en tiempo de ejecución.
ENV \
  APACHE_DOCUMENT_ROOT=/var/www/html \
  APACHE_APP_ROOT=/var/www/html/public \
  APACHE_PORT=80/tcp

# Copia todos los archivos del proyecto a "/var/www/html/".
COPY ./ "${APACHE_DOCUMENT_ROOT}"
COPY ./.env "${APACHE_DOCUMENT_ROOT}"

# Usuario y grupo de los archivos del proyecto.
RUN chown -R www-data:www-data "${APACHE_DOCUMENT_ROOT}"

# Utiliza la configuración en producción de PHP.
RUN mv "${PHP_INI_DIR}/php.ini-production" "${PHP_INI_DIR}/php.ini"

# Modifica la ruta raíz del servidor Apache a la carpeta "public/" del proyecto.
RUN sed -ri -e "s!/var/www/html!${APACHE_APP_ROOT}!g" /etc/apache2/sites-available/*.conf
RUN sed -ri -e "s!/var/www/!${APACHE_APP_ROOT}!g" /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf

# Habilita la rescritura de rutas en Apache.
RUN a2enmod rewrite

# Estable el puerto que escucha Apache.
EXPOSE "${APACHE_PORT}"

# Define el espacio de trabajo del contenedor.
WORKDIR "${APACHE_DOCUMENT_ROOT}"

# Instala las dependencias del proyecto con "composer".
RUN composer install -n --no-dev -o

# Crea la base de datos de la aplicación,
# ejecuta las migraciones y el servidor Apache.
ENTRYPOINT \
  ./vendor/bin/phoenix migrate \
  && apache2ctl -D FOREGROUND

path: api/Dockerfile


code:
# Define el Dockerfile base a utilizar.
FROM php:8.1-apache

# Instala las dependencias del proyecto.
RUN \
  apt-get update \
  && apt-get install -y --no-install-recommends --autoremove --purge \
    git \
    unzip \
    libicu-dev \
    mariadb-server \
  && apt-get clean \
  && docker-php-ext-install -j"$(nproc)" \
    pdo_mysql \
    bcmath \
    intl

# Instala composer desde la imagen oficial.
COPY --from=composer/composer:2-bin /composer /usr/local/bin/composer

# Establece variables de entorno en tiempo de ejecución.
ENV \
  APACHE_DOCUMENT_ROOT=/var/www/html \
  APACHE_APP_ROOT=/var/www/html/public \
  APACHE_PORT=80/tcp \
  DB_HOST="${DB_HOST:-127.0.0.1}" \
  DB_DATABASE="${DB_DATABASE:-torneo_fresas}" \
  DB_USERNAME="${DB_USERNAME:-TDLF2025}" \
  DB_PASSWORD="${DB_PASSWORD:-secret}" \
  DB_CHARSET="${DB_CHARSET:-utf8mb4}" \
  DB_COLLATE="${DB_COLLATE:-utf8mb4_general_ci}"

# Copia todos los archivos del proyecto a "/var/www/html/".
COPY ./ "${APACHE_DOCUMENT_ROOT}"
COPY ./.env "${APACHE_DOCUMENT_ROOT}"

# Usuario y grupo de los archivos del proyecto.
RUN chown -R www-data:www-data "${APACHE_DOCUMENT_ROOT}"

# Utiliza la configuración en producción de PHP.
RUN mv "${PHP_INI_DIR}/php.ini-production" "${PHP_INI_DIR}/php.ini"

# Modifica la ruta raíz del servidor Apache a la carpeta "public/" del proyecto.
RUN sed -ri -e "s!/var/www/html!${APACHE_APP_ROOT}!g" /etc/apache2/sites-available/*.conf
RUN sed -ri -e "s!/var/www/!${APACHE_APP_ROOT}!g" /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf

# Habilita la rescritura de rutas en Apache.
RUN a2enmod rewrite

# Estable el puerto que escucha Apache.
EXPOSE "${APACHE_PORT}"

# Define el espacio de trabajo del contenedor.
WORKDIR "${APACHE_DOCUMENT_ROOT}"

# Instala las dependencias del proyecto con "composer".
RUN composer install -n --no-dev -o

# Crea la base de datos de la aplicación,
# ejecuta las migraciones y el servidor Apache.
ENTRYPOINT \
  service mariadb start \
  && mariadb -e "CREATE DATABASE IF NOT EXISTS ${DB_DATABASE} CHARACTER SET = '${DB_CHARSET}' COLLATE = '${DB_COLLATE}';" \
  && mariadb -e "CREATE USER IF NOT EXISTS '${DB_USERNAME}'@'${DB_HOST}' IDENTIFIED BY '${DB_PASSWORD}';" \
  && mariadb -e "GRANT ALL PRIVILEGES ON ${DB_DATABASE}.* TO '${DB_USERNAME}'@'${DB_HOST}';" \
  && mariadb -e "FLUSH PRIVILEGES;" \
  && ./vendor/bin/phoenix migrate \
  && apache2ctl -D FOREGROUND


code:
# API

API RESTful del evento de frontenis *"Torneo de las Fresas Irapuato 2025"*.

* [Documentación.](https://astra-exe.github.io/TDLF2025/api/)

## Instalación

* Copia el archivo `env.example` a `.env` para configurar la aplicación:

```
cp env.example .env
```

> Para `docker` también debes crear un archivo `.env`.

* Crea la base de datos del proyecto:

```
CREATE DATABASE IF NOT EXISTS `torneo_fresas`
  CHARACTER SET = 'utf8mb4'
  COLLATE = 'utf8mb4_general_ci';
```

* Crea las tablas de la base de datos:

```
vendor/bin/phoenix migrate
```

## Ejecución

```
php -S localhost:8080 -t public/
```

* <http://localhost:8080>

## Docker

```
docker build -t TDLF2025/api -f Dockerfile.dev ./
docker run --name TDLF2025-api --env-file .env -p 8080:80 TDLF2025/api
```

> Utiliza un usuario diferente a `root` en la configuración de la base de datos.

## Diagrama ER

* <https://drive.google.com/file/d/1KSYBmgTIAHmyknSqEVY3gK33IfuuOeMP/view?usp=sharing>

## Referencias

* [Easy installation of PHP extensions in official PHP Docker images.](https://github.com/mlocati/docker-php-extension-installer)