avatar
夏天 | ✎𝓣𝓲𝓪𝓷
仙之巅,傲世间,有我安澜便有天
一言
今日诗词
站点信息
本站访客数 :
本站总访问量 :


js完整详解

道长js写源视频
道长dr_py搭建图文演示教程

### 配置相关
直接复制对应的三种地址就行了,不需要生成本地文件(下面教程不要了)  
~~本地地址  clan://localhost/pycms_local.json  
推荐把文件放到  /storage/emulated/0/PlutoPlayer/pycms_local.json  
并且pluto要自己切换路径为PlutoPlayer~~

### 相关教程
[pyquery定位](https://blog.csdn.net/Arise007/article/details/79513094)

### 模板规则说明
所有相关属性说明
```javascript
var rule = {
    title:'',//规则标题,没有实际作用,但是可以作为cms类名称依据
    编码:'',//不填就默认utf-8
    host:'',//网页的域名根,包含http头如 https://www,baidu.com
    homeUrl:'/latest/',//网站的首页链接,可以是完整路径或者相对路径,用于分类获取和推荐获取 fyclass是分类标签 fypage是页数
    url:'/fyclass/fypage.html[/fyclass/]',//网站的分类页面链接
    detailUrl:'https://yanetflix.com/voddetail/fyid.html',//非必填,二级详情拼接链接,感觉没啥卵用
    searchUrl:'',//搜索链接 可以是完整路径或者相对路径,用于分类获取和推荐获取 **代表搜索词 fypage代表页数
    searchable:0,//是否启用全局搜索,
    quickSearch:0,//是否启用快速搜索,
    filterable:0,//是否启用筛选,
    filter:{},// 筛选条件字典
    // 默认筛选条件字典(不同分类可以指定同样筛选参数的不同默认值)
    filter_def:{
        douyu:{
        area:'一起看',
        other:'..'
        },
        huya:{
        area:'影音馆',
        other:'..'
        }
    }, 
    // 筛选网站传参,会自动传到分类链接下(本示例中的url参数)-url里参数为fyfilter,可参考蓝莓影视.js
    filter_url:'style={{fl.style}}&zone={{fl.zone}}&year={{fl.year}}&fee={{fl.fee}}&order={{fl.order}}',
    // 注意,由于猫有配置缓存,搜索配置没法热加载,修改了js不需要重启服务器
    // 但是需要tv_box进设置里换源使配置重新装载
    headers:{//网站的请求头,完整支持所有的,常带ua和cookies
        'User-Agent':'MOBILE_UA',
        "Cookie": "searchneed=ok"
    },
    timeout:5000,//网站的全局请求超时,默认是3000毫秒
    class_name:'电影&电视剧&动漫&综艺',//静态分类名称拼接
    class_url:'1&2&3&4',//静态分类标识拼接
    //动态分类获取 列表;标题;链接;正则提取 不需要正则的时候后面别加分号
    class_parse:'#side-menu:lt(1) li;a&&Text;a&&href;com/(.*?)/',
    // 除开全局过滤之外还需要过滤哪些标题不视为分类
    cate_exclude:'',
    // 除开全局动态线路名过滤之外还需要过滤哪些线路名标题不视为线路
    tab_exclude:'',
    // 服务器解析播放
    play_parse:true,
    // play_json 传数组或者 类 true/false 比如 0,1 如果不传会内部默认处理 不传和传0可能效果不同
    // 效果等同说明: play_json:[{re:'*', json:{jx:0, parse:1}}], 等同于 play_json:0,
    play_json:[{
        re:'*',
        json:{
            jx:1,
            parse:1,
        },
    }],
    //控制不同分类栏目下的总页面,不填就是默认999.哔哩影视大部分分类无法翻页,都需要指定页数为 1
    pagecount:{"1":1,"2":1,"3":1,"4":1,"5":1,"7":1,"时间表":1},
    // 自定义免嗅 
    lazy:'',
    // 首页推荐显示数量
    limit:6,
    double:true,//是否双层列表定位,默认false
    // 对图片加了referer验证的有效,海阔专用,普通规则请勿填写此键值
    图片来源:'@Referer=http://www.jianpianapp.com@User-Agent=jianpian-version350',
    
    // js写法,仅js模式1有效.可以用于代码动态获取全局cookie之类的
    // 可操作变量有 rule_fetch_params,rule,以及基础的网页访问request,post等操作
    预处理:'rule_fetch_params.headers.Cookie = "xxxx";',
    // 类似海阔一级 列表;标题;图片;描述;链接;详情 其中最后一个参数选填
    // 如果是双层定位的话,推荐的第2段分号代码也是第2层定位列表代码
    推荐:'.col-sm-6;h3&&Text;img&&data-src;.date&&Text;a&&href',
    // 类似海阔一级 列表;标题;图片;描述;链接;详情 其中最后一个参数选填
    一级:'.col-sm-6;h3&&Text;img&&data-src;.date&&Text;a&&href',
    // 二级可以是*,表示规则无二级,直接拿一级的链接进行嗅探
    // 二级 title: 片名;类型
    // 二级 desc: 主要信息;年代;地区;演员;导演
    // 或者 {title:'',img:'',desc:'',content:'',tabs:'',lists:'',tab_text:'body&&Text',list_text:'body&&Text',list_url:'a&&href'} 同海阔dr二级
    二级:'*',
    // 搜索可以是*,集成一级,或者跟一级一样的写法 列表;标题;图片;描述;链接;详情
    搜索:'*',
}
```
模板继承写法
```javascript
var rule = Object.assign(muban.mxpro,{
title:'鸭奈飞',
host:'https://yanetflix.com',
url:'/index.php/vod/show/id/fyclass/page/fypage.html',
class_parse:'.navbar-items li:gt(1):lt(6);a&&Text;a&&href;.*/(.*?).html',
});
```
模板继承写法(新)
```javascript
var rule = {
title:'cokemv',
模板:'mxpro',
host:'https://cokemv.me',
class_parse:'.navbar-items li:gt(1):lt(7);a&&Text;a&&href;/(\\d+).html',
}
```
js:内置变量
input,html,VODS,VOD,TABS,LISTS,MY_CATE,MY_FL


xBPQ完整详解

{
"作者": "劳思",
"站名": "小猫咪",
"编码":"UTF-8",
"主页url": "https://fositv.com",
"请求头": "",
"头部集合": "Referer$https://fositv.com/#Origin$https://fositv.com"
"热门推荐": "1",
"起始页": "1",
"直接播放": "0",
"倒序播放": "0",
"首页url": "",//加了url就有首页推荐
"热门":"",//使用默认,展示40个
//"热门":"0",关闭
//"热门":"n",展示n个
/**
//下版预告,修复搜索,支持json模式,增加首页选择性展示
"热门":"首页$40",//展示首页,最多40个
"首页":"动漫$20",//展示动漫,最多20个
字段名首页或热门都是可以的
*个别网站需要开启图片代理才能显示图片,比如素白白,一般情况下不能开
*/
"图片代理": "0",

/**
*所有截取前后用&&连接

*截取信息末尾可用中括号附加筛选包含或不包含,用#分隔多个关键词,全部英文符号,例
"分类数组": "class=\"nav\"&&</div>[不包含:首页#资讯]",

*可在截取信息末尾用中括号修改替换显示内容,替换与被替换之间用>>分隔,用#分隔多个替换项,替换为汉字空时表示不显示被替换词,被替换词可以用通配符*,比如(*),会替换掉包含括号的左右括号之间的全部字符,例
"线路数组": "class=\"hl-tabs-btn hl-slide-swiper&&</a>[替换:线路1>>腾腾#播放>>空#(*)>>空]",

*要筛选或替换某项内容在相应截取字段末尾,引号内加,例
"播放标题": ">&&</a>[不包含:素白白]",
[排序:2>3>5],[不含序号:2]

*数组筛选除关键词筛选外还可以筛选序号,连续序号用-连接序号之间用#分隔,例
"数组": "class=\"hl-list-item&&</li>[不包含:1#9-11]",
*/
"二次截取": "",
"数组": "class=\"myui-vodlist__box&&</li>",
"图片": "data-original=\"&&\"",
"标题": "title=\"&&\"",
"副标题": "class=\"pic-text text-right\">&&</a >",
"链接": "href=\"&&\"",
"链接前缀": "",

"线路二次截取": "",
"线路数组": "#playlist&&</li>",
"线路标题": ">&&<",
"线路链接": "",
"线路合并":"1",

"多线二次截取": "",
"多线数组": "",
"多线链接": "",

"状态":"<li class=\"hl-col-xs-12 hl-col-sm-4&&</li>",
"导演": "导演:&&</div",
"主演": "主演:&&</div",
"简介": "class=\"sketch content\">&&</span>",

"播放二次截取": "",
"播放数组": "class=\"myui-content__list&&</ul>",
"列表二次截取": "",
"播放列表": "<a&&/a>",
"播放标题": ">&&<",
"播放链接": "href=\"&&\"",
"播放链接前缀": "https://fositv.com",
"免嗅": "0",
"嗅探词":".m3u8",
"过滤词":"",
"播放请求头": "",
/**
*搜索可包含页码,会把搜索到的全部内容展示出来
*一般用模式1:截取模式,json模式很多网站不支持
*/
"搜索url": "https://fositv.com/vodsearch/{wd}----------{pg}---.html",
"搜索模式": "1",
"搜索二次截取": "",
"搜索数组": "class=\"myui-vodlist__thumb&&</li>",
"搜索图片": "data-original=\"&&\"",
"搜索标题": "title=\"&&\"",
"搜索链接": "href=\"&&\"",
"搜索链接前缀": "",
//"搜索后缀": "", 给json搜索用的
/**
*第一页与其他页不一样的直接用英文中括号加在分类url末尾
*/
"分类url": "https://fositv.com/vodshow/{cateId}-{area}-{by}------{catePg}---{year}.html",
/**
*分类内置数字和拼音的四在类型,可用键$值的方式直接填写在分类中,用#分隔,例
"分类": "电影$1#电视剧$2",
*也可以用截取模式,截取模式同样可筛选和替换
*/
"分类": "数字||纪录$5",
"分类二次截取": "",
"分类数组": "",
"分类标题": "",
"分类ID": "",

/**
*以下为筛选配置,需要网站本身没有筛选的无法使用
*类型和剧情自定义方式相同:大类之间用||分隔,每个大类的头部用--分隔大类值,比如电影的值是1,电视剧的值是2时:
"类型": "1--动作$101#喜剧||2--武侠$202#爱情$203",
*/
"类型": "1--动作$101#喜剧$102#爱情$103#科幻$104#剧情$105#悬疑$106#惊悚$107#恐怖$108#犯罪$109#谍战$110#冒险$111#奇幻$112#灾难$113#战争$114#动画$115#歌舞$116#历史$117#传记$118#纪录$119||2--武侠$201#喜剧$202#爱情$203#剧情$204#青春$205#悬疑$206#科幻$207#军事$208#警匪$209#谍战$210#奇幻$211#偶像$212#都市$215#古装$217#历史$218#神话$219||3--脱口秀$301#真人秀$302#搞笑$303#访谈$304#生活$305#晚会$306#美食$307#游戏$308#亲子$309#旅游$310#文化$311#体育$312#时尚$313#纪实$314#益智$315#演艺$316#歌舞$317#音乐$318#播报$319||4--热血$401#格斗$402#恋爱$403#美少女$404#校园$405#搞笑$406#LOLI$407#神魔$408#机战$409#科幻$410#真人$411#青春$412#魔法$413#神话$414#冒险$415#运动$416#竞技$417#童话$418#亲子$419#教育$420||5--人物$501#军事$502#历史$503#自然$504#探险$505#科技$506#文化$507#刑侦$508#社会$509#旅游$510",

// 也可以这样分开写   "类型": "1--全部&动作片&喜剧片&爱情片&科幻片&剧情片&恐怖片&战争片&惊悚片&犯罪片&冒险片&动画片&悬疑片&武侠片&奇幻片&其他片||2--电视剧&日韩剧&港台剧&欧美剧&短剧&其他剧",
 //   "类型值": "1&6&7&8&9&10&11&12&20&21&22&23&24&25&26&27||13&14&15&16&28&29",
 //原来的
//追加[a$1#b$2#c$3]
//改成[追加:a$1#b$2#c$3]
//原来的
//替换[a$a>>b$b]
//改成[替换:b>>b]

"剧情": "0",
/**
*地区一般默认1就可以了,有的大际是中国大陆,就需要用替换法,与截取替换有区别:"地区$地区值"同时存在,缺一不可,各组替换之间用||分隔
*/
"地区": "替换[大陆$大陆>>中国大陆$中国大陆||香港$香港>>中国香港$中国香港||台湾$台湾>>中国台湾$中国台湾]",
/**
*年份默认1时,为2010-2022,自定义写法:起始年-截止年,如
"年份": "2000-2020",
*/
"年份": "",
/**
*排序默认1时,为英文模式,自定义写法:
"排序": "时间$time#热门$hits",
*/
"排序": "1",
/**
*可在"筛选"字段填外部json地址,支持本地clan和和外网http
*可直接复制xp的json到"筛选"字段
*"筛选"字段为1时,使用分项自定义,包括:类型cateId、剧情class、地区area、年份year、排序by,除类型外每个分项都有默认内置"1"
*/
"筛选": "1"
}

线路排序只有加在线路数组后才生效,例:
[排序:蓝光三>优优][不包含:蓝光一#蓝光四][替换:蓝光二>>贼快]
[包含:][替换:]这些操作符不转义,具体内容转义,比如[替换:\\[>>\\]] 替换的中括号加\\
[替换:蓝>>第<序号>个]
[替换:蓝>>\\[#\\[>>\\]#\\]>>\\##\\#>>\\*#\\*>>\\&#\\&>>我]
下版预告,二次截取、数组、列表支持指定,如
//"数组": "首页--a&&b[替换:x>>y]||电影--c&&d[不包含:留言#下载]||剧集--e&&f",