Pending changes exported from your codespace
This commit is contained in:
parent
f0612690d9
commit
5dde1b0660
PG
drpy_t3/jar
南风
小米
摸鱼儿
肥猫
api.json
api
a848d2173d12b963b98a2ffa9796abe7.jsdrpy.min.jsdrpy2.min.jsgbk.jsjinja.jsjsencrypt.jsjson5.jsnode-rsa.jspako.min.js模板.js
js
json
饭太硬
骚零
@ -5,6 +5,10 @@
|
||||
* 把本zip文件解壓縮到安卓設備的任意目錄 *
|
||||
* 然後在播放器的點播接口設定中,指定到解壓後目錄中的jsm.json *
|
||||
****************************************************************
|
||||
* 每次更新zip都可以覆蓋到同一個目錄,覆蓋后無需重新掃碼就可以繼續使用網盤
|
||||
* 可以使用影視的内部http服務器實現zip上傳和自動解壓,方法:用手機或PC打開http://播放器IP:9978/,
|
||||
* 然後點擊最後一個TAB(本地),然後創建一個新文件夾,例如“tvbox”,然後進入"tvbox",然後創建"js"和"lib"兩個子目錄,
|
||||
* 然後點擊“上傳檔案”,把本zip上傳到該目錄就會自動解壓。
|
||||
|
||||
================================================================
|
||||
以下所有说明不看也可以正常使用本zip,只是给动手能力强的有缘人更多定制化的可能性。默认设置就可以欣赏绝大部分网络资源,只需要切换到“网盘及弹幕设置”这个视频源扫不同网盘的二维码即可。(切换方法:播放器首页点击左上角图标或文字,找到“网盘及弹幕设置”点击)
|
||||
|
BIN
PG/pg.jar
BIN
PG/pg.jar
Binary file not shown.
@ -1 +1 @@
|
||||
6f961440f06f0d23d3a172dad1fa5733
|
||||
7dec0ff48ae517111c680e3d23b6552d
|
Binary file not shown.
@ -1 +1 @@
|
||||
6f961440f06f0d23d3a172dad1fa5733
|
||||
7dec0ff48ae517111c680e3d23b6552d
|
@ -1,25 +1,640 @@
|
||||
央视,#genre#
|
||||
CCTV-1,http://183.185.222.245:8084/rtp/226.0.2.153:9136$1920x1080
|
||||
CCTV-1,http://183.185.222.245:8085/rtp/226.0.2.153:9136$1920x1080
|
||||
CCTV-1,http://101.27.106.176:8888/rtp/239.253.92.83:8012$1920x1080
|
||||
CCTV-1,http://27.11.52.62:8005/rtp/225.0.4.74:7980$1920x1080
|
||||
CCTV-1,http://171.120.20.181:8004/rtp/226.0.2.153:9136$1920x1080
|
||||
CCTV-1,http://27.11.52.62:8003/rtp/225.0.4.74:7980$1920x1080
|
||||
CCTV-1,http://60.7.56.33:4000/rtp/239.253.92.83:8012$1920x1080
|
||||
CCTV-1,http://220.192.2.245:8004/rtp/225.0.4.74:7980$1920x1080
|
||||
CCTV-1,http://27.11.49.234:8007/rtp/225.0.4.74:7980$1920x1080
|
||||
CCTV-1,http://118.81.48.104:8084/rtp/226.0.2.153:9136$1920x1080
|
||||
CCTV-1,http://118.81.48.104:8085/rtp/226.0.2.153:9136$1920x1080
|
||||
CCTV-1,http://27.11.52.62:8001/rtp/225.0.4.74:7980$1920x1080
|
||||
CCTV-1,http://183.184.181.5:8085/rtp/226.0.2.153:9136$1920x1080
|
||||
CCTV-2,http://sweetown.fun:4000/rtp/239.3.1.60:8084$1920x1080
|
||||
CCTV-2,http://60.178.151.155:4022/rtp/233.50.201.119:5140$1920x1080
|
||||
CCTV-2,http://60.7.56.33:4000/rtp/239.253.92.190:6065$1920x1080
|
||||
CCTV-2,http://114.252.229.100:8000/rtp/239.3.1.60:8084$1920x1080
|
||||
CCTV-2,http://111.165.222.109:8000/rtp/225.1.1.133:5002$1920x1080
|
||||
CCTV-2,http://221.198.182.240:8888/rtp/225.1.1.133:5002$1920x1080
|
||||
CCTV-2,http://123.144.22.32:8005/rtp/225.0.4.132:7980$1920x1080
|
||||
CCTV-2,http://60.178.151.155:4022/rtp/233.50.201.2:5140$720x576
|
||||
CCTV-2,http://183.185.222.245:8085/rtp/226.0.2.19:8064$720x576
|
||||
CCTV-2,http://183.185.222.245:8084/rtp/226.0.2.154:9144
|
||||
CCTV-3,http://118.81.48.104:8083/rtp/226.0.2.208:9576$1920x1080
|
||||
CCTV-3,http://111.165.222.109:8000/rtp/225.1.1.158:5002$1920x1080
|
||||
CCTV-3,http://171.213.206.59:8000/rtp/239.93.1.11:2223$1920x1080
|
||||
CCTV-3,http://123.144.22.32:8005/rtp/225.0.4.142:7980$1920x1080
|
||||
CCTV-3,http://221.198.182.240:8888/rtp/225.1.1.158:5002$1920x1080
|
||||
CCTV-3,http://60.178.151.155:4022/rtp/233.50.201.16:5140$720x576
|
||||
CCTV-3,http://183.185.222.245:8084/rtp/226.0.2.208:9576
|
||||
CCTV-3,http://183.185.222.245:8083/rtp/226.0.2.208:9576
|
||||
CCTV-3,http://183.185.222.245:8085/rtp/226.0.2.208:9576
|
||||
CCTV-3,http://118.81.48.104:8085/rtp/226.0.2.208:9576
|
||||
CCTV-3,http://183.185.222.245:8084/rtp/226.0.2.20:8072
|
||||
CCTV-3,http://183.185.222.245:8083/rtp/226.0.2.20:8072
|
||||
CCTV-4,http://60.7.56.33:4000/rtp/239.253.93.192:6370$1920x1080
|
||||
CCTV-4,http://114.252.229.100:8000/rtp/239.3.1.105:8092$1920x1080
|
||||
CCTV-4,http://sweetown.fun:4000/rtp/239.3.1.105:8092$1920x1080
|
||||
CCTV-4,http://60.178.151.155:4022/rtp/233.50.200.101:5140$1920x1080
|
||||
CCTV-4,http://221.198.182.240:8888/rtp/225.1.1.150:5002$1920x1080
|
||||
CCTV-4,http://60.178.151.155:4022/rtp/233.50.201.4:5140$720x576
|
||||
CCTV-4,http://183.185.222.245:8084/rtp/226.0.2.156:9160
|
||||
CCTV-4,http://183.185.222.245:8083/rtp/226.0.2.156:9160
|
||||
CCTV-4,http://183.185.222.245:8085/rtp/226.0.2.156:9160
|
||||
CCTV-4,http://118.81.48.104:8085/rtp/226.0.2.156:9160
|
||||
CCTV-4,http://183.185.222.245:8084/rtp/226.0.2.21:8080
|
||||
CCTV-4,http://183.185.222.245:8083/rtp/226.0.2.21:8080
|
||||
CCTV-5,http://60.7.56.33:4000/rtp/239.253.92.181:6046$1920x1080
|
||||
CCTV-5,http://111.165.222.109:8000/rtp/225.1.1.160:5002$1920x1080
|
||||
CCTV-5,http://sweetown.fun:4000/rtp/239.3.1.173:8001$1920x1080
|
||||
CCTV-5,http://123.144.22.32:8005/rtp/225.0.4.143:7980$1920x1080
|
||||
CCTV-5,http://171.213.206.59:8000/rtp/239.93.42.37:5140$1920x1080
|
||||
CCTV-5,http://221.198.182.240:8888/rtp/225.1.1.160:5002$1920x1080
|
||||
CCTV-5,http://60.178.151.155:4022/rtp/233.50.201.17:5140$720x576
|
||||
CCTV-5,http://118.81.48.104:8083/rtp/226.0.2.22:8088$720x576
|
||||
CCTV-5,http://171.116.191.164:8084/rtp/226.0.2.22:8088$720x576
|
||||
CCTV-5,http://183.185.222.245:8084/rtp/226.0.2.209:9584
|
||||
CCTV-5,http://183.185.222.245:8083/rtp/226.0.2.209:9584
|
||||
CCTV-5,http://183.185.222.245:8085/rtp/226.0.2.209:9584
|
||||
CCTV-5,http://118.81.48.104:8085/rtp/226.0.2.209:9584
|
||||
CCTV-5+,http://60.178.151.155:4022/rtp/233.50.201.220:5140$1920x1080
|
||||
CCTV-5+,http://60.7.56.33:4000/rtp/239.253.92.82:8013$1920x1080
|
||||
CCTV-5+,http://221.198.182.240:8888/rtp/225.1.1.121:5002$1920x1080
|
||||
CCTV-5+,http://221.216.137.230:8012/rtp/239.3.1.130:8004$1920x1080
|
||||
CCTV-5+,http://123.144.22.32:8005/rtp/225.0.4.73:7980$1920x1080
|
||||
CCTV-5+,http://117.32.85.224:8014/rtp/239.111.205.13:5140$1920x1080
|
||||
CCTV-5+,http://183.185.222.245:8084/rtp/226.0.2.168:9256
|
||||
CCTV-5+,http://183.185.222.245:8083/rtp/226.0.2.168:9256
|
||||
CCTV-5+,http://183.185.222.245:8085/rtp/226.0.2.168:9256
|
||||
CCTV-5+,http://118.81.48.104:8085/rtp/226.0.2.168:9256
|
||||
CCTV-5+,http://123.144.22.32:8005/rtp/225.0.4.73:7980
|
||||
CCTV-5+,http://118.81.48.104:8083/rtp/226.0.2.168:9256
|
||||
CCTV-6,http://60.7.56.33:4000/rtp/239.253.92.193:6058$1920x1080
|
||||
CCTV-6,http://27.10.210.156:8004/rtp/225.0.4.144:7980$1920x1080
|
||||
CCTV-6,http://221.198.182.240:8888/rtp/225.1.1.195:5002$1920x1080
|
||||
CCTV-6,http://221.216.137.230:8012/rtp/239.3.1.174:8001$1920x1080
|
||||
CCTV-6,http://123.144.22.32:8005/rtp/225.0.4.144:7980$1920x1080
|
||||
CCTV-6,http://183.185.222.245:8084/rtp/226.0.2.210:9592
|
||||
CCTV-6,http://183.185.222.245:8083/rtp/226.0.2.210:9592
|
||||
CCTV-6,http://183.185.222.245:8085/rtp/226.0.2.210:9592
|
||||
CCTV-6,http://118.81.48.104:8085/rtp/226.0.2.210:9592
|
||||
CCTV-6,http://183.185.222.245:8084/rtp/226.0.2.23:8096
|
||||
CCTV-6,http://183.185.222.245:8083/rtp/226.0.2.23:8096
|
||||
CCTV-6,http://183.185.222.245:8085/rtp/226.0.2.23:8096
|
||||
CCTV-6,http://118.81.48.104:8085/rtp/226.0.2.23:8096
|
||||
CCTV-6,http://123.144.22.32:8005/rtp/225.0.4.144:7980
|
||||
CCTV-7,http://60.178.151.155:4022/rtp/233.50.201.120:5140$1920x1080
|
||||
CCTV-7,http://111.165.222.109:8000/rtp/225.1.1.138:5002$1920x1080
|
||||
CCTV-7,http://sweetown.fun:4000/rtp/239.3.1.61:8104$1920x1080
|
||||
CCTV-7,http://123.144.22.32:8005/rtp/225.0.4.127:7980$1920x1080
|
||||
CCTV-7,http://221.198.182.240:8888/rtp/225.1.1.138:5002$1920x1080
|
||||
CCTV-7,http://60.178.151.155:4022/rtp/233.50.201.7:5140$720x576
|
||||
CCTV-7,http://183.185.222.245:8084/rtp/226.0.2.159:9184
|
||||
CCTV-7,http://183.185.222.245:8083/rtp/226.0.2.159:9184
|
||||
CCTV-7,http://183.185.222.245:8085/rtp/226.0.2.159:9184
|
||||
CCTV-7,http://118.81.48.104:8085/rtp/226.0.2.159:9184
|
||||
CCTV-7,http://183.185.222.245:8084/rtp/226.0.2.24:8104
|
||||
CCTV-7,http://183.185.222.245:8083/rtp/226.0.2.24:8104
|
||||
CCTV-7,http://183.185.222.245:8085/rtp/226.0.2.24:8104
|
||||
CCTV-8,http://60.178.151.155:4022/rtp/233.50.201.199:5140$1920x1080
|
||||
CCTV-8,http://111.165.222.109:8000/rtp/225.1.1.196:5002$1920x1080
|
||||
CCTV-8,http://221.198.182.240:8888/rtp/225.1.1.196:5002$1920x1080
|
||||
CCTV-8,http://171.213.206.59:8000/rtp/239.93.42.39:5140$1920x1080
|
||||
CCTV-8,http://123.144.22.32:8005/rtp/225.0.4.137:7980$1920x1080
|
||||
CCTV-8,http://60.178.151.155:4022/rtp/233.50.201.19:5140$720x576
|
||||
CCTV-8,http://183.185.222.245:8084/rtp/226.0.2.211:9600
|
||||
CCTV-8,http://183.185.222.245:8083/rtp/226.0.2.211:9600
|
||||
CCTV-8,http://183.185.222.245:8085/rtp/226.0.2.211:9600
|
||||
CCTV-8,http://118.81.48.104:8085/rtp/226.0.2.211:9600
|
||||
CCTV-8,http://183.185.222.245:8084/rtp/226.0.2.25:8112
|
||||
CCTV-8,http://183.185.222.245:8083/rtp/226.0.2.25:8112
|
||||
CCTV-8,http://183.185.222.245:8085/rtp/226.0.2.25:8112
|
||||
CCTV-9,http://60.178.151.155:4022/rtp/233.50.201.121:5140$1920x1080
|
||||
CCTV-9,http://111.165.222.109:8000/rtp/225.1.1.119:5002$1920x1080
|
||||
CCTV-9,http://sweetown.fun:4000/rtp/239.3.1.62:8112$1920x1080
|
||||
CCTV-9,http://221.216.137.230:8012/rtp/239.3.1.62:8112$1920x1080
|
||||
CCTV-9,http://221.198.182.240:8888/rtp/225.1.1.119:5002$1920x1080
|
||||
CCTV-9,http://27.10.210.156:8004/rtp/225.0.4.131:7980$1920x1080
|
||||
CCTV-9,http://171.213.206.59:8000/rtp/239.93.1.24:5140$1920x1080
|
||||
CCTV-9,http://183.185.222.245:8084/rtp/226.0.2.161:9200
|
||||
CCTV-9,http://183.185.222.245:8083/rtp/226.0.2.161:9200
|
||||
CCTV-9,http://183.185.222.245:8085/rtp/226.0.2.161:9200
|
||||
CCTV-9,http://118.81.48.104:8085/rtp/226.0.2.161:9200
|
||||
CCTV-10,http://114.252.229.100:8000/rtp/239.3.1.63:8116$1920x1080
|
||||
CCTV-10,http://60.178.151.155:4022/rtp/233.50.201.122:5140$1920x1080
|
||||
CCTV-10,http://221.198.182.240:8888/rtp/225.1.1.140:5002$1920x1080
|
||||
CCTV-10,http://123.144.22.32:8005/rtp/225.0.4.130:7980$1920x1080
|
||||
CCTV-10,http://27.10.210.156:8004/rtp/225.0.4.130:7980$1920x1080
|
||||
CCTV-10,http://171.116.191.164:8084/rtp/226.0.2.27:8128$720x576
|
||||
CCTV-10,http://183.185.222.245:8084/rtp/226.0.2.162:9208
|
||||
CCTV-10,http://183.185.222.245:8083/rtp/226.0.2.162:9208
|
||||
CCTV-10,http://183.185.222.245:8085/rtp/226.0.2.162:9208
|
||||
CCTV-10,http://118.81.48.104:8085/rtp/226.0.2.162:9208
|
||||
CCTV-10,http://183.185.222.245:8084/rtp/226.0.2.27:8128
|
||||
CCTV-10,http://183.185.222.245:8083/rtp/226.0.2.27:8128
|
||||
CCTV-11,http://114.252.229.100:8000/rtp/239.3.1.152:8120$1920x1080
|
||||
CCTV-11,http://111.165.222.109:8000/rtp/225.1.2.192:5002$1920x1080
|
||||
CCTV-11,http://sweetown.fun:4000/rtp/239.3.1.152:8120$1920x1080
|
||||
CCTV-11,http://221.198.182.240:8888/rtp/225.1.2.192:5002$1920x1080
|
||||
CCTV-11,http://221.216.137.230:8012/rtp/239.3.1.152:8120$1920x1080
|
||||
CCTV-11,http://60.178.151.155:4022/rtp/233.50.201.11:5140$720x576
|
||||
CCTV-11,http://183.185.222.245:8084/rtp/226.0.2.28:8136
|
||||
CCTV-11,http://183.185.222.245:8083/rtp/226.0.2.28:8136
|
||||
CCTV-11,http://183.185.222.245:8085/rtp/226.0.2.28:8136
|
||||
CCTV-11,http://118.81.48.104:8085/rtp/226.0.2.28:8136
|
||||
CCTV-11,http://123.144.22.32:8005/rtp/225.0.4.218:7980
|
||||
CCTV-11,http://118.81.48.104:8083/rtp/226.0.2.28:8136
|
||||
CCTV-12,http://60.7.56.33:4000/rtp/239.253.92.197:6062$1920x1080
|
||||
CCTV-12,http://114.252.229.100:8000/rtp/239.3.1.64:8124$1920x1080
|
||||
CCTV-12,http://221.198.182.240:8888/rtp/225.1.1.142:5002$1920x1080
|
||||
CCTV-12,http://27.11.49.234:8001/rtp/225.0.4.129:7980$1920x1080
|
||||
CCTV-12,http://60.178.151.155:4022/rtp/233.50.201.12:5140$720x576
|
||||
CCTV-12,http://183.185.222.245:8084/rtp/226.0.2.164:9224
|
||||
CCTV-12,http://183.185.222.245:8083/rtp/226.0.2.164:9224
|
||||
CCTV-12,http://183.185.222.245:8085/rtp/226.0.2.164:9224
|
||||
CCTV-12,http://118.81.48.104:8085/rtp/226.0.2.164:9224
|
||||
CCTV-12,http://183.185.222.245:8084/rtp/226.0.2.29:8144
|
||||
CCTV-12,http://183.185.222.245:8083/rtp/226.0.2.29:8144
|
||||
CCTV-12,http://183.185.222.245:8085/rtp/226.0.2.29:8144
|
||||
CCTV-12,http://118.81.48.104:8085/rtp/226.0.2.29:8144
|
||||
CCTV-13,http://sweetown.fun:4000/rtp/239.3.1.124:8128$1920x1080
|
||||
CCTV-13,http://114.252.229.100:8000/rtp/239.3.1.124:8128$1920x1080
|
||||
CCTV-13,http://60.178.151.155:4022/rtp/233.50.201.246:5140$1920x1080
|
||||
CCTV-13,http://123.144.22.32:8005/rtp/225.0.4.219:7980$1920x1080
|
||||
CCTV-13,http://171.213.206.59:8000/rtp/239.93.0.66:5140$1920x1080
|
||||
CCTV-13,http://221.198.182.240:8888/rtp/225.1.2.193:5002$1920x1080
|
||||
CCTV-13,http://60.178.151.155:4022/rtp/233.50.201.13:5140$720x576
|
||||
CCTV-13,http://171.116.191.164:8084/rtp/226.0.2.30:8152$720x576
|
||||
CCTV-13,http://183.185.222.245:8084/rtp/226.0.2.165:9232
|
||||
CCTV-13,http://183.185.222.245:8083/rtp/226.0.2.165:9232
|
||||
CCTV-13,http://183.185.222.245:8085/rtp/226.0.2.165:9232
|
||||
CCTV-13,http://118.81.48.104:8085/rtp/226.0.2.165:9232
|
||||
CCTV-14,http://60.178.151.155:4022/rtp/233.50.201.124:5140$1920x1080
|
||||
CCTV-14,http://114.252.229.100:8000/rtp/239.3.1.65:8132$1920x1080
|
||||
CCTV-14,http://27.10.210.156:8004/rtp/225.0.4.128:7980$1920x1080
|
||||
CCTV-14,http://123.144.22.32:8005/rtp/225.0.4.128:7980$1920x1080
|
||||
CCTV-14,http://221.198.182.240:8888/rtp/225.1.1.144:5002$1920x1080
|
||||
CCTV-14,http://27.11.49.234:8001/rtp/225.0.4.128:7980$1920x1080
|
||||
CCTV-14,http://60.178.151.155:4022/rtp/233.50.201.14:5140$720x576
|
||||
CCTV-14,http://118.81.48.104:8083/rtp/226.0.2.31:8160$720x576
|
||||
CCTV-14,http://183.185.222.245:8084/rtp/226.0.2.166:9240
|
||||
CCTV-14,http://183.185.222.245:8083/rtp/226.0.2.166:9240
|
||||
CCTV-14,http://183.185.222.245:8085/rtp/226.0.2.166:9240
|
||||
CCTV-14,http://118.81.48.104:8085/rtp/226.0.2.166:9240
|
||||
CCTV-14,http://183.185.222.245:8084/rtp/226.0.2.31:8160
|
||||
CCTV-15,http://sweetown.fun:4000/rtp/239.3.1.153:8136$1920x1080
|
||||
CCTV-15,http://111.165.222.109:8000/rtp/225.1.2.194:5002$1920x1080
|
||||
CCTV-15,http://221.216.137.230:8012/rtp/239.3.1.153:8136$1920x1080
|
||||
CCTV-15,http://221.198.182.240:8888/rtp/225.1.2.194:5002$1920x1080
|
||||
CCTV-15,http://171.117.245.185:8084/rtp/226.0.2.32:8168$720x576
|
||||
CCTV-15,http://60.178.151.155:4022/rtp/233.50.201.15:5140$720x576
|
||||
CCTV-15,http://183.185.222.245:8084/rtp/226.0.2.32:8168
|
||||
CCTV-15,http://183.185.222.245:8083/rtp/226.0.2.32:8168
|
||||
CCTV-15,http://183.185.222.245:8085/rtp/226.0.2.32:8168
|
||||
CCTV-15,http://118.81.48.104:8085/rtp/226.0.2.32:8168
|
||||
CCTV-15,http://123.144.22.32:8005/rtp/225.0.4.220:7980
|
||||
CCTV-15,http://118.81.48.104:8083/rtp/226.0.2.32:8168
|
||||
CCTV-16,http://60.178.151.155:4022/rtp/233.50.201.192:5140$1920x1080
|
||||
CCTV-16,http://221.198.182.240:8888/rtp/225.1.2.237:5002$1920x1080
|
||||
CCTV-16,http://117.32.85.224:8014/rtp/239.111.205.134:5140$1920x1080
|
||||
CCTV-16,http://221.216.137.230:8012/rtp/239.3.1.184:8001$1920x1080
|
||||
CCTV-16,http://114.246.181.171:4022/rtp/239.3.1.184:8001$1920x1080
|
||||
CCTV-16,http://183.185.222.245:8084/rtp/226.0.2.169:9264
|
||||
CCTV-16,http://183.185.222.245:8083/rtp/226.0.2.169:9264
|
||||
CCTV-16,http://183.185.222.245:8085/rtp/226.0.2.169:9264
|
||||
CCTV-16,http://118.81.48.104:8085/rtp/226.0.2.169:9264
|
||||
CCTV-16,http://118.81.48.104:8083/rtp/226.0.2.169:9264
|
||||
CCTV-16,http://183.184.181.5:8085/rtp/226.0.2.169:9264
|
||||
CCTV-16,http://114.252.229.100:8000/rtp/239.3.1.183:8001
|
||||
CCTV-17,http://sweetown.fun:4000/rtp/239.3.1.151:8144$1920x1080
|
||||
CCTV-17,http://221.198.182.240:8888/rtp/225.1.2.52:5002$1920x1080
|
||||
CCTV-17,http://117.32.85.224:8014/rtp/239.112.205.211:5140$1920x1080
|
||||
CCTV-17,http://171.213.206.59:8000/rtp/239.93.0.92:5140$1920x1080
|
||||
CCTV-17,http://123.144.22.32:8005/rtp/225.0.4.179:7980$1920x1080
|
||||
CCTV-17,http://60.178.151.155:4022/rtp/233.50.201.35:5140$720x576
|
||||
CCTV-17,http://183.185.222.245:8084/rtp/226.0.2.170:9272
|
||||
CCTV-17,http://183.185.222.245:8083/rtp/226.0.2.170:9272
|
||||
CCTV-17,http://183.185.222.245:8085/rtp/226.0.2.170:9272
|
||||
CCTV-17,http://118.81.48.104:8085/rtp/226.0.2.170:9272
|
||||
CCTV-17,http://183.185.222.245:8084/rtp/226.0.2.207:9568
|
||||
CCTV1,http://www.furymax.top:85/rtp/239.254.96.96:8550
|
||||
CCTV2,http://1.195.111.251:11190/tsfile/live/0002_1.m3u8
|
||||
CCTV3,http://1.195.111.251:11190/tsfile/live/0003_1.m3u8
|
||||
CCTV4,http://1.195.111.251:11190/tsfile/live/0004_1.m3u8
|
||||
CCTV5,http://1.195.111.251:11190/tsfile/live/0005_1.m3u8
|
||||
CCTV6,http://1.195.111.251:11190/tsfile/live/0006_1.m3u8
|
||||
CCTV7,http://1.195.111.251:11190/tsfile/live/0007_1.m3u8
|
||||
CCTV8,http://1.195.111.251:11190/tsfile/live/0008_1.m3u8
|
||||
CCTV9,http://1.195.111.251:11190/tsfile/live/0009_1.m3u8
|
||||
CCTV10,http://1.195.111.251:11190/tsfile/live/0010_1.m3u8
|
||||
CCTV11,http://1.195.111.251:11190/tsfile/live/0011_1.m3u8
|
||||
CCTV12,http://1.195.111.251:11190/tsfile/live/0012_1.m3u8
|
||||
CCTV13,http://1.195.111.251:11190/tsfile/live/0013_1.m3u8
|
||||
CCTV14,http://1.195.111.251:11190/tsfile/live/0014_1.m3u8
|
||||
CCTV15,http://1.195.111.251:11190/tsfile/live/0015_1.m3u8
|
||||
CCTV10,http://1.195.111.251:11190/tsfile/live/0010_1.m3u8?%E5%BE%AE%E4%BF%A1%E5%85%AC%E4%BC%97%E5%8F%B7%E3%80%90%E6%99%B4%E5%9B%AD%E3%80%91%E6%95%B4%E7%90%86%E5%88%86%E4%BA%AB
|
||||
CCTV11,http://1.195.111.251:11190/tsfile/live/0011_1.m3u8?
|
||||
CCTV12,http://1.195.111.251:11190/tsfile/live/0012_1.m3u8?%E5%BE%AE%E4%BF%A1%E5%85%AC%E4%BC%97%E5%8F%B7%E3%80%90%E6%99%B4%E5%9B%AD%E3%80%91%E6%95%B4%E7%90%86%E5%88%86%E4%BA%AB
|
||||
|
||||
|
||||
卫视,#genre#
|
||||
广东卫视,http://sweetown.fun:4000/rtp/239.3.1.142:8048$1920x1080
|
||||
广东卫视,http://111.165.222.109:8000/rtp/225.1.1.116:5002$1920x1080
|
||||
广东卫视,http://27.11.49.234:8001/rtp/225.0.4.84:7980$1920x1080
|
||||
广东卫视,http://221.198.182.240:8888/rtp/225.1.1.116:5002$1920x1080
|
||||
广东卫视,http://60.178.151.155:4022/rtp/233.50.201.56:5140$720x576
|
||||
广东卫视,http://183.185.222.245:8084/rtp/226.0.2.146:9080
|
||||
广东卫视,http://183.185.222.245:8083/rtp/226.0.2.146:9080
|
||||
广东卫视,http://183.185.222.245:8085/rtp/226.0.2.146:9080
|
||||
广东卫视,http://118.81.48.104:8085/rtp/226.0.2.146:9080
|
||||
广东卫视,http://183.185.222.245:8084/rtp/226.0.2.45:8272
|
||||
广东卫视,http://183.185.222.245:8083/rtp/226.0.2.45:8272
|
||||
浙江卫视,http://221.198.182.240:8888/rtp/225.1.1.112:5002$1920x1080
|
||||
浙江卫视,http://60.178.151.155:4022/rtp/233.50.200.231:5140$1920x1080
|
||||
浙江卫视,http://114.252.229.100:8000/rtp/239.3.1.137:8036$1920x1080
|
||||
浙江卫视,http://sweetown.fun:4000/rtp/239.3.1.137:8036$1920x1080
|
||||
浙江卫视,http://111.165.222.109:8000/rtp/225.1.1.112:5002$1920x1080
|
||||
浙江卫视,http://27.10.210.156:8004/rtp/225.0.4.81:7980$1920x1080
|
||||
浙江卫视,http://123.144.22.32:8005/rtp/225.0.4.81:7980$1920x1080
|
||||
浙江卫视,http://183.185.222.245:8084/rtp/226.0.2.144:9064
|
||||
浙江卫视,http://183.185.222.245:8083/rtp/226.0.2.144:9064
|
||||
浙江卫视,http://183.185.222.245:8085/rtp/226.0.2.144:9064
|
||||
浙江卫视,http://118.81.48.104:8085/rtp/226.0.2.144:9064
|
||||
浙江卫视,http://183.185.222.245:8084/rtp/226.0.2.36:8200
|
||||
浙江卫视,http://183.185.222.245:8083/rtp/226.0.2.36:8200
|
||||
浙江卫视,http://183.185.222.245:8085/rtp/226.0.2.36:8200
|
||||
湖南卫视,http://120.10.101.13:4000/rtp/239.253.92.84:8015$1920x1080
|
||||
湖南卫视,http://60.178.151.155:4022/rtp/233.50.201.103:5140$1920x1080
|
||||
湖南卫视,http://221.198.182.240:8888/rtp/225.1.1.114:5002$1920x1080
|
||||
湖南卫视,http://171.213.206.59:8000/rtp/239.93.0.88:5140$1920x1080
|
||||
湖南卫视,http://27.11.49.234:8001/rtp/225.0.4.75:7980$1920x1080
|
||||
湖南卫视,http://123.144.22.32:8005/rtp/225.0.4.75:7980$1920x1080
|
||||
湖南卫视,http://60.178.151.155:4022/rtp/233.50.201.52:5140$720x576
|
||||
湖南卫视,http://171.116.191.164:8084/rtp/226.0.2.33:8176$720x576
|
||||
湖南卫视,http://183.185.222.245:8084/rtp/226.0.2.143:9056
|
||||
湖南卫视,http://183.185.222.245:8083/rtp/226.0.2.143:9056
|
||||
湖南卫视,http://183.185.222.245:8085/rtp/226.0.2.143:9056
|
||||
湖南卫视,http://118.81.48.104:8085/rtp/226.0.2.143:9056
|
||||
湖南卫视,http://183.185.222.245:8084/rtp/226.0.2.33:8176
|
||||
北京卫视,http://111.165.222.109:8000/rtp/225.1.1.113:5002$1920x1080
|
||||
北京卫视,http://221.198.182.240:8888/rtp/225.1.1.113:5002$1920x1080
|
||||
北京卫视,http://27.10.210.156:8004/rtp/225.0.4.78:7980$1920x1080
|
||||
北京卫视,http://60.178.151.155:4022/rtp/233.50.201.40:5140$720x576
|
||||
北京卫视,http://183.185.222.245:8084/rtp/226.0.2.177:9328
|
||||
北京卫视,http://183.185.222.245:8083/rtp/226.0.2.177:9328
|
||||
北京卫视,http://183.185.222.245:8085/rtp/226.0.2.177:9328
|
||||
北京卫视,http://118.81.48.104:8085/rtp/226.0.2.177:9328
|
||||
北京卫视,http://183.185.222.245:8084/rtp/226.0.2.39:8224
|
||||
北京卫视,http://183.185.222.245:8083/rtp/226.0.2.39:8224
|
||||
北京卫视,http://183.185.222.245:8085/rtp/226.0.2.39:8224
|
||||
湖北卫视,http://60.178.151.155:4022/rtp/233.50.201.114:5140$1920x1080
|
||||
湖北卫视,http://111.165.222.109:8000/rtp/225.1.1.147:5002$1920x1080
|
||||
湖北卫视,http://221.198.182.240:8888/rtp/225.1.1.147:5002$1920x1080
|
||||
湖北卫视,http://sweetown.fun:4000/rtp/239.3.1.138:8044$1920x1080
|
||||
湖北卫视,http://171.213.206.59:8000/rtp/239.93.0.250:5140$1920x1080
|
||||
湖北卫视,http://171.116.191.164:8084/rtp/226.0.2.49:8304$720x576
|
||||
湖北卫视,http://118.81.48.104:8083/rtp/226.0.2.49:8304$720x576
|
||||
湖北卫视,http://183.185.222.245:8085/rtp/226.0.2.49:8304$720x576
|
||||
湖北卫视,http://183.185.222.245:8084/rtp/226.0.2.150:9112
|
||||
湖北卫视,http://183.185.222.245:8083/rtp/226.0.2.150:9112
|
||||
湖北卫视,http://183.185.222.245:8085/rtp/226.0.2.150:9112
|
||||
湖北卫视,http://118.81.48.104:8085/rtp/226.0.2.150:9112
|
||||
黑龙江卫视,http://111.165.222.109:8000/rtp/225.1.1.115:5002$1920x1080
|
||||
黑龙江卫视,http://60.178.151.155:4022/rtp/233.50.201.115:5140$1920x1080
|
||||
黑龙江卫视,http://221.198.182.240:8888/rtp/225.1.1.115:5002$1920x1080
|
||||
黑龙江卫视,http://171.213.206.59:8000/rtp/239.93.0.183:5140$1920x1080
|
||||
黑龙江卫视,http://60.178.151.155:4022/rtp/233.50.201.42:5140$720x576
|
||||
黑龙江卫视,http://183.185.222.245:8084/rtp/226.0.2.151:9120
|
||||
黑龙江卫视,http://183.185.222.245:8083/rtp/226.0.2.151:9120
|
||||
黑龙江卫视,http://183.185.222.245:8085/rtp/226.0.2.151:9120
|
||||
黑龙江卫视,http://118.81.48.104:8085/rtp/226.0.2.151:9120
|
||||
黑龙江卫视,http://183.185.222.245:8084/rtp/226.0.2.48:8296
|
||||
黑龙江卫视,http://183.185.222.245:8083/rtp/226.0.2.48:8296
|
||||
黑龙江卫视,http://183.185.222.245:8085/rtp/226.0.2.48:8296
|
||||
安徽卫视,http://60.178.151.155:4022/rtp/233.50.201.113:5140$1920x1080
|
||||
安徽卫视,http://114.252.229.100:8000/rtp/239.3.1.211:8064$1920x1080
|
||||
安徽卫视,http://111.165.222.109:8000/rtp/225.1.1.127:5002$1920x1080
|
||||
安徽卫视,http://27.11.49.234:8001/rtp/225.0.4.133:7980$1920x1080
|
||||
安徽卫视,http://221.198.182.240:8888/rtp/225.1.1.127:5002$1920x1080
|
||||
安徽卫视,http://27.10.210.156:8004/rtp/225.0.4.133:7980$1920x1080
|
||||
安徽卫视,http://123.144.22.32:8005/rtp/225.0.4.133:7980$1920x1080
|
||||
安徽卫视,http://60.178.151.155:4022/rtp/233.50.201.62:5140$720x576
|
||||
安徽卫视,http://183.185.222.245:8084/rtp/226.0.2.145:9072
|
||||
安徽卫视,http://183.185.222.245:8083/rtp/226.0.2.145:9072
|
||||
安徽卫视,http://183.185.222.245:8085/rtp/226.0.2.145:9072
|
||||
安徽卫视,http://118.81.48.104:8085/rtp/226.0.2.145:9072
|
||||
重庆卫视,http://114.252.229.100:8000/rtp/239.3.1.122:8160$1920x1080
|
||||
重庆卫视,http://221.198.182.240:8888/rtp/225.1.1.155:5002$1920x1080
|
||||
重庆卫视,http://27.11.49.234:8001/rtp/225.0.4.187:7980$1920x1080
|
||||
重庆卫视,http://111.165.222.109:8000/rtp/225.1.1.155:5002$1920x1080
|
||||
重庆卫视,http://171.213.206.59:8000/rtp/239.93.1.107:5140$1920x1080
|
||||
重庆卫视,http://171.116.191.164:8084/rtp/226.0.2.174:9304$1920x1080
|
||||
重庆卫视,http://60.178.151.155:4022/rtp/233.50.201.66:5140$720x576
|
||||
重庆卫视,http://171.116.191.164:8084/rtp/226.0.2.50:8312$720x576
|
||||
重庆卫视,http://183.185.222.245:8084/rtp/226.0.2.174:9304
|
||||
重庆卫视,http://183.185.222.245:8083/rtp/226.0.2.174:9304
|
||||
重庆卫视,http://183.185.222.245:8085/rtp/226.0.2.174:9304
|
||||
重庆卫视,http://118.81.48.104:8085/rtp/226.0.2.174:9304
|
||||
东方卫视,http://27.11.49.234:8001/rtp/225.0.4.80:7980$1920x1080
|
||||
东方卫视,http://221.198.182.240:8888/rtp/225.1.2.31:5002$1920x1080
|
||||
东方卫视,http://111.165.222.109:8000/rtp/225.1.2.31:5002$1920x1080
|
||||
东方卫视,http://60.178.151.155:4022/rtp/233.50.201.68:5140$720x576
|
||||
东方卫视,http://171.116.191.164:8084/rtp/226.0.2.34:8184$720x576
|
||||
东方卫视,http://183.185.222.245:8084/rtp/226.0.2.175:9312
|
||||
东方卫视,http://183.185.222.245:8083/rtp/226.0.2.175:9312
|
||||
东方卫视,http://183.185.222.245:8085/rtp/226.0.2.175:9312
|
||||
东方卫视,http://118.81.48.104:8085/rtp/226.0.2.175:9312
|
||||
东方卫视,http://183.185.222.245:8084/rtp/226.0.2.34:8184
|
||||
东方卫视,http://183.185.222.245:8083/rtp/226.0.2.34:8184
|
||||
东方卫视,http://183.185.222.245:8085/rtp/226.0.2.34:8184
|
||||
东方卫视,http://118.81.48.104:8085/rtp/226.0.2.34:8184
|
||||
东南卫视,http://60.7.56.33:4000/rtp/239.253.92.201:6146$1920x1080
|
||||
东南卫视,http://114.252.229.100:8000/rtp/239.3.1.156:8148$1920x1080
|
||||
东南卫视,http://sweetown.fun:4000/rtp/239.3.1.156:8148$1920x1080
|
||||
东南卫视,http://60.178.151.155:4022/rtp/233.50.201.58:5140$720x576
|
||||
东南卫视,http://183.185.222.245:8085/rtp/226.0.2.40:8232$720x576
|
||||
东南卫视,http://183.185.222.245:8084/rtp/226.0.2.40:8232
|
||||
东南卫视,http://183.185.222.245:8083/rtp/226.0.2.40:8232
|
||||
东南卫视,http://183.185.222.245:8085/rtp/226.0.2.40:8232
|
||||
东南卫视,http://118.81.48.104:8085/rtp/226.0.2.40:8232
|
||||
东南卫视,http://183.185.222.245:8084/rtp/226.0.2.188:9416
|
||||
东南卫视,http://183.185.222.245:8083/rtp/226.0.2.188:9416
|
||||
东南卫视,http://183.185.222.245:8085/rtp/226.0.2.188:9416
|
||||
甘肃卫视,http://183.185.222.245:8085/rtp/226.0.2.55:8352$720x576
|
||||
甘肃卫视,http://114.252.229.100:8000/rtp/239.3.1.49:8188$720x576
|
||||
甘肃卫视,http://sweetown.fun:4000/rtp/239.3.1.49:8188$720x576
|
||||
甘肃卫视,http://117.32.85.224:8014/rtp/239.112.205.48:5140$720x576
|
||||
甘肃卫视,http://111.165.222.109:8000/rtp/225.1.1.30:5002$720x576
|
||||
甘肃卫视,http://171.116.191.164:8084/rtp/226.0.2.55:8352$720x576
|
||||
甘肃卫视,http://221.198.182.240:8888/rtp/225.1.1.30:5002$720x576
|
||||
甘肃卫视,http://221.216.137.230:8012/rtp/239.3.1.49:8188$720x576
|
||||
甘肃卫视,http://183.185.222.245:8084/rtp/226.0.2.55:8352
|
||||
甘肃卫视,http://183.185.222.245:8083/rtp/226.0.2.55:8352
|
||||
甘肃卫视,http://183.185.222.245:8085/rtp/226.0.2.55:8352
|
||||
甘肃卫视,http://118.81.48.104:8085/rtp/226.0.2.55:8352
|
||||
甘肃卫视,http://118.81.48.104:8083/rtp/226.0.2.55:8352
|
||||
广西卫视,http://221.198.182.240:8888/rtp/225.1.2.81:5002$1920x1080
|
||||
广西卫视,http://111.165.222.109:8000/rtp/225.1.2.81:5002$1920x1080
|
||||
广西卫视,http://www.dsmcloud.top:8888/udp/239.81.0.107:4056$1920x1080
|
||||
广西卫视,http://114.252.229.100:8000/rtp/239.3.1.39:8300$720x576
|
||||
广西卫视,http://60.178.151.155:4022/rtp/233.50.201.49:5140$720x576
|
||||
广西卫视,http://171.116.191.164:8084/rtp/226.0.2.46:8280$720x576
|
||||
广西卫视,http://221.216.137.230:8012/rtp/239.3.1.39:8300$720x576
|
||||
广西卫视,http://183.185.222.245:8084/rtp/226.0.2.46:8280
|
||||
广西卫视,http://183.185.222.245:8083/rtp/226.0.2.46:8280
|
||||
广西卫视,http://183.185.222.245:8085/rtp/226.0.2.46:8280
|
||||
广西卫视,http://118.81.48.104:8085/rtp/226.0.2.46:8280
|
||||
广西卫视,http://183.185.222.245:8084/rtp/226.0.2.231:9760
|
||||
贵州卫视,http://sweetown.fun:4000/rtp/239.3.1.149:8076$1920x1080
|
||||
贵州卫视,http://114.252.229.100:8000/rtp/239.3.1.149:8076$1920x1080
|
||||
贵州卫视,http://221.198.182.240:8888/rtp/225.1.2.28:5002$1920x1080
|
||||
贵州卫视,http://123.144.22.32:8005/rtp/225.0.4.175:7980$1920x1080
|
||||
贵州卫视,http://171.116.191.164:8084/rtp/226.0.2.43:8256$720x576
|
||||
贵州卫视,http://183.185.222.245:8084/rtp/226.0.2.180:9352
|
||||
贵州卫视,http://183.185.222.245:8083/rtp/226.0.2.180:9352
|
||||
贵州卫视,http://183.185.222.245:8085/rtp/226.0.2.180:9352
|
||||
贵州卫视,http://118.81.48.104:8085/rtp/226.0.2.180:9352
|
||||
贵州卫视,http://183.185.222.245:8084/rtp/226.0.2.43:8256
|
||||
贵州卫视,http://183.185.222.245:8083/rtp/226.0.2.43:8256
|
||||
贵州卫视,http://183.185.222.245:8085/rtp/226.0.2.43:8256
|
||||
海南卫视,http://221.198.182.240:8888/rtp/225.1.2.82:5002$1920x1080
|
||||
海南卫视,http://171.117.245.185:8085/rtp/226.0.2.61:8400$720x576
|
||||
海南卫视,http://60.178.151.155:4022/rtp/233.50.201.55:5140$720x576
|
||||
海南卫视,http://114.252.229.100:8000/rtp/239.3.1.45:8304$720x576
|
||||
海南卫视,http://117.32.85.224:8014/rtp/239.112.205.50:5140$720x576
|
||||
海南卫视,http://sweetown.fun:4000/rtp/239.3.1.45:8304$720x576
|
||||
海南卫视,http://221.216.137.230:8012/rtp/239.3.1.45:8304$720x576
|
||||
海南卫视,http://183.185.222.245:8084/rtp/226.0.2.61:8400
|
||||
海南卫视,http://183.185.222.245:8083/rtp/226.0.2.61:8400
|
||||
海南卫视,http://183.185.222.245:8085/rtp/226.0.2.61:8400
|
||||
海南卫视,http://118.81.48.104:8085/rtp/226.0.2.61:8400
|
||||
海南卫视,http://183.185.222.245:8084/rtp/226.0.2.212:9608
|
||||
河北卫视,http://60.178.151.155:4022/rtp/233.50.201.140:5140$1920x1080
|
||||
河北卫视,http://114.252.229.100:8000/rtp/239.3.1.148:8072$1920x1080
|
||||
河北卫视,http://123.144.22.32:8005/rtp/225.0.4.174:7980$1920x1080
|
||||
河北卫视,http://221.198.182.240:8888/rtp/225.1.2.27:5002$1920x1080
|
||||
河北卫视,http://27.11.49.234:8001/rtp/225.0.4.174:7980$1920x1080
|
||||
河北卫视,http://117.32.85.224:8014/rtp/239.112.205.200:5140$1920x1080
|
||||
河北卫视,http://183.185.222.245:8084/rtp/226.0.2.178:9336
|
||||
河北卫视,http://183.185.222.245:8083/rtp/226.0.2.178:9336
|
||||
河北卫视,http://183.185.222.245:8085/rtp/226.0.2.178:9336
|
||||
河北卫视,http://118.81.48.104:8085/rtp/226.0.2.178:9336
|
||||
河北卫视,http://183.185.222.245:8084/rtp/226.0.2.65:8432
|
||||
河北卫视,http://183.185.222.245:8083/rtp/226.0.2.65:8432
|
||||
河南卫视,http://60.178.151.155:4022/rtp/233.50.201.144:5140$1920x1080
|
||||
河南卫视,http://221.198.182.240:8888/rtp/225.1.2.61:5002$1920x1080
|
||||
河南卫视,http://60.178.151.155:4022/rtp/233.50.201.44:5140$720x576
|
||||
河南卫视,http://114.252.229.100:8000/rtp/239.3.1.27:8128$720x576
|
||||
河南卫视,http://183.185.222.245:8085/rtp/226.0.2.195:9472$720x576
|
||||
河南卫视,http://171.116.191.164:8084/rtp/226.0.2.195:9472$720x576
|
||||
河南卫视,http://183.185.222.245:8084/rtp/226.0.2.52:8328
|
||||
河南卫视,http://183.185.222.245:8083/rtp/226.0.2.52:8328
|
||||
河南卫视,http://183.185.222.245:8085/rtp/226.0.2.52:8328
|
||||
河南卫视,http://118.81.48.104:8085/rtp/226.0.2.52:8328
|
||||
河南卫视,http://183.185.222.245:8084/rtp/226.0.2.195:9472
|
||||
河南卫视,http://183.185.222.245:8083/rtp/226.0.2.195:9472
|
||||
吉林卫视,http://sweetown.fun:4000/rtp/239.3.1.240:8172$1920x1080
|
||||
吉林卫视,http://221.198.182.240:8888/rtp/225.1.2.26:5002$1920x1080
|
||||
吉林卫视,http://111.165.222.109:8000/rtp/225.1.2.26:5002$1920x1080
|
||||
吉林卫视,http://60.10.225.157:555/rtp/239.253.92.202:6147$1920x1080
|
||||
吉林卫视,http://171.213.206.59:8000/rtp/239.93.0.248:5140$1920x1080
|
||||
吉林卫视,http://118.81.48.104:8083/rtp/226.0.2.58:8376$1920x1080
|
||||
吉林卫视,http://60.178.151.155:4022/rtp/233.50.201.48:5140$720x576
|
||||
吉林卫视,http://171.116.191.164:8084/rtp/226.0.2.199:9504$720x576
|
||||
吉林卫视,http://118.81.48.104:8083/rtp/226.0.2.199:9504$720x576
|
||||
吉林卫视,http://183.185.222.245:8084/rtp/226.0.2.58:8376
|
||||
吉林卫视,http://183.185.222.245:8083/rtp/226.0.2.58:8376
|
||||
吉林卫视,http://183.185.222.245:8085/rtp/226.0.2.58:8376
|
||||
江苏卫视,http://123.144.22.32:8005/rtp/225.0.4.79:7980$1920x1080
|
||||
江苏卫视,http://60.178.151.155:4022/rtp/233.50.201.106:5140$1920x1080
|
||||
江苏卫视,http://221.198.182.240:8888/rtp/225.1.1.126:5002$1920x1080
|
||||
江苏卫视,http://111.165.222.109:8000/rtp/225.1.1.126:5002$1920x1080
|
||||
江苏卫视,http://27.11.49.234:8001/rtp/225.0.4.79:7980$1920x1080
|
||||
江苏卫视,http://60.10.225.157:555/rtp/239.253.92.88:8018$1920x1080
|
||||
江苏卫视,http://60.178.151.155:4022/rtp/233.50.201.41:5140$720x576
|
||||
江苏卫视,http://183.185.222.245:8084/rtp/226.0.2.176:9320
|
||||
江苏卫视,http://183.185.222.245:8083/rtp/226.0.2.176:9320
|
||||
江苏卫视,http://183.185.222.245:8085/rtp/226.0.2.176:9320
|
||||
江苏卫视,http://118.81.48.104:8085/rtp/226.0.2.176:9320
|
||||
江苏卫视,http://183.185.222.245:8084/rtp/226.0.2.38:8216
|
||||
江西卫视,http://sweetown.fun:4000/rtp/239.3.1.123:8164$1920x1080
|
||||
江西卫视,http://221.198.182.240:8888/rtp/225.1.2.29:5002$1920x1080
|
||||
江西卫视,http://60.178.151.155:4022/rtp/233.50.201.145:5140$1920x1080
|
||||
江西卫视,http://60.178.151.155:4022/rtp/233.50.201.53:5140$720x576
|
||||
江西卫视,http://183.185.222.245:8084/rtp/226.0.2.54:8344
|
||||
江西卫视,http://183.185.222.245:8083/rtp/226.0.2.54:8344
|
||||
江西卫视,http://183.185.222.245:8085/rtp/226.0.2.54:8344
|
||||
江西卫视,http://118.81.48.104:8085/rtp/226.0.2.54:8344
|
||||
江西卫视,http://183.185.222.245:8084/rtp/226.0.2.198:9496
|
||||
江西卫视,http://183.185.222.245:8083/rtp/226.0.2.198:9496
|
||||
江西卫视,http://183.185.222.245:8085/rtp/226.0.2.198:9496
|
||||
江西卫视,http://118.81.48.104:8085/rtp/226.0.2.198:9496
|
||||
江西卫视,http://123.144.22.32:8005/rtp/225.0.4.203:7980
|
||||
辽宁卫视,http://60.178.151.155:4022/rtp/233.50.201.141:5140$1920x1080
|
||||
辽宁卫视,http://sweetown.fun:4000/rtp/239.3.1.210:8056$1920x1080
|
||||
辽宁卫视,http://111.165.222.109:8000/rtp/225.1.1.154:5002$1920x1080
|
||||
辽宁卫视,http://123.144.22.32:8005/rtp/225.0.4.98:7980$1920x1080
|
||||
辽宁卫视,http://27.11.49.234:8001/rtp/225.0.4.98:7980$1920x1080
|
||||
辽宁卫视,http://221.198.182.240:8888/rtp/225.1.1.154:5002$1920x1080
|
||||
辽宁卫视,http://60.178.151.155:4022/rtp/233.50.201.60:5140$720x576
|
||||
辽宁卫视,http://118.81.48.104:8084/rtp/226.0.2.35:8192$720x576
|
||||
辽宁卫视,http://183.185.222.245:8084/rtp/226.0.2.173:9296
|
||||
辽宁卫视,http://183.185.222.245:8083/rtp/226.0.2.173:9296
|
||||
辽宁卫视,http://183.185.222.245:8085/rtp/226.0.2.173:9296
|
||||
辽宁卫视,http://118.81.48.104:8085/rtp/226.0.2.173:9296
|
||||
辽宁卫视,http://183.185.222.245:8084/rtp/226.0.2.35:8192
|
||||
辽宁卫视,http://183.185.222.245:8083/rtp/226.0.2.35:8192
|
||||
内蒙古卫视,http://114.252.229.100:8000/rtp/239.3.1.43:8176$720x576
|
||||
内蒙古卫视,http://117.32.85.224:8014/rtp/239.112.205.55:5140$720x576
|
||||
内蒙古卫视,http://111.165.222.109:8000/rtp/225.1.1.32:5002$720x576
|
||||
内蒙古卫视,http://171.116.191.164:8084/rtp/226.0.2.63:8416$720x576
|
||||
内蒙古卫视,http://xeace.cn:8888/rtp/239.93.0.8:5140$720x576
|
||||
内蒙古卫视,http://221.198.182.240:8888/rtp/225.1.1.32:5002$720x576
|
||||
内蒙古卫视,http://221.216.137.230:8012/rtp/239.3.1.43:8176$720x576
|
||||
内蒙古卫视,http://114.246.181.171:4022/rtp/239.3.1.43:8176$720x576
|
||||
内蒙古卫视,http://183.185.222.245:8085/rtp/226.0.2.63:8416$720x576
|
||||
内蒙古卫视,http://183.185.222.245:8084/rtp/226.0.2.63:8416
|
||||
内蒙古卫视,http://183.185.222.245:8083/rtp/226.0.2.63:8416
|
||||
内蒙古卫视,http://183.185.222.245:8085/rtp/226.0.2.63:8416
|
||||
内蒙古卫视,http://118.81.48.104:8085/rtp/226.0.2.63:8416
|
||||
宁夏卫视,http://114.252.229.100:8000/rtp/239.3.1.46:8124$720x576
|
||||
宁夏卫视,http://60.178.151.155:4022/rtp/233.50.201.57:5140$720x576
|
||||
宁夏卫视,http://183.185.222.245:8085/rtp/226.0.2.64:8424$720x576
|
||||
宁夏卫视,http://xeace.cn:8888/rtp/239.93.0.247:5140$720x576
|
||||
宁夏卫视,http://171.213.206.59:8000/rtp/239.93.0.247:5140$720x576
|
||||
宁夏卫视,http://221.198.182.240:8888/rtp/225.1.1.56:5002$720x576
|
||||
宁夏卫视,http://221.216.137.230:8012/rtp/239.3.1.46:8124$720x576
|
||||
宁夏卫视,http://114.246.181.171:4022/rtp/239.3.1.46:8124$720x576
|
||||
宁夏卫视,http://117.32.85.224:8014/rtp/239.112.205.49:5140$720x576
|
||||
宁夏卫视,http://xeace.cn:8888/rtp/239.93.1.212:5140$576x320
|
||||
宁夏卫视,http://183.185.222.245:8084/rtp/226.0.2.64:8424
|
||||
宁夏卫视,http://183.185.222.245:8083/rtp/226.0.2.64:8424
|
||||
宁夏卫视,http://183.185.222.245:8085/rtp/226.0.2.64:8424
|
||||
青海卫视,http://114.252.229.100:8000/rtp/239.3.1.44:8184$720x576
|
||||
青海卫视,http://60.178.151.155:4022/rtp/233.50.201.65:5140$720x576
|
||||
青海卫视,http://117.32.85.224:8014/rtp/239.112.205.53:5140$720x576
|
||||
青海卫视,http://183.185.222.245:8085/rtp/226.0.2.59:8384$720x576
|
||||
青海卫视,http://111.165.222.109:8000/rtp/225.1.1.54:5002$720x576
|
||||
青海卫视,http://xeace.cn:8888/rtp/239.93.0.192:5140$720x576
|
||||
青海卫视,http://171.116.191.164:8084/rtp/226.0.2.59:8384$720x576
|
||||
青海卫视,http://171.213.206.59:8000/rtp/239.93.0.192:5140$720x576
|
||||
青海卫视,http://221.198.182.240:8888/rtp/225.1.1.54:5002$720x576
|
||||
青海卫视,http://221.216.137.230:8012/rtp/239.3.1.44:8184$720x576
|
||||
青海卫视,http://183.185.222.245:8084/rtp/226.0.2.59:8384
|
||||
青海卫视,http://183.185.222.245:8083/rtp/226.0.2.59:8384
|
||||
青海卫视,http://183.185.222.245:8085/rtp/226.0.2.59:8384
|
||||
山东卫视,http://114.252.229.100:8000/rtp/239.3.1.209:8052$1920x1080
|
||||
山东卫视,http://60.7.56.33:4000/rtp/239.253.92.207:8109$1920x1080
|
||||
山东卫视,http://60.178.151.155:4022/rtp/233.50.201.105:5140$1920x1080
|
||||
山东卫视,http://120.10.101.13:4000/rtp/239.253.92.207:8109$1920x1080
|
||||
山东卫视,http://60.10.225.157:555/rtp/239.253.92.207:8109$1920x1080
|
||||
山东卫视,http://27.11.49.234:8001/rtp/225.0.4.199:7980$1920x1080
|
||||
山东卫视,http://123.144.22.32:8005/rtp/225.0.4.199:7980$1920x1080
|
||||
山东卫视,http://60.178.151.155:4022/rtp/233.50.201.64:5140$720x576
|
||||
山东卫视,http://183.185.222.245:8085/rtp/226.0.2.51:8320$720x576
|
||||
山东卫视,http://183.185.222.245:8084/rtp/226.0.2.149:9104
|
||||
山东卫视,http://183.185.222.245:8083/rtp/226.0.2.149:9104
|
||||
山东卫视,http://183.185.222.245:8085/rtp/226.0.2.149:9104
|
||||
山西卫视,http://114.252.229.100:8000/rtp/239.3.1.42:8172$720x576
|
||||
山西卫视,http://60.178.151.155:4022/rtp/233.50.201.51:5140$720x576
|
||||
山西卫视,http://117.32.85.224:8014/rtp/239.112.205.46:5140$720x576
|
||||
山西卫视,http://171.213.146.138:5555/rtp/239.93.0.6:5140$720x576
|
||||
山西卫视,http://sweetown.fun:4000/rtp/239.3.1.42:8172$720x576
|
||||
山西卫视,http://111.165.222.109:8000/rtp/225.1.1.50:5002$720x576
|
||||
山西卫视,http://171.116.191.164:8084/rtp/226.0.2.11:8000$720x576
|
||||
山西卫视,http://171.213.206.59:8000/rtp/239.93.0.6:5140$720x576
|
||||
山西卫视,http://221.198.182.240:8888/rtp/225.1.1.50:5002$720x576
|
||||
山西卫视,http://221.216.137.230:8012/rtp/239.3.1.42:8172$720x576
|
||||
山西卫视,http://xeace.cn:8888/rtp/239.93.1.207:5140$576x320
|
||||
山西卫视,http://183.185.222.245:8084/rtp/226.0.2.11:8000
|
||||
山西卫视,http://183.185.222.245:8083/rtp/226.0.2.11:8000
|
||||
陕西卫视,http://117.32.85.224:8014/rtp/239.111.205.35:5140$1920x1080
|
||||
陕西卫视,http://114.252.229.100:8000/rtp/239.3.1.41:8140$720x576
|
||||
陕西卫视,http://60.178.151.155:4022/rtp/233.50.201.59:5140$720x576
|
||||
陕西卫视,http://sweetown.fun:4000/rtp/239.3.1.41:8140$720x576
|
||||
陕西卫视,http://183.185.222.245:8085/rtp/226.0.2.53:8336$720x576
|
||||
陕西卫视,http://111.165.222.109:8000/rtp/225.1.1.41:5002$720x576
|
||||
陕西卫视,http://221.198.182.240:8888/rtp/225.1.1.41:5002$720x576
|
||||
陕西卫视,http://221.216.137.230:8012/rtp/239.3.1.41:8140$720x576
|
||||
陕西卫视,http://183.185.222.245:8084/rtp/226.0.2.53:8336
|
||||
陕西卫视,http://183.185.222.245:8083/rtp/226.0.2.53:8336
|
||||
陕西卫视,http://183.185.222.245:8085/rtp/226.0.2.53:8336
|
||||
陕西卫视,http://118.81.48.104:8085/rtp/226.0.2.53:8336
|
||||
陕西卫视,http://118.81.48.104:8083/rtp/226.0.2.53:8336
|
||||
四川卫视,http://171.213.206.59:8000/rtp/239.93.0.20:1235$1920x1080
|
||||
四川卫视,http://111.165.222.109:8000/rtp/225.1.1.123:5002$1920x1080
|
||||
四川卫视,http://60.10.225.157:555/rtp/239.253.92.16:6043$1920x1080
|
||||
四川卫视,http://221.198.182.240:8888/rtp/225.1.1.123:5002$1920x1080
|
||||
四川卫视,http://sweetown.fun:4000/rtp/239.3.1.29:8288$720x576
|
||||
四川卫视,http://123.144.22.32:8005/rtp/225.0.4.204:7980$720x576
|
||||
四川卫视,http://xeace.cn:8888/rtp/239.93.1.88:5140$576x320
|
||||
四川卫视,http://183.185.222.245:8084/rtp/226.0.2.179:9344
|
||||
四川卫视,http://183.185.222.245:8083/rtp/226.0.2.179:9344
|
||||
四川卫视,http://183.185.222.245:8085/rtp/226.0.2.179:9344
|
||||
四川卫视,http://118.81.48.104:8085/rtp/226.0.2.179:9344
|
||||
四川卫视,http://183.185.222.245:8084/rtp/226.0.2.42:8248
|
||||
深圳卫视,http://120.10.101.13:4000/rtp/239.253.92.86:8017$1920x1080
|
||||
深圳卫视,http://60.10.225.157:555/rtp/239.253.92.86:8017$1920x1080
|
||||
深圳卫视,http://111.165.222.109:8000/rtp/225.1.1.117:5002$1920x1080
|
||||
深圳卫视,http://171.213.206.59:8000/rtp/239.93.0.182:5140$1920x1080
|
||||
深圳卫视,http://183.185.222.245:8085/rtp/226.0.2.147:9088$1920x1080
|
||||
深圳卫视,http://221.198.182.240:8888/rtp/225.1.1.117:5002$1920x1080
|
||||
深圳卫视,http://171.116.191.164:8084/rtp/226.0.2.47:8288$720x576
|
||||
深圳卫视,http://183.185.222.245:8084/rtp/226.0.2.147:9088
|
||||
深圳卫视,http://183.185.222.245:8083/rtp/226.0.2.147:9088
|
||||
深圳卫视,http://183.185.222.245:8085/rtp/226.0.2.147:9088
|
||||
深圳卫视,http://118.81.48.104:8085/rtp/226.0.2.147:9088
|
||||
深圳卫视,http://183.185.222.245:8084/rtp/226.0.2.47:8288
|
||||
三沙卫视,http://222.138.212.223:9999/rtp/225.1.4.234:1280$720x576
|
||||
三沙卫视,http://sweetown.fun:4000/rtp/239.3.1.155:4120$720x576
|
||||
三沙卫视,http://171.213.137.173:8088/rtp/239.93.42.58:5140$720x576
|
||||
三沙卫视,http://114.243.104.92:8888/rtp/239.3.1.155:4120$720x576
|
||||
三沙卫视,http://123.123.167.240:8000/rtp/239.3.1.155:4120$720x576
|
||||
三沙卫视,http://111.165.222.109:8000/rtp/225.1.2.181:5002$720x576
|
||||
三沙卫视,http://xeace.cn:8888/rtp/239.93.42.58:5140$720x576
|
||||
三沙卫视,http://171.213.206.59:8000/rtp/239.93.42.58:5140$720x576
|
||||
三沙卫视,http://221.198.182.240:8888/rtp/225.1.2.181:5002$720x576
|
||||
三沙卫视,http://221.216.137.230:8012/rtp/239.3.1.155:4120$720x576
|
||||
三沙卫视,http://114.252.229.100:8000/rtp/239.3.1.155:4120
|
||||
三沙卫视,http://114.240.43.183:8888/rtp/239.3.1.155:4120
|
||||
三沙卫视,http://221.216.137.230:8012/rtp/239.3.1.155:4120
|
||||
三沙卫视,http://171.213.128.130:8123/rtp/239.93.42.58:5140
|
||||
天津卫视,http://60.178.151.155:4022/rtp/233.50.201.104:5140$1920x1080
|
||||
天津卫视,http://60.7.56.33:4000/rtp/239.253.92.91:8021$1920x1080
|
||||
天津卫视,http://221.198.182.240:8888/rtp/225.1.1.111:5002$1920x1080
|
||||
天津卫视,http://123.144.22.32:8005/rtp/225.0.4.82:7980$1920x1080
|
||||
天津卫视,http://60.178.151.155:4022/rtp/233.50.201.47:5140$720x576
|
||||
天津卫视,http://183.185.222.245:8084/rtp/226.0.2.148:9096
|
||||
天津卫视,http://183.185.222.245:8083/rtp/226.0.2.148:9096
|
||||
天津卫视,http://183.185.222.245:8085/rtp/226.0.2.148:9096
|
||||
天津卫视,http://118.81.48.104:8085/rtp/226.0.2.148:9096
|
||||
天津卫视,http://183.185.222.245:8084/rtp/226.0.2.56:8360
|
||||
天津卫视,http://183.185.222.245:8083/rtp/226.0.2.56:8360
|
||||
天津卫视,http://183.185.222.245:8085/rtp/226.0.2.56:8360
|
||||
天津卫视,http://118.81.48.104:8085/rtp/226.0.2.56:8360
|
||||
西藏卫视,http://114.252.229.100:8000/rtp/239.3.1.47:8164$720x576
|
||||
西藏卫视,http://60.178.151.155:4022/rtp/233.50.201.70:5140$720x576
|
||||
西藏卫视,http://117.32.85.224:8014/rtp/239.112.205.54:5140$720x576
|
||||
西藏卫视,http://183.185.222.245:8085/rtp/226.0.2.66:8440$720x576
|
||||
西藏卫视,http://xeace.cn:8888/rtp/239.93.0.175:5140$720x576
|
||||
西藏卫视,http://171.116.191.164:8084/rtp/226.0.2.66:8440$720x576
|
||||
西藏卫视,http://171.213.206.59:8000/rtp/239.93.0.175:5140$720x576
|
||||
西藏卫视,http://221.198.182.240:8888/rtp/225.1.1.51:5002$720x576
|
||||
西藏卫视,http://221.216.137.230:8012/rtp/239.3.1.47:8164$720x576
|
||||
西藏卫视,http://183.185.222.245:8084/rtp/226.0.2.66:8440
|
||||
西藏卫视,http://183.185.222.245:8083/rtp/226.0.2.66:8440
|
||||
新疆卫视,http://114.252.229.100:8000/rtp/239.3.1.48:8160$720x576
|
||||
新疆卫视,http://111.165.222.109:8000/rtp/225.1.1.35:5002$720x576
|
||||
新疆卫视,http://sweetown.fun:4000/rtp/239.3.1.48:8160$720x576
|
||||
新疆卫视,http://171.116.191.164:8084/rtp/226.0.2.67:8448$720x576
|
||||
新疆卫视,http://171.213.206.59:8000/rtp/239.93.0.194:5140$720x576
|
||||
新疆卫视,http://221.198.182.240:8888/rtp/225.1.1.35:5002$720x576
|
||||
新疆卫视,http://221.216.137.230:8012/rtp/239.3.1.48:8160$720x576
|
||||
新疆卫视,http://114.246.181.171:4022/rtp/239.3.1.48:8160$720x576
|
||||
新疆卫视,http://117.32.85.224:8014/rtp/239.112.205.56:5140$720x576
|
||||
新疆卫视,http://183.185.222.245:8084/rtp/226.0.2.67:8448
|
||||
新疆卫视,http://183.185.222.245:8083/rtp/226.0.2.67:8448
|
||||
新疆卫视,http://183.185.222.245:8085/rtp/226.0.2.67:8448
|
||||
新疆卫视,http://118.81.48.104:8085/rtp/226.0.2.67:8448
|
||||
新疆卫视,http://118.81.48.104:8083/rtp/226.0.2.67:8448
|
||||
云南卫视,http://60.178.151.155:4022/rtp/233.50.200.115:5140$1920x1080
|
||||
云南卫视,http://222.138.212.223:9999/rtp/225.1.4.152:1307$1920x1080
|
||||
云南卫视,http://60.178.151.155:4022/rtp/233.50.201.46:5140$720x576
|
||||
云南卫视,http://114.252.229.100:8000/rtp/239.3.1.26:8108$720x576
|
||||
云南卫视,http://117.32.85.224:8014/rtp/239.112.205.58:5140$720x576
|
||||
云南卫视,http://183.185.222.245:8085/rtp/226.0.2.60:8392$720x576
|
||||
云南卫视,http://171.116.191.164:8084/rtp/226.0.2.60:8392$720x576
|
||||
云南卫视,http://221.198.182.240:8888/rtp/225.1.1.61:5002$720x576
|
||||
云南卫视,http://183.185.222.245:8084/rtp/226.0.2.60:8392
|
||||
云南卫视,http://183.185.222.245:8083/rtp/226.0.2.60:8392
|
||||
云南卫视,http://183.185.222.245:8085/rtp/226.0.2.60:8392
|
||||
云南卫视,http://118.81.48.104:8085/rtp/226.0.2.60:8392
|
||||
云南卫视,http://118.81.48.104:8083/rtp/226.0.2.60:8392
|
||||
青海卫视,http://stream.qhbtv.com/qhws/sd/live.m3u8
|
||||
延边卫视,http://live.ybtvyun.com/video/s10006-44f040627ca1/index.m3u8
|
||||
延边卫视,http://live.ybtvyun.com/video/s10006-28bc40431485/index.m3u8
|
||||
@ -45,15 +660,11 @@ CCTV12,http://1.195.111.251:11190/tsfile/live/0012_1.m3u8?%E5%BE%AE%E4%BF%A1%E5%
|
||||
延边卫视,http://live.ybtvyun.com/video/s10016-6f0dfd97912f/index.m3u8
|
||||
延边卫视,http://live.ybtvyun.com/video/s10006-44f040627ca1/index.m3u8
|
||||
延边卫视,http://live.ybtvyun.com/video/s10006-90fe76c52091/index.m3u8
|
||||
东方卫视,http://223.112.219.174:9901/tsfile/live/0107_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
北京卫视,http://223.112.219.174:9901/tsfile/live/0122_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
浙江卫视,http://223.112.219.174:9901/tsfile/live/0124_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
湖南卫视,http://223.112.219.174:9901/tsfile/live/0128_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
|
||||
|
||||
IPV6,#genre#
|
||||
CCTV-1 综合,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226559/index.m3u8
|
||||
CCTV-2 财经,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226540/index.m3u8
|
||||
CCTV-2 财经,http://[2409:8087:5e00:24::1e]:6060/200000001898/460000089800010211/1.m3u8
|
||||
CCTV-3 综艺,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226021/index.m3u8
|
||||
CCTV-4 中文国际,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226428/index.m3u8
|
||||
CCTV-5 体育,http://[2409:8087:1a01:df::4077]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226019/index.m3u8
|
||||
@ -79,6 +690,9 @@ CGTN俄语,https://0472.org/hls/cgtne.m3u8
|
||||
CGTN法语,https://0472.org/hls/cgtnf.m3u8
|
||||
CGTN西语,https://0472.org/hls/cgtnx.m3u8
|
||||
CGTN阿语,https://0472.org/hls/cgtna.m3u8
|
||||
凤凰中文,http://58.144.154.93/qctv.fengshows.cn/live/0701pcc72.m3u8
|
||||
凤凰资讯,http://58.144.154.93/qctv.fengshows.cn/live/0701pin72.m3u8
|
||||
凤凰香港,http://58.144.154.93/qctv.fengshows.cn/live/0701phk72.m3u8
|
||||
北京卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226450/index.m3u8
|
||||
湖南卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226307/index.m3u8
|
||||
东方卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226345/index.m3u8
|
||||
@ -134,15 +748,15 @@ CETV-4,http://[2409:8087:1a0b:df::4020]:80/ottrrs.hl.chinamobile.com/PLTV/888888
|
||||
动漫秀场,http://[2409:8087:5e00:24::1e]:6060/000000001000/5000000011000031113/1.m3u8
|
||||
嘉佳卡通,http://[2409:8087:5e00:24::1e]:6060/000000001000/1000000002000025964/1.m3u8
|
||||
哒啵赛事,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225675/index.m3u8
|
||||
哒啵电竞,http://[2409:8087:5e08:24::11]:6610/000000001000/2000000003000000066/index.m3u8?stbId=3&livemode=1&HlsProfileId=&channel-id=hnbblive&Contentid=2000000003000000066&IASHttpSessionId=OTT19019320240419154124000281
|
||||
哒啵电竞,http://[2409:8087:5e01:24::16]:6610/000000001000/2000000003000000066/index.m3u8?stbId=3&livemode=1&HlsProfileId=&channel-id=hnbblive&Contentid=2000000003000000066&IASHttpSessionId=OTT19019320240419154124000281
|
||||
优漫卡通,http://[2409:8087:1a0b:df::4005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225656/index.m3u8
|
||||
哈哈炫动,http://[2409:8087:1a0b:df::4001]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225657/index.m3u8
|
||||
黑莓动画,http://[2409:8087:1a0b:df::4006]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225662/index.m3u8
|
||||
黑莓电影,http://[2409:8087:1a0b:df::4014]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225743/index.m3u8
|
||||
求索纪录,http://[2409:8087:5e08:24::11]:6610/000000001000/2000000004000000010/index.m3u8?stbId=3&livemode=1&HlsProfileId=&channel-id=hnbblive&Contentid=2000000004000000010&IASHttpSessionId=OTT19019320240419154124000281
|
||||
求索生活,http://[2409:8087:5e08:24::11]:6610/000000001000/2000000004000000008/index.m3u8?stbId=3&livemode=1&HlsProfileId=&channel-id=hnbblive&Contentid=2000000004000000008&IASHttpSessionId=OTT19019320240419154124000281
|
||||
求索动物,http://[2409:8087:5e08:24::11]:6610/000000001000/2000000004000000009/index.m3u8?stbId=3&livemode=1&HlsProfileId=&channel-id=hnbblive&Contentid=2000000004000000009&IASHttpSessionId=OTT19019320240419154124000281
|
||||
求索科学,http://[2409:8087:5e08:24::11]:6610/000000001000/2000000004000000011/index.m3u8?stbId=3&livemode=1&HlsProfileId=&channel-id=hnbblive&Contentid=2000000004000000011&IASHttpSessionId=OTT19019320240419154124000281
|
||||
求索纪录,http://[2409:8087:5e01:24::16]:6610/000000001000/2000000004000000010/index.m3u8?stbId=3&livemode=1&HlsProfileId=&channel-id=hnbblive&Contentid=2000000004000000010&IASHttpSessionId=OTT19019320240419154124000281
|
||||
求索生活,http://[2409:8087:5e01:24::16]:6610/000000001000/2000000004000000008/index.m3u8?stbId=3&livemode=1&HlsProfileId=&channel-id=hnbblive&Contentid=2000000004000000008&IASHttpSessionId=OTT19019320240419154124000281
|
||||
求索动物,http://[2409:8087:5e01:24::16]:6610/000000001000/2000000004000000009/index.m3u8?stbId=3&livemode=1&HlsProfileId=&channel-id=hnbblive&Contentid=2000000004000000009&IASHttpSessionId=OTT19019320240419154124000281
|
||||
求索科学,http://[2409:8087:5e01:24::16]:6610/000000001000/2000000004000000011/index.m3u8?stbId=3&livemode=1&HlsProfileId=&channel-id=hnbblive&Contentid=2000000004000000011&IASHttpSessionId=OTT19019320240419154124000281
|
||||
超级体育,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225715/index.m3u8
|
||||
超级电影,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225717/index.m3u8
|
||||
超级视剧,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225716/index.m3u8
|
||||
@ -162,15 +776,15 @@ CETV-4,http://[2409:8087:1a0b:df::4020]:80/ottrrs.hl.chinamobile.com/PLTV/888888
|
||||
精品萌宠,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226505/index.m3u8
|
||||
超级综艺,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225714/index.m3u8
|
||||
金牌综艺,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225666/index.m3u8
|
||||
上海新闻,http://[2409:8087:5e08:24::11]:6610/000000001000/2000000002000000005/index.m3u8?stbId=3&livemode=1&HlsProfileId=&channel-id=hnbblive&Contentid=2000000002000000005&IASHttpSessionId=OTT19019320240419154124000281
|
||||
上海都市,http://[2409:8087:5e08:24::11]:6610/000000001000/2000000002000000012/index.m3u8?stbId=3&livemode=1&HlsProfileId=&channel-id=hnbblive&Contentid=2000000002000000012&IASHttpSessionId=OTT19019320240419154124000281
|
||||
上海外语,http://[2409:8087:5e08:24::11]:6610/000000001000/2000000002000000001/index.m3u8?stbId=3&livemode=1&HlsProfileId=&channel-id=hnbblive&Contentid=2000000002000000001&IASHttpSessionId=OTT19019320240419154124000281
|
||||
七彩戏剧,http://[2409:8087:5e08:24::11]:6610/000000001000/2000000002000000010/index.m3u8?stbId=3&livemode=1&HlsProfileId=&channel-id=hnbblive&Contentid=2000000002000000010&IASHttpSessionId=OTT19019320240419154124000281
|
||||
五星体育,http://[2409:8087:5e08:24::11]:6610/000000001000/2000000002000000007/index.m3u8?stbId=3&livemode=1&HlsProfileId=&channel-id=hnbblive&Contentid=2000000002000000007&IASHttpSessionId=OTT19019320240419154124000281
|
||||
东方影视,http://[2409:8087:5e08:24::11]:6610/000000001000/2000000002000000013/index.m3u8?stbId=3&livemode=1&HlsProfileId=&channel-id=hnbblive&Contentid=2000000002000000013&IASHttpSessionId=OTT19019320240419154124000281
|
||||
东方财经,http://[2409:8087:5e08:24::11]:6610/000000001000/2000000002000000090/index.m3u8?stbId=3&livemode=1&HlsProfileId=&channel-id=hnbblive&Contentid=2000000002000000090&IASHttpSessionId=OTT19019320240419154124000281
|
||||
法治天地,http://[2409:8087:5e08:24::11]:6610/000000001000/2000000002000000014/index.m3u8?stbId=3&livemode=1&HlsProfileId=&channel-id=hnbblive&Contentid=2000000002000000014&IASHttpSessionId=OTT19019320240419154124000281
|
||||
第一财经,http://[2409:8087:5e08:24::11]:6610/000000001000/2000000002000000004/index.m3u8?stbId=3&livemode=1&HlsProfileId=&channel-id=hnbblive&Contentid=2000000002000000004&IASHttpSessionId=OTT19019320240419154124000281
|
||||
上海新闻,http://[2409:8087:5e01:24::16]:6610/000000001000/2000000002000000005/index.m3u8?stbId=3&livemode=1&HlsProfileId=&channel-id=hnbblive&Contentid=2000000002000000005&IASHttpSessionId=OTT19019320240419154124000281
|
||||
上海都市,http://[2409:8087:5e01:24::16]:6610/000000001000/2000000002000000012/index.m3u8?stbId=3&livemode=1&HlsProfileId=&channel-id=hnbblive&Contentid=2000000002000000012&IASHttpSessionId=OTT19019320240419154124000281
|
||||
上海外语,http://[2409:8087:5e01:24::16]:6610/000000001000/2000000002000000001/index.m3u8?stbId=3&livemode=1&HlsProfileId=&channel-id=hnbblive&Contentid=2000000002000000001&IASHttpSessionId=OTT19019320240419154124000281
|
||||
七彩戏剧,http://[2409:8087:5e01:24::16]:6610/000000001000/2000000002000000010/index.m3u8?stbId=3&livemode=1&HlsProfileId=&channel-id=hnbblive&Contentid=2000000002000000010&IASHttpSessionId=OTT19019320240419154124000281
|
||||
五星体育,http://[2409:8087:5e01:24::16]:6610/000000001000/2000000002000000007/index.m3u8?stbId=3&livemode=1&HlsProfileId=&channel-id=hnbblive&Contentid=2000000002000000007&IASHttpSessionId=OTT19019320240419154124000281
|
||||
东方影视,http://[2409:8087:5e01:24::16]:6610/000000001000/2000000002000000013/index.m3u8?stbId=3&livemode=1&HlsProfileId=&channel-id=hnbblive&Contentid=2000000002000000013&IASHttpSessionId=OTT19019320240419154124000281
|
||||
东方财经,http://[2409:8087:5e01:24::16]:6610/000000001000/2000000002000000090/index.m3u8?stbId=3&livemode=1&HlsProfileId=&channel-id=hnbblive&Contentid=2000000002000000090&IASHttpSessionId=OTT19019320240419154124000281
|
||||
法治天地,http://[2409:8087:5e01:24::16]:6610/000000001000/2000000002000000014/index.m3u8?stbId=3&livemode=1&HlsProfileId=&channel-id=hnbblive&Contentid=2000000002000000014&IASHttpSessionId=OTT19019320240419154124000281
|
||||
第一财经,http://[2409:8087:5e01:24::16]:6610/000000001000/2000000002000000004/index.m3u8?stbId=3&livemode=1&HlsProfileId=&channel-id=hnbblive&Contentid=2000000002000000004&IASHttpSessionId=OTT19019320240419154124000281
|
||||
浙江新闻,https://ali-m-l.cztv.com/channels/lantian/channel007/1080p.m3u8
|
||||
浙江国际,https://ali-m-l.cztv.com/channels/lantian/channel010/1080p.m3u8
|
||||
浙江少儿,https://ali-m-l.cztv.com/channels/lantian/channel008/1080p.m3u8
|
||||
@ -261,8 +875,6 @@ key=0b292c335e5837e947f9409c59228f3e6
|
||||
哈尔滨影,http://stream.hrbtv.net/yspd/sd/live.m3u8?zheild
|
||||
哈尔滨生活,http://stream.hrbtv.net/shpd/sd/live.m3u8?zheild
|
||||
哈尔滨娱乐,http://stream.hrbtv.net/ylpd/sd/live.m3u8?zheild
|
||||
伊春综合,http://live.yichuntv.com/e5d7b4b95cf849d79fa3964431dca1f3/h264_800k_ts/index.m3u8?type=flv2hls_m3u8?zheild
|
||||
伊春公共,http://live.yichuntv.com/1501fae792774811b2cd1366a078e666/h264_800k_ts/index.m3u8?type=flv2hls_m3u8?zheild
|
||||
达茂综合,http://pili-live-hls.nmgapp12019.sobeylive.com/nmgapp12019/live164301116493025.m3u8?zneimd
|
||||
库伦旗电视台,http://pili-live-hls.nmgapp12019.sobeylive.com/nmgapp12019/live161942247484390.m3u8?zneimd
|
||||
奈曼旗电视台,http://pili-live-hls.nmgapp12019.sobeylive.com/nmgapp12019/live161888593025926.m3u8?zneimd
|
||||
|
BIN
南风/spider.jar
BIN
南风/spider.jar
Binary file not shown.
75
小米/api.json
75
小米/api.json
@ -10,16 +10,6 @@
|
||||
"api": "csp_Douban",
|
||||
"searchable": 0
|
||||
},
|
||||
{
|
||||
"key": "csp_瓜子",
|
||||
"name": "🌰瓜子┃1080P",
|
||||
"api": "csp_Gz360",
|
||||
"type": 3,
|
||||
"searchable": 1,
|
||||
"playerType": 2,
|
||||
"timeout": 30,
|
||||
"changeable": 0
|
||||
},
|
||||
{
|
||||
"key": "csp_wanou",
|
||||
"name": "🧸玩偶┃盘聚4K",
|
||||
@ -70,6 +60,28 @@
|
||||
"filterable": 1,
|
||||
"ext": ""
|
||||
},
|
||||
{
|
||||
"key": "csp_JPYY",
|
||||
"name": "🥇金牌┃1080P",
|
||||
"type": 3,
|
||||
"searchable": 1,
|
||||
"changeable": 1,
|
||||
"api": "csp_Jpyy",
|
||||
"playerType": 1,
|
||||
"filterable": 1,
|
||||
"ext": ""
|
||||
},
|
||||
{
|
||||
"key": "csp_subaobai",
|
||||
"name": "✍️白白┃1080P",
|
||||
"type": 3,
|
||||
"searchable": 1,
|
||||
"changeable": 1,
|
||||
"api": "csp_SuBaiBai",
|
||||
"playerType": 1,
|
||||
"filterable": 1,
|
||||
"ext": ""
|
||||
},
|
||||
{
|
||||
"key": "君君",
|
||||
"name": "🚗君君┃1080P",
|
||||
@ -100,7 +112,7 @@
|
||||
"key": "hipy_js_腾云驾雾[官]",
|
||||
"name": "🌞腾腾┃解析",
|
||||
"type": 3,
|
||||
"api": "./api/drpy2.min.js",
|
||||
"api": "./api/drpy.min.js",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
@ -112,7 +124,7 @@
|
||||
"key": "guoguo",
|
||||
"name": "🌞果果┃解析",
|
||||
"type": 3,
|
||||
"api": "./api/drpy2.min.js",
|
||||
"api": "./api/drpy.min.js",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
@ -124,7 +136,7 @@
|
||||
"key": "摘星",
|
||||
"name": "✨摘星┃解析",
|
||||
"type": 3,
|
||||
"api": "./api/drpy2.min.js",
|
||||
"api": "./api/drpy.min.js",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
@ -156,6 +168,7 @@
|
||||
"name": "🥛耐看┃1080P",
|
||||
"type": 3,
|
||||
"changeable": 0,
|
||||
"click": "document.querySelector(\"#playleft iframe\").contentWindow.document.querySelector(\"#start\").click();",
|
||||
"api": "csp_Nkdy",
|
||||
"playerType": 2,
|
||||
"filterable": 1
|
||||
@ -186,7 +199,7 @@
|
||||
"searchable": 1,
|
||||
"quickSearch": 0,
|
||||
"changeable": 0,
|
||||
"ext": "./json/bilibili.json"
|
||||
"ext": "./json/Bili.json"
|
||||
},
|
||||
{
|
||||
"key": "csp_农民",
|
||||
@ -292,38 +305,6 @@
|
||||
"跳转播放链接": "url\"*\"&&\""
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "文采影视",
|
||||
"name": "🌼文采┃1080P",
|
||||
"type": 3,
|
||||
"api": "csp_XBPQ",
|
||||
"changeable": 0,
|
||||
"jar": "./jars/小米.jar",
|
||||
"ext": {
|
||||
"主页url": "https://www.hkybqufgh.com/",
|
||||
"播放请求头": "User-Agent$Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36",
|
||||
"简介": "</label>&&</div>",
|
||||
"嗅探词": "m3u8",
|
||||
"影片类型": "tags\">&&director\">",
|
||||
"影片状态": "bottom\">&&</div>",
|
||||
"二次截取": "videoList\":\\[&&\\]",
|
||||
"数组": "{&&}[不包含:伦理剧]",
|
||||
"图片": "https+://ywxohs.com+obs.gduamoe.com&&\",",
|
||||
"标题": "vodName\":\"&&\"",
|
||||
"副标题": "vodRemarks\":\"&&\"",
|
||||
"链接": "https://www.hkybqufgh.com/detail/+vodId\":&&,",
|
||||
"导演": "导演:</div>&&主演",
|
||||
"主演": "主演:</div>&&别名",
|
||||
"线路标题": "小米文采",
|
||||
"播放数组": "listitem\">&&info\">",
|
||||
"播放列表": "<a&&</a>",
|
||||
"倒序": "否",
|
||||
"搜索url": "https://www.hkybqufgh.com/vod/search/{wd}",
|
||||
"搜索副标题": "class=\"boottom\"*<div>&&</div",
|
||||
"分类": "电影$1#电视剧$2#综艺$3#动漫$4",
|
||||
"分类url": "https://www.hkybqufgh.com/vod/show/id/{cateId}/class/{class}/year/{year}/area/{area}/page/{catePg}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "有声小说js",
|
||||
"name": "🎧有声┃小说",
|
||||
@ -504,7 +485,7 @@
|
||||
{
|
||||
"name": "1080解析",
|
||||
"type": 1,
|
||||
"url": "https://jf.lemiaoyun.cn/api/?key=86950663b3198d25885fdf61501a3366&url=",
|
||||
"url": "https://jf.lemiaoyun.cn/api/?key=8b7dec2f10ce79cd5687a7d6f6a335a8&url=",
|
||||
"ext": {
|
||||
"flag": [
|
||||
"qq",
|
||||
|
73
小米/api/drpy.min.js
vendored
Normal file
73
小米/api/drpy.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
134
小米/api/gbk.js
134
小米/api/gbk.js
File diff suppressed because one or more lines are too long
716
小米/api/模板.js
716
小米/api/模板.js
@ -1,304 +1,412 @@
|
||||
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=**&limit=50',
|
||||
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',
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
推荐:'.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};
|
||||
if (typeof Object.assign !== 'function') {
|
||||
Object.assign = function () {
|
||||
let target = arguments[0];
|
||||
for (let i = 1; i < arguments.length; i++) {
|
||||
let source = arguments[i];
|
||||
for (let key in source) {
|
||||
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
||||
target[key] = source[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
return target;
|
||||
};
|
||||
}
|
||||
|
||||
// 通用免嗅探播放
|
||||
let common_lazy = `js:
|
||||
let html = request(input);
|
||||
let hconf = html.match(/r player_.*?=(.*?)</)[1];
|
||||
let json = JSON5.parse(hconf);
|
||||
let url = json.url;
|
||||
if (json.encrypt == '1') {
|
||||
url = unescape(url);
|
||||
} else if (json.encrypt == '2') {
|
||||
url = unescape(base64Decode(url));
|
||||
}
|
||||
if (/\\.(m3u8|mp4|m4a|mp3)/.test(url)) {
|
||||
input = {
|
||||
parse: 0,
|
||||
jx: 0,
|
||||
url: url,
|
||||
};
|
||||
} else {
|
||||
input;
|
||||
}`;
|
||||
// 默认嗅探播放
|
||||
|
||||
let def_lazy = `js:
|
||||
input = { parse: 1, url: input, js: '' };`;
|
||||
// 采集站播放
|
||||
|
||||
let cj_lazy = `js:
|
||||
if (/\\.(m3u8|mp4)/.test(input)) {
|
||||
input = { parse: 0, url: input };
|
||||
} else {
|
||||
if (rule.parse_url.startsWith('json:')) {
|
||||
let purl = rule.parse_url.replace('json:', '') + input;
|
||||
let html = request(purl);
|
||||
let json = JSON.parse(html);
|
||||
if (json.url) {
|
||||
input = { parse: 0, url: json.url };
|
||||
}
|
||||
} else {
|
||||
input = rule.parse_url + input;
|
||||
}
|
||||
}`;
|
||||
|
||||
function getMubans() {
|
||||
const mubanDict = { // 模板字典
|
||||
mx: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/vodshow/fyclass--------fypage---/',
|
||||
searchUrl: '/vodsearch/**----------fypage---/',
|
||||
class_parse: '.top_nav li;a&&Text;a&&href;.*/(.*?)/',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable: 0,
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
},
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
double: true,
|
||||
推荐: '.cbox_list;*;*;*;*;*',
|
||||
一级: 'ul.vodlist li;a&&title;a&&data-original;.pic_text&&Text;a&&href',
|
||||
二级: {
|
||||
title: 'h2&&Text;.content_detail:eq(1)&&li&&a:eq(2)&&Text',
|
||||
img: '.vodlist_thumb&&data-original',
|
||||
desc: '.content_detail:eq(1)&&li:eq(1)&&Text;.content_detail:eq(1)&&li&&a&&Text;.content_detail:eq(1)&&li&&a:eq(1)&&Text;.content_detail:eq(1)&&li:eq(2)&&Text;.content_detail:eq(1)&&li:eq(3)&&Text',
|
||||
content: '.content_desc&&span&&Text',
|
||||
tabs: '.play_source_tab&&a',
|
||||
lists: '.content_playlist:eq(#id) li',
|
||||
},
|
||||
搜索: '*',
|
||||
},
|
||||
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(0):lt(10);a&&Text;a&&href;/(\\d+)',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: '.tab-list.active;a.module-poster-item.module-item;.module-poster-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href',
|
||||
一级: 'body a.module-poster-item.module-item;a&&title;.lazyload&&data-original;.module-item-note&&Text;a&&href',
|
||||
二级: {
|
||||
title: 'h1&&Text;.module-info-tag-link:eq(-1)&&Text',
|
||||
img: '.lazyload&&data-original||data-src||src',
|
||||
desc: '.module-info-item:eq(-2)&&Text;.module-info-tag-link&&Text;.module-info-tag-link:eq(1)&&Text;.module-info-item:eq(2)&&Text;.module-info-item:eq(1)&&Text',
|
||||
content: '.module-info-introduction&&Text',
|
||||
tabs: '.module-tab-item',
|
||||
lists: '.module-play-list:eq(#id) a',
|
||||
tab_text: 'div--small&&Text',
|
||||
},
|
||||
搜索: '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: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: '.module-list;.module-items&&.module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
|
||||
一级: '.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(3)&&Text;.tag-link:eq(2)&&Text;.tag-link:eq(1)&&Text;.video-info-items:eq(1)&&Text;.video-info-items:eq(0)&&Text',
|
||||
content: '.vod_content&&Text',
|
||||
tabs: '.module-tab-item',
|
||||
lists: '.module-player-list:eq(#id)&&.scroll-content&&a',
|
||||
tab_text: 'div--small&&Text',
|
||||
},
|
||||
搜索: '.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(7);a&&Text;a&&href;/(\\d+).html',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: 'ul.myui-vodlist.clearfix;li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
一级: '.myui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
二级: {
|
||||
title: '.myui-content__detail .title--span&&Text;.myui-content__detail p.data:eq(3)&&Text',
|
||||
img: '.myui-content__thumb .lazyload&&data-original',
|
||||
desc: '.myui-content__detail p.otherbox&&Text;.year&&Text;.myui-content__detail p.data:eq(4)&&Text;.myui-content__detail p.data:eq(2)&&Text;.myui-content__detail p.data:eq(0)&&Text',
|
||||
content: '.content&&Text',
|
||||
tabs: '.myui-panel__head&&li',
|
||||
// tabs: '.nav-tabs&&li',
|
||||
lists: '.myui-content__list:eq(#id) li',
|
||||
},
|
||||
搜索: '#searchList li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href;.detail&&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;.*/(.*?).html',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: 'ul.stui-vodlist.clearfix;li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href',
|
||||
一级: '.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)&&a&&Text',
|
||||
title1: '.stui-content__detail .title&&Text;.stui-content__detail&&p&&Text',
|
||||
img: '.stui-content__thumb .lazyload&&data-original',
|
||||
desc: '.stui-content__detail p&&Text;.stui-content__detail&&p:eq(-2)&&a:eq(2)&&Text;.stui-content__detail&&p:eq(-2)&&a:eq(1)&&Text;.stui-content__detail p:eq(2)&&Text;.stui-content__detail p:eq(1)&&Text',
|
||||
desc1: '.stui-content__detail p:eq(4)&&Text;;;.stui-content__detail p:eq(1)&&Text',
|
||||
content: '.detail&&Text',
|
||||
tabs: '.stui-pannel__head h3',
|
||||
tabs1: '.stui-vodlist__head h3',
|
||||
lists: '.stui-content__playlist:eq(#id) li',
|
||||
},
|
||||
搜索: 'ul.stui-vodlist__media,ul.stui-vodlist,#searchList li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href;.detail&&Text',
|
||||
}, 默认: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '',
|
||||
searchUrl: '',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable: 0,
|
||||
filter: '',
|
||||
filter_url: '',
|
||||
filter_def: {},
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
},
|
||||
timeout: 5000,
|
||||
class_parse: '#side-menu li;a&&Text;a&&href;/(.*?)\.html',
|
||||
cate_exclude: '',
|
||||
play_parse: true,
|
||||
lazy: def_lazy,
|
||||
double: true,
|
||||
推荐: '列表1;列表2;标题;图片;描述;链接;详情',
|
||||
一级: '列表;标题;图片;描述;链接;详情',
|
||||
二级: {
|
||||
title: 'vod_name;vod_type',
|
||||
img: '图片链接',
|
||||
desc: '主要信息;年代;地区;演员;导演',
|
||||
content: '简介',
|
||||
tabs: '',
|
||||
lists: 'xx:eq(#id)&&a',
|
||||
tab_text: 'body&&Text',
|
||||
list_text: 'body&&Text',
|
||||
list_url: 'a&&href',
|
||||
},
|
||||
搜索: '列表;标题;图片;描述;链接;详情',
|
||||
}, 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;a&&Text;a&&href;.*/(.*?).html',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: 'ul.fed-list-info.fed-part-rows;li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
|
||||
一级: '.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: common_lazy,
|
||||
double: true,
|
||||
推荐: '.hl-vod-list;li;a&&title;a&&data-original;.remarks&&Text;a&&href',
|
||||
一级: '.hl-vod-list&&.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
|
||||
二级: {
|
||||
title: '.hl-dc-title&&Text;.hl-dc-content&&li:eq(6)&&Text',
|
||||
img: '.hl-lazy&&data-original',
|
||||
desc: '.hl-dc-content&&li:eq(10)&&Text;.hl-dc-content&&li:eq(4)&&Text;.hl-dc-content&&li:eq(5)&&Text;.hl-dc-content&&li:eq(2)&&Text;.hl-dc-content&&li:eq(3)&&Text',
|
||||
content: '.hl-content-text&&Text',
|
||||
tabs: '.hl-tabs&&a',
|
||||
tab_text: 'a--span&&Text',
|
||||
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: common_lazy,
|
||||
double: true,
|
||||
推荐: '.list-a.size;li;a&&title;.lazy&&data-original;.bt&&Text;a&&href',
|
||||
一级: '.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: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: '.indexShowBox;ul&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
|
||||
一级: '.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=**&limit=50',
|
||||
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',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
推荐: '.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(2)--strong&&Text',
|
||||
img: '.detail-pic&&data-original',
|
||||
desc: '.slide-info-remarks&&Text;.slide-info-remarks:eq(1)&&Text;.slide-info-remarks:eq(2)&&Text;.slide-info:eq(1)--strong&&Text;.info-parameter&&ul&&li:eq(3)&&Text',
|
||||
content: '#height_limit&&Text',
|
||||
tabs: '.anthology.wow.fadeInUp.animated&&.swiper-wrapper&&a',
|
||||
tab_text: 'a--span&&Text',
|
||||
lists: '.anthology-list-box:eq(#id) li',
|
||||
},
|
||||
搜索: 'json:list;name;pic;;id',
|
||||
}, 采集1: {
|
||||
title: '',
|
||||
host: '',
|
||||
homeTid: '13',
|
||||
homeUrl: '/api.php/provide/vod/?ac=detail&t={{rule.homeTid}}',
|
||||
detailUrl: '/api.php/provide/vod/?ac=detail&ids=fyid',
|
||||
searchUrl: '/api.php/provide/vod/?wd=**&pg=fypage',
|
||||
url: '/api.php/provide/vod/?ac=detail&pg=fypage&t=fyclass',
|
||||
headers: {'User-Agent': 'MOBILE_UA'},
|
||||
timeout: 5000, // class_name: '电影&电视剧&综艺&动漫',
|
||||
// class_url: '1&2&3&4',
|
||||
// class_parse:'js:let html=request(input);input=JSON.parse(html).class;',
|
||||
class_parse: 'json:class;',
|
||||
limit: 20,
|
||||
multi: 1,
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 1,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
play_parse: true,
|
||||
parse_url: '',
|
||||
lazy: cj_lazy,
|
||||
推荐: '*',
|
||||
一级: 'json:list;vod_name;vod_pic;vod_remarks;vod_id;vod_play_from',
|
||||
二级: `js:
|
||||
let html=request(input);
|
||||
html=JSON.parse(html);
|
||||
let data=html.list;
|
||||
VOD=data[0];`,
|
||||
搜索: '*',
|
||||
},
|
||||
};
|
||||
return JSON.parse(JSON.stringify(mubanDict));
|
||||
}
|
||||
|
||||
var mubanDict = getMubans();
|
||||
var muban = getMubans();
|
||||
export default {muban, getMubans};
|
@ -29,7 +29,7 @@ var rule = {
|
||||
play_parse: true,
|
||||
lazy: $js.toString(() => {
|
||||
let d = [];
|
||||
let url1=JSON.parse(request("https://vip.ysctv.cn/api/index?parsesId=26&appid=4&videoUrl="+input)).url;
|
||||
let url1=JSON.parse(request("https://vip.ysctv.cn/api/index?parsesId=23&appid=4&videoUrl="+input)).url;
|
||||
var withoutDomain = url1.replace(/^https:\/\/baidu\.con\//, '');
|
||||
var first16Chars = withoutDomain.substring(0, 16);
|
||||
var remainingString = withoutDomain.substring(16);
|
||||
|
4643
小米/json/Bili.json
Normal file
4643
小米/json/Bili.json
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@ -508,90 +508,10 @@ http://gslbserv.itv.cmvideo.cn:80/3000000020000011530/index.m3u8?channel-id=Fifa
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「移动」",咪咕直播 𝟜𝟝「移动」
|
||||
http://gslbserv.itv.cmvideo.cn:80/3000000020000011531/index.m3u8?channel-id=FifastbLive&Contentid=3000000020000011531&livemode=1&stbId=3
|
||||
#INSERT_HERE
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」13:00 3X决赛 解说
|
||||
https://tv.iill.top/NBA/1
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「中超」15:15 联赛 青岛西海岸vs深圳新鹏城 解说
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「NBL」19:10 总决赛 安徽文一vs香港金牛 解说
|
||||
https://tv.iill.top/Migu/1
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「中超」15:15 联赛 青岛西海岸vs深圳新鹏城 赛场原声
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「NBL」19:10 原声
|
||||
https://tv.iill.top/Migu/2
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」15:20 季前赛 江苏肯帝亚vs上海久事 解说
|
||||
https://tv.iill.top/Migu/3
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」15:20 清流播出
|
||||
https://tv.iill.top/Migu/4
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」15:50 季前赛 宁波町渥vs深圳马可波罗 解说
|
||||
https://tv.iill.top/Migu/5
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」15:50 清流播出
|
||||
https://tv.iill.top/Migu/6
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」15:50 季前赛 广州龙狮vs天津先行者 解说
|
||||
https://tv.iill.top/Migu/7
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」15:50 清流播出
|
||||
https://tv.iill.top/Migu/8
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」15:50 季前赛 新疆伊力特vs青岛国信水产 解说
|
||||
https://tv.iill.top/Migu/9
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」15:50 清流播出
|
||||
https://tv.iill.top/Migu/10
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」15:50 季前赛 浙江广厦vs九台农商银行 解说
|
||||
https://tv.iill.top/Migu/11
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」15:50 清流播出
|
||||
https://tv.iill.top/Migu/12
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「意甲」18:15 联赛 佛罗伦萨vs拉齐奥 解说
|
||||
https://tv.iill.top/Migu/13
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「中超」18:45 联赛 南通支云vs青岛海牛 解说
|
||||
https://tv.iill.top/Migu/14
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「中超」18:45 联赛 南通支云vs青岛海牛 赛场原声
|
||||
https://tv.iill.top/Migu/15
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:15 季前赛 广东华南虎vs福建浔兴股份 解说
|
||||
https://tv.iill.top/Migu/16
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:15 清流播出
|
||||
https://tv.iill.top/Migu/17
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:15 清流播出
|
||||
https://tv.iill.top/Migu/18
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:20 季前赛 浙江稠州金租vs山东高速 解说
|
||||
https://tv.iill.top/Migu/19
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:20 清流播出
|
||||
https://tv.iill.top/Migu/20
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:20 季前赛 北京北汽vs辽宁本钢 解说
|
||||
https://tv.iill.top/Migu/21
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:20 清流播出
|
||||
https://tv.iill.top/Migu/22
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:20 季前赛 山西汾酒vs北京控股 解说
|
||||
https://tv.iill.top/Migu/23
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:20 清流播出
|
||||
https://tv.iill.top/Migu/24
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「中超」19:45 联赛 浙江vs沧州雄狮 解说
|
||||
https://tv.iill.top/Migu/25
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「中超」19:45 联赛 浙江vs沧州雄狮 赛场原声
|
||||
https://tv.iill.top/Migu/26
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「西甲」19:50 联赛 赫塔菲vs莱加内斯 解说
|
||||
https://tv.iill.top/Migu/27
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:50 季前赛 南京头排苏酒vs四川金强 解说
|
||||
https://tv.iill.top/Migu/28
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:50 清流播出
|
||||
https://tv.iill.top/Migu/29
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「英超」20:50 联赛 布莱顿vs诺丁汉森林 解说
|
||||
https://tv.iill.top/Migu/30
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「意甲」20:50 联赛 蒙扎vs博洛尼亚 解说
|
||||
https://tv.iill.top/Migu/31
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「法甲」20:50 联赛 摩纳哥vs勒阿弗尔 解说
|
||||
https://tv.iill.top/Migu/32
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「西甲」22:05 联赛 毕尔巴鄂竞技vs塞尔塔 解说
|
||||
https://tv.iill.top/Migu/33
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「法甲」22:50 联赛 蒙彼利埃vs欧塞尔 解说
|
||||
https://tv.iill.top/Migu/34
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「法甲」22:50 联赛 昂热vs南特 解说
|
||||
https://tv.iill.top/Migu/35
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「法甲」22:50 联赛 布雷斯特vs图卢兹 解说
|
||||
https://tv.iill.top/Migu/36
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「英超」23:15 联赛 曼城vs阿森纳 解说
|
||||
https://tv.iill.top/Migu/37
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「英超」23:15 联赛 曼城vs阿森纳 粤语
|
||||
https://tv.iill.top/Migu/38
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「英超」23:15 联赛 曼城vs阿森纳 闽南语
|
||||
https://tv.iill.top/Migu/39
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「英超」23:15 联赛 曼城vs阿森纳 沪语
|
||||
https://tv.iill.top/Migu/40
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「意甲」23:50 联赛 罗马vs乌迪内斯 解说
|
||||
https://tv.iill.top/Migu/41
|
||||
#EXTINF:-1 tvg-id="CCTV-1" tvg-name="CCTV1" tvg-logo="https://epg.iill.top/logo/CCTV1.png" group-title="•咪咕「TV」",CCTV 1 综合
|
||||
https://tv.iill.top/migu/cctv1
|
||||
#EXTINF:-1 tvg-id="CCTV-2" tvg-name="CCTV2" tvg-logo="https://epg.iill.top/logo/CCTV2.png" group-title="•咪咕「TV」",CCTV 2 财经
|
||||
|
1336
小米/lives/直播2.txt
1336
小米/lives/直播2.txt
File diff suppressed because it is too large
Load Diff
BIN
小米/spider.jar
BIN
小米/spider.jar
Binary file not shown.
2309
摸鱼儿/api.json
2309
摸鱼儿/api.json
File diff suppressed because it is too large
Load Diff
2390
摸鱼儿/api/drpy.min.js
vendored
2390
摸鱼儿/api/drpy.min.js
vendored
File diff suppressed because one or more lines are too long
74
摸鱼儿/api/drpy2.min.js
vendored
74
摸鱼儿/api/drpy2.min.js
vendored
File diff suppressed because one or more lines are too long
134
摸鱼儿/api/gbk.js
134
摸鱼儿/api/gbk.js
File diff suppressed because one or more lines are too long
716
摸鱼儿/api/模板.js
716
摸鱼儿/api/模板.js
@ -1,412 +1,304 @@
|
||||
if (typeof Object.assign !== 'function') {
|
||||
Object.assign = function () {
|
||||
let target = arguments[0];
|
||||
for (let i = 1; i < arguments.length; i++) {
|
||||
let source = arguments[i];
|
||||
for (let key in source) {
|
||||
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
||||
target[key] = source[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
return target;
|
||||
};
|
||||
}
|
||||
|
||||
// 通用免嗅探播放
|
||||
let common_lazy = `js:
|
||||
let html = request(input);
|
||||
let hconf = html.match(/r player_.*?=(.*?)</)[1];
|
||||
let json = JSON5.parse(hconf);
|
||||
let url = json.url;
|
||||
if (json.encrypt == '1') {
|
||||
url = unescape(url);
|
||||
} else if (json.encrypt == '2') {
|
||||
url = unescape(base64Decode(url));
|
||||
}
|
||||
if (/\\.(m3u8|mp4|m4a|mp3)/.test(url)) {
|
||||
input = {
|
||||
parse: 0,
|
||||
jx: 0,
|
||||
url: url,
|
||||
};
|
||||
} else {
|
||||
input;
|
||||
}`;
|
||||
// 默认嗅探播放
|
||||
|
||||
let def_lazy = `js:
|
||||
input = { parse: 1, url: input, js: '' };`;
|
||||
// 采集站播放
|
||||
|
||||
let cj_lazy = `js:
|
||||
if (/\\.(m3u8|mp4)/.test(input)) {
|
||||
input = { parse: 0, url: input };
|
||||
} else {
|
||||
if (rule.parse_url.startsWith('json:')) {
|
||||
let purl = rule.parse_url.replace('json:', '') + input;
|
||||
let html = request(purl);
|
||||
let json = JSON.parse(html);
|
||||
if (json.url) {
|
||||
input = { parse: 0, url: json.url };
|
||||
}
|
||||
} else {
|
||||
input = rule.parse_url + input;
|
||||
}
|
||||
}`;
|
||||
|
||||
function getMubans() {
|
||||
const mubanDict = { // 模板字典
|
||||
mx: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/vodshow/fyclass--------fypage---/',
|
||||
searchUrl: '/vodsearch/**----------fypage---/',
|
||||
class_parse: '.top_nav li;a&&Text;a&&href;.*/(.*?)/',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable: 0,
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
},
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
double: true,
|
||||
推荐: '.cbox_list;*;*;*;*;*',
|
||||
一级: 'ul.vodlist li;a&&title;a&&data-original;.pic_text&&Text;a&&href',
|
||||
二级: {
|
||||
title: 'h2&&Text;.content_detail:eq(1)&&li&&a:eq(2)&&Text',
|
||||
img: '.vodlist_thumb&&data-original',
|
||||
desc: '.content_detail:eq(1)&&li:eq(1)&&Text;.content_detail:eq(1)&&li&&a&&Text;.content_detail:eq(1)&&li&&a:eq(1)&&Text;.content_detail:eq(1)&&li:eq(2)&&Text;.content_detail:eq(1)&&li:eq(3)&&Text',
|
||||
content: '.content_desc&&span&&Text',
|
||||
tabs: '.play_source_tab&&a',
|
||||
lists: '.content_playlist:eq(#id) li',
|
||||
},
|
||||
搜索: '*',
|
||||
},
|
||||
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(0):lt(10);a&&Text;a&&href;/(\\d+)',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: '.tab-list.active;a.module-poster-item.module-item;.module-poster-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href',
|
||||
一级: 'body a.module-poster-item.module-item;a&&title;.lazyload&&data-original;.module-item-note&&Text;a&&href',
|
||||
二级: {
|
||||
title: 'h1&&Text;.module-info-tag-link:eq(-1)&&Text',
|
||||
img: '.lazyload&&data-original||data-src||src',
|
||||
desc: '.module-info-item:eq(-2)&&Text;.module-info-tag-link&&Text;.module-info-tag-link:eq(1)&&Text;.module-info-item:eq(2)&&Text;.module-info-item:eq(1)&&Text',
|
||||
content: '.module-info-introduction&&Text',
|
||||
tabs: '.module-tab-item',
|
||||
lists: '.module-play-list:eq(#id) a',
|
||||
tab_text: 'div--small&&Text',
|
||||
},
|
||||
搜索: '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: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: '.module-list;.module-items&&.module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
|
||||
一级: '.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(3)&&Text;.tag-link:eq(2)&&Text;.tag-link:eq(1)&&Text;.video-info-items:eq(1)&&Text;.video-info-items:eq(0)&&Text',
|
||||
content: '.vod_content&&Text',
|
||||
tabs: '.module-tab-item',
|
||||
lists: '.module-player-list:eq(#id)&&.scroll-content&&a',
|
||||
tab_text: 'div--small&&Text',
|
||||
},
|
||||
搜索: '.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(7);a&&Text;a&&href;/(\\d+).html',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: 'ul.myui-vodlist.clearfix;li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
一级: '.myui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
二级: {
|
||||
title: '.myui-content__detail .title--span&&Text;.myui-content__detail p.data:eq(3)&&Text',
|
||||
img: '.myui-content__thumb .lazyload&&data-original',
|
||||
desc: '.myui-content__detail p.otherbox&&Text;.year&&Text;.myui-content__detail p.data:eq(4)&&Text;.myui-content__detail p.data:eq(2)&&Text;.myui-content__detail p.data:eq(0)&&Text',
|
||||
content: '.content&&Text',
|
||||
tabs: '.myui-panel__head&&li',
|
||||
// tabs: '.nav-tabs&&li',
|
||||
lists: '.myui-content__list:eq(#id) li',
|
||||
},
|
||||
搜索: '#searchList li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href;.detail&&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;.*/(.*?).html',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: 'ul.stui-vodlist.clearfix;li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href',
|
||||
一级: '.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)&&a&&Text',
|
||||
title1: '.stui-content__detail .title&&Text;.stui-content__detail&&p&&Text',
|
||||
img: '.stui-content__thumb .lazyload&&data-original',
|
||||
desc: '.stui-content__detail p&&Text;.stui-content__detail&&p:eq(-2)&&a:eq(2)&&Text;.stui-content__detail&&p:eq(-2)&&a:eq(1)&&Text;.stui-content__detail p:eq(2)&&Text;.stui-content__detail p:eq(1)&&Text',
|
||||
desc1: '.stui-content__detail p:eq(4)&&Text;;;.stui-content__detail p:eq(1)&&Text',
|
||||
content: '.detail&&Text',
|
||||
tabs: '.stui-pannel__head h3',
|
||||
tabs1: '.stui-vodlist__head h3',
|
||||
lists: '.stui-content__playlist:eq(#id) li',
|
||||
},
|
||||
搜索: 'ul.stui-vodlist__media,ul.stui-vodlist,#searchList li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href;.detail&&Text',
|
||||
}, 默认: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '',
|
||||
searchUrl: '',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable: 0,
|
||||
filter: '',
|
||||
filter_url: '',
|
||||
filter_def: {},
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
},
|
||||
timeout: 5000,
|
||||
class_parse: '#side-menu li;a&&Text;a&&href;/(.*?)\.html',
|
||||
cate_exclude: '',
|
||||
play_parse: true,
|
||||
lazy: def_lazy,
|
||||
double: true,
|
||||
推荐: '列表1;列表2;标题;图片;描述;链接;详情',
|
||||
一级: '列表;标题;图片;描述;链接;详情',
|
||||
二级: {
|
||||
title: 'vod_name;vod_type',
|
||||
img: '图片链接',
|
||||
desc: '主要信息;年代;地区;演员;导演',
|
||||
content: '简介',
|
||||
tabs: '',
|
||||
lists: 'xx:eq(#id)&&a',
|
||||
tab_text: 'body&&Text',
|
||||
list_text: 'body&&Text',
|
||||
list_url: 'a&&href',
|
||||
},
|
||||
搜索: '列表;标题;图片;描述;链接;详情',
|
||||
}, 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;a&&Text;a&&href;.*/(.*?).html',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: 'ul.fed-list-info.fed-part-rows;li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
|
||||
一级: '.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: common_lazy,
|
||||
double: true,
|
||||
推荐: '.hl-vod-list;li;a&&title;a&&data-original;.remarks&&Text;a&&href',
|
||||
一级: '.hl-vod-list&&.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
|
||||
二级: {
|
||||
title: '.hl-dc-title&&Text;.hl-dc-content&&li:eq(6)&&Text',
|
||||
img: '.hl-lazy&&data-original',
|
||||
desc: '.hl-dc-content&&li:eq(10)&&Text;.hl-dc-content&&li:eq(4)&&Text;.hl-dc-content&&li:eq(5)&&Text;.hl-dc-content&&li:eq(2)&&Text;.hl-dc-content&&li:eq(3)&&Text',
|
||||
content: '.hl-content-text&&Text',
|
||||
tabs: '.hl-tabs&&a',
|
||||
tab_text: 'a--span&&Text',
|
||||
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: common_lazy,
|
||||
double: true,
|
||||
推荐: '.list-a.size;li;a&&title;.lazy&&data-original;.bt&&Text;a&&href',
|
||||
一级: '.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: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: '.indexShowBox;ul&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
|
||||
一级: '.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=**&limit=50',
|
||||
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',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
推荐: '.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(2)--strong&&Text',
|
||||
img: '.detail-pic&&data-original',
|
||||
desc: '.slide-info-remarks&&Text;.slide-info-remarks:eq(1)&&Text;.slide-info-remarks:eq(2)&&Text;.slide-info:eq(1)--strong&&Text;.info-parameter&&ul&&li:eq(3)&&Text',
|
||||
content: '#height_limit&&Text',
|
||||
tabs: '.anthology.wow.fadeInUp.animated&&.swiper-wrapper&&a',
|
||||
tab_text: 'a--span&&Text',
|
||||
lists: '.anthology-list-box:eq(#id) li',
|
||||
},
|
||||
搜索: 'json:list;name;pic;;id',
|
||||
}, 采集1: {
|
||||
title: '',
|
||||
host: '',
|
||||
homeTid: '13',
|
||||
homeUrl: '/api.php/provide/vod/?ac=detail&t={{rule.homeTid}}',
|
||||
detailUrl: '/api.php/provide/vod/?ac=detail&ids=fyid',
|
||||
searchUrl: '/api.php/provide/vod/?wd=**&pg=fypage',
|
||||
url: '/api.php/provide/vod/?ac=detail&pg=fypage&t=fyclass',
|
||||
headers: {'User-Agent': 'MOBILE_UA'},
|
||||
timeout: 5000, // class_name: '电影&电视剧&综艺&动漫',
|
||||
// class_url: '1&2&3&4',
|
||||
// class_parse:'js:let html=request(input);input=JSON.parse(html).class;',
|
||||
class_parse: 'json:class;',
|
||||
limit: 20,
|
||||
multi: 1,
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 1,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
play_parse: true,
|
||||
parse_url: '',
|
||||
lazy: cj_lazy,
|
||||
推荐: '*',
|
||||
一级: 'json:list;vod_name;vod_pic;vod_remarks;vod_id;vod_play_from',
|
||||
二级: `js:
|
||||
let html=request(input);
|
||||
html=JSON.parse(html);
|
||||
let data=html.list;
|
||||
VOD=data[0];`,
|
||||
搜索: '*',
|
||||
},
|
||||
};
|
||||
return JSON.parse(JSON.stringify(mubanDict));
|
||||
}
|
||||
|
||||
var mubanDict = getMubans();
|
||||
var muban = getMubans();
|
||||
export default {muban, getMubans};
|
||||
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=**&limit=50',
|
||||
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',
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
推荐:'.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};
|
@ -1 +0,0 @@
|
||||
未找到对应的下载链接
|
Binary file not shown.
BIN
摸鱼儿/jars/玩偶智能.jar
Normal file
BIN
摸鱼儿/jars/玩偶智能.jar
Normal file
Binary file not shown.
File diff suppressed because one or more lines are too long
150
摸鱼儿/js/jp.js
150
摸鱼儿/js/jp.js
@ -1,150 +0,0 @@
|
||||
/**
|
||||
* 影视TV 超連結跳轉支持
|
||||
* https://t.me/fongmi_offical/
|
||||
* https://github.com/FongMi/Release/tree/main/apk
|
||||
*/
|
||||
|
||||
var rule = {
|
||||
title: '荐片',
|
||||
host: 'http://api2.rinhome.com',
|
||||
homeUrl: '/api/tag/hand?code=unknown601193cf375db73d&channel=wandoujia',//网站的首页链接,用于分类获取和推荐获取
|
||||
// url:'/api/crumb/list?area=0&category_id=fyclass&page=fypage&type=0&limit=24&fyfilter',
|
||||
url: '/api/crumb/list?page=fypage&type=0&limit=24&fyfilter',
|
||||
class_name: '全部&电影&电视剧&动漫&综艺', // 筛选 /api/term/ad_fenlei?limit=10&page=1
|
||||
class_url: '0&1&2&3&4',
|
||||
detailUrl: '/api/node/detail?channel=wandoujia&token=&id=fyid',//二级详情拼接链接(json格式用)
|
||||
searchUrl: '/api/video/search?key=**&page=fypage',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable: 1,
|
||||
filter: {
|
||||
"0":[{"key":"area","name":"地區","value":[{"n":"全部","v":"0"},{"n":"国产","v":"1"},{"n":"中国香港","v":"3"},{"n":"中国台湾","v":"6"},{"n":"美国","v":"5"},{"n":"韩国","v":"18"},{"n":"日本","v":"2"}]},{"key":"year","name":"年代","value":[{"n":"全部","v":"0"},{"n":"2023","v":"153"},{"n":"2022","v":"101"},{"n":"2021","v":"118"},{"n":"2020","v":"16"},{"n":"2019","v":"7"},{"n":"2018","v":"2"},{"n":"2017","v":"3"},{"n":"2016","v":"22"}]},{"key":"sort","name":"排序","value":[{"n":"热门","v":"hot"},{"n":"评分","v":"rating"},{"n":"更新","v":"update"}]}],
|
||||
"1":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"1"},{"n":"首推","v":"5"},{"n":"动作","v":"6"},{"n":"喜剧","v":"7"},{"n":"战争","v":"8"},{"n":"恐怖","v":"9"},{"n":"剧情","v":"10"},{"n":"爱情","v":"11"},{"n":"科幻","v":"12"},{"n":"动画","v":"13"}]},{"key":"area","name":"地區","value":[{"n":"全部","v":"0"},{"n":"国产","v":"1"},{"n":"中国香港","v":"3"},{"n":"中国台湾","v":"6"},{"n":"美国","v":"5"},{"n":"韩国","v":"18"},{"n":"日本","v":"2"}]},{"key":"year","name":"年代","value":[{"n":"全部","v":"0"},{"n":"2023","v":"153"},{"n":"2022","v":"101"},{"n":"2021","v":"118"},{"n":"2020","v":"16"},{"n":"2019","v":"7"},{"n":"2018","v":"2"},{"n":"2017","v":"3"},{"n":"2016","v":"22"}]},{"key":"sort","name":"排序","value":[{"n":"热门","v":"hot"},{"n":"评分","v":"rating"},{"n":"更新","v":"update"}]}],
|
||||
"2":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"2"},{"n":"首推","v":"14"},{"n":"国产","v":"15"},{"n":"港台","v":"16"},{"n":"日韩","v":"17"},{"n":"海外","v":"18"}]},{"key":"area","name":"地區","value":[{"n":"全部","v":"0"},{"n":"国产","v":"1"},{"n":"中国香港","v":"3"},{"n":"中国台湾","v":"6"},{"n":"美国","v":"5"},{"n":"韩国","v":"18"},{"n":"日本","v":"2"}]},{"key":"year","name":"年代","value":[{"n":"全部","v":"0"},{"n":"2023","v":"153"},{"n":"2022","v":"101"},{"n":"2021","v":"118"},{"n":"2020","v":"16"},{"n":"2019","v":"7"},{"n":"2018","v":"2"},{"n":"2017","v":"3"},{"n":"2016","v":"22"}]},{"key":"sort","name":"排序","value":[{"n":"热门","v":"hot"},{"n":"评分","v":"rating"},{"n":"更新","v":"update"}]}],
|
||||
"3":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"3"},{"n":"首推","v":"19"},{"n":"海外","v":"20"},{"n":"日本","v":"21"},{"n":"国产","v":"22"}]},{"key":"area","name":"地區","value":[{"n":"全部","v":"0"},{"n":"国产","v":"1"},{"n":"中国香港","v":"3"},{"n":"中国台湾","v":"6"},{"n":"美国","v":"5"},{"n":"韩国","v":"18"},{"n":"日本","v":"2"}]},{"key":"year","name":"年代","value":[{"n":"全部","v":"0"},{"n":"2023","v":"153"},{"n":"2022","v":"101"},{"n":"2021","v":"118"},{"n":"2020","v":"16"},{"n":"2019","v":"7"},{"n":"2018","v":"2"},{"n":"2017","v":"3"},{"n":"2016","v":"22"}]},{"key":"sort","name":"排序","value":[{"n":"热门","v":"hot"},{"n":"评分","v":"rating"},{"n":"更新","v":"update"}]}],
|
||||
"4":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"4"},{"n":"首推","v":"23"},{"n":"国产","v":"24"},{"n":"海外","v":"25"},{"n":"港台","v":"26"}]},{"key":"area","name":"地區","value":[{"n":"全部","v":"0"},{"n":"国产","v":"1"},{"n":"中国香港","v":"3"},{"n":"中国台湾","v":"6"},{"n":"美国","v":"5"},{"n":"韩国","v":"18"},{"n":"日本","v":"2"}]},{"key":"year","name":"年代","value":[{"n":"全部","v":"0"},{"n":"2023","v":"153"},{"n":"2022","v":"101"},{"n":"2021","v":"118"},{"n":"2020","v":"16"},{"n":"2019","v":"7"},{"n":"2018","v":"2"},{"n":"2017","v":"3"},{"n":"2016","v":"22"}]},{"key":"sort","name":"排序","value":[{"n":"热门","v":"hot"},{"n":"评分","v":"rating"},{"n":"更新","v":"update"}]}]
|
||||
},
|
||||
filter_url: 'area={{fl.area or "0"}}&sort={{fl.sort or "update"}}&year={{fl.year or "0"}}&category_id={{fl.cateId}}',
|
||||
filter_def: {
|
||||
0:{cateId:'0'},
|
||||
1:{cateId:'1'},
|
||||
2:{cateId:'2'},
|
||||
3:{cateId:'3'},
|
||||
4:{cateId:'4'}
|
||||
},
|
||||
headers: {
|
||||
'User-Agent': 'jianpian-android/350',
|
||||
'JPAUTH': 'y261ow7kF2dtzlxh1GS9EB8nbTxNmaK/QQIAjctlKiEv'
|
||||
},
|
||||
timeout: 5000,
|
||||
limit: 8,
|
||||
play_parse: true,
|
||||
play_json: [{
|
||||
re: '*',
|
||||
json: {
|
||||
parse: 0,
|
||||
jx: 0
|
||||
}
|
||||
}],
|
||||
lazy: '',
|
||||
图片来源: '@Referer=www.jianpianapp.com@User-Agent=jianpian-version353',
|
||||
// 推荐:'json:.video;*;*;*;*',
|
||||
推荐: `js:
|
||||
var d = [];
|
||||
let html = request(input);
|
||||
html = JSON.parse(html).data[0].video;
|
||||
html.forEach(it => {
|
||||
d.push({
|
||||
title: it.title,
|
||||
img: it.path,
|
||||
desc: it.playlist.title + ' ⭐' + it.score,
|
||||
url: it.id
|
||||
})
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
// 一级:'json:data;title;path;playlist.title;id',
|
||||
一级: `js:
|
||||
cateObj.tid = cateObj.tid+'';
|
||||
if (cateObj.tid.endsWith('_clicklink')) {
|
||||
cateObj.tid = cateObj.tid.split('_')[0];
|
||||
input = HOST + '/api/video/search?key=' + cateObj.tid + '&page=' + + MY_PAGE;
|
||||
}
|
||||
var d = [];
|
||||
let html = request(input);
|
||||
html = JSON.parse(html).data;
|
||||
html.forEach(it => {
|
||||
d.push({
|
||||
title: it.title,
|
||||
img: it.thumbnail||it.path,
|
||||
desc: (it.mask || it.playlist.title) + ' ⭐' + it.score,
|
||||
url: it.id
|
||||
})
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
二级: `js:
|
||||
function getLink(data) {
|
||||
let link = data.map(it => {
|
||||
return '[a=cr:' + JSON.stringify({'id':it.name+'_clicklink','name':it.name}) + '/]' + it.name + '[/a]'
|
||||
}).join(', ');
|
||||
return link
|
||||
}
|
||||
try {
|
||||
let html = request(input);
|
||||
html = JSON.parse(html);
|
||||
let node = html.data;
|
||||
VOD = {
|
||||
vod_id: node.id,
|
||||
vod_name: node.title,
|
||||
vod_pic: node.thumbnail,
|
||||
type_name: node.types[0].name,
|
||||
vod_year: node.year.title,
|
||||
vod_area: node.area.title,
|
||||
vod_remarks: node.score,
|
||||
vod_actor: getLink(node.actors),
|
||||
vod_director: getLink(node.directors),
|
||||
vod_content: node.description.strip()
|
||||
};
|
||||
if (typeof play_url === 'undefined') {
|
||||
var play_url = ''
|
||||
}
|
||||
let playMap = {};
|
||||
if (node.have_ftp_ur == 1) {
|
||||
playMap["边下边播,勤去清缓存"] = node.new_ftp_list.map(it => {
|
||||
return it.title + "$" + (/m3u8/.test(it.url) ? play_url + it.url : "tvbox-xg:" + it.url)
|
||||
}).join('#');
|
||||
}
|
||||
if (node.have_m3u8_ur == 1) {
|
||||
playMap["在线点播普清版"] = node.new_m3u8_list.map(it => {
|
||||
return it.title + "$" + (/m3u8/.test(it.url) ? play_url + it.url : "tvbox-xg:" + it.url)
|
||||
}).join('#');
|
||||
}
|
||||
let playFrom = [];
|
||||
let playList = [];
|
||||
Object.keys(playMap).forEach(key => {
|
||||
playFrom.append(key);
|
||||
playList.append(playMap[key])
|
||||
});
|
||||
VOD.vod_play_from = playFrom.join('$$$');
|
||||
VOD.vod_play_url = playList.join('$$$');
|
||||
} catch (e) {
|
||||
log("获取二级详情页发生错误:" + e.message);
|
||||
}
|
||||
`,
|
||||
// 搜索:'json:data;*;thumbnail;mask;*',
|
||||
搜索: `js:
|
||||
var d = [];
|
||||
let html = request(input);
|
||||
html = JSON.parse(html).data;
|
||||
html.forEach(it => {
|
||||
d.push({
|
||||
title: it.title,
|
||||
img: it.thumbnail,
|
||||
desc: it.mask + ' ⭐' + it.score,
|
||||
url: it.id
|
||||
})
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
}
|
File diff suppressed because one or more lines are too long
@ -2,7 +2,7 @@
|
||||
#EXTINF:-1 tvg-name="CCTV1" tvg-logo="https://live.fanmingming.com/tv/CCTV1.png" group-title="央视频道",CCTV-1 综合
|
||||
http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226559/index.m3u8
|
||||
#EXTINF:-1 tvg-name="CCTV2" tvg-logo="https://live.fanmingming.com/tv/CCTV2.png" group-title="央视频道",CCTV-2 财经
|
||||
http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226540/index.m3u8
|
||||
http://[2409:8087:5e00:24::1e]:6060/200000001898/460000089800010211/1.m3u8
|
||||
#EXTINF:-1 tvg-name="CCTV3" tvg-logo="https://live.fanmingming.com/tv/CCTV3.png" group-title="央视频道",CCTV-3 综艺
|
||||
http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226021/index.m3u8
|
||||
#EXTINF:-1 tvg-name="CCTV4" tvg-logo="https://live.fanmingming.com/tv/CCTV4.png" group-title="央视频道",CCTV-4 中文国际
|
||||
@ -41,6 +41,12 @@ http://[2001:250:5800:1005::155]:80/liverespath/bca6167afdef7fc773405c38e695b342
|
||||
http://[2001:250:5800:1005::155]:80/liverespath/e0096742f0c5be4c5225cf3c7ab1077177bec05f/index.m3u8
|
||||
#EXTINF:-1 tvg-name="CHC家庭影院" tvg-logo="https://live.fanmingming.com/tv/CHC家庭影院.png" group-title="央视频道",CHC家庭影院
|
||||
http://[2001:250:5800:1005::155]:80/liverespath/449d51febadb152094085d373b9af94a6ac5f1dd/index.m3u8
|
||||
#EXTINF:-1 tvg-name="凤凰中文" tvg-logo="https://live.fanmingming.com/tv/凤凰卫视中文台.png" group-title="卫视频道",凤凰中文
|
||||
http://58.144.154.93/qctv.fengshows.cn/live/0701pcc72.m3u8
|
||||
#EXTINF:-1 tvg-name="凤凰资讯" tvg-logo="https://live.fanmingming.com/tv/凤凰卫视资讯台.png" group-title="卫视频道",凤凰资讯
|
||||
http://58.144.154.93/qctv.fengshows.cn/live/0701pin72.m3u8
|
||||
#EXTINF:-1 tvg-name="凤凰香港" tvg-logo="https://live.fanmingming.com/tv/凤凰卫视香港台.png" group-title="卫视频道",凤凰香港
|
||||
http://58.144.154.93/qctv.fengshows.cn/live/0701phk72.m3u8
|
||||
#EXTINF:-1 tvg-name="北京卫视" tvg-logo="https://live.fanmingming.com/tv/北京卫视.png" group-title="卫视频道",北京卫视
|
||||
http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226450/index.m3u8
|
||||
#EXTINF:-1 tvg-name="湖南卫视" tvg-logo="https://live.fanmingming.com/tv/湖南卫视.png" group-title="卫视频道",湖南卫视
|
||||
|
1761
摸鱼儿/lives/SAO0.txt
1761
摸鱼儿/lives/SAO0.txt
File diff suppressed because it is too large
Load Diff
BIN
摸鱼儿/spider.jar
BIN
摸鱼儿/spider.jar
Binary file not shown.
10
肥猫/api.json
10
肥猫/api.json
@ -36,10 +36,18 @@
|
||||
"https://duopan.fun",
|
||||
"http://labipan.com",
|
||||
"https://mihdr.top",
|
||||
"https://feimaoai.site"
|
||||
"http://feimaoai.site"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "肥猫4K",
|
||||
"name": "🖍┃肥猫┃4K",
|
||||
"type": 3,
|
||||
"api": "./api/drpy.min.js",
|
||||
"ext": "./js/肥猫4K.js",
|
||||
"searchable": 0
|
||||
},
|
||||
{
|
||||
"key": "nangua",
|
||||
"name": "🎃┃南瓜┃影视",
|
||||
|
@ -1,304 +0,0 @@
|
||||
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=**&limit=50',
|
||||
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',
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
推荐:'.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};
|
73
肥猫/api/drpy.min.js
vendored
Normal file
73
肥猫/api/drpy.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
74
肥猫/api/drpy2.min.js
vendored
74
肥猫/api/drpy2.min.js
vendored
File diff suppressed because one or more lines are too long
577
肥猫/api/jinja.js
Normal file
577
肥猫/api/jinja.js
Normal file
@ -0,0 +1,577 @@
|
||||
/*!
|
||||
* Jinja Templating for JavaScript v0.1.8
|
||||
* https://github.com/sstur/jinja-js
|
||||
*
|
||||
* This is a slimmed-down Jinja2 implementation [http://jinja.pocoo.org/]
|
||||
*
|
||||
* In the interest of simplicity, it deviates from Jinja2 as follows:
|
||||
* - Line statements, cycle, super, macro tags and block nesting are not implemented
|
||||
* - auto escapes html by default (the filter is "html" not "e")
|
||||
* - Only "html" and "safe" filters are built in
|
||||
* - Filters are not valid in expressions; `foo|length > 1` is not valid
|
||||
* - Expression Tests (`if num is odd`) not implemented (`is` translates to `==` and `isnot` to `!=`)
|
||||
*
|
||||
* Notes:
|
||||
* - if property is not found, but method '_get' exists, it will be called with the property name (and cached)
|
||||
* - `{% for n in obj %}` iterates the object's keys; get the value with `{% for n in obj %}{{ obj[n] }}{% endfor %}`
|
||||
* - subscript notation `a[0]` takes literals or simple variables but not `a[item.key]`
|
||||
* - `.2` is not a valid number literal; use `0.2`
|
||||
*
|
||||
*/
|
||||
/*global require, exports, module, define */
|
||||
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
||||
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
||||
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.jinja = {}));
|
||||
})(this, (function (jinja) {
|
||||
"use strict";
|
||||
var STRINGS = /'(\\.|[^'])*'|"(\\.|[^"'"])*"/g;
|
||||
var IDENTS_AND_NUMS = /([$_a-z][$\w]*)|([+-]?\d+(\.\d+)?)/g;
|
||||
var NUMBER = /^[+-]?\d+(\.\d+)?$/;
|
||||
//non-primitive literals (array and object literals)
|
||||
var NON_PRIMITIVES = /\[[@#~](,[@#~])*\]|\[\]|\{([@i]:[@#~])(,[@i]:[@#~])*\}|\{\}/g;
|
||||
//bare identifiers such as variables and in object literals: {foo: 'value'}
|
||||
var IDENTIFIERS = /[$_a-z][$\w]*/ig;
|
||||
var VARIABLES = /i(\.i|\[[@#i]\])*/g;
|
||||
var ACCESSOR = /(\.i|\[[@#i]\])/g;
|
||||
var OPERATORS = /(===?|!==?|>=?|<=?|&&|\|\||[+\-\*\/%])/g;
|
||||
//extended (english) operators
|
||||
var EOPS = /(^|[^$\w])(and|or|not|is|isnot)([^$\w]|$)/g;
|
||||
var LEADING_SPACE = /^\s+/;
|
||||
var TRAILING_SPACE = /\s+$/;
|
||||
|
||||
var START_TOKEN = /\{\{\{|\{\{|\{%|\{#/;
|
||||
var TAGS = {
|
||||
'{{{': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?\}\}\}/,
|
||||
'{{': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?\}\}/,
|
||||
'{%': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?%\}/,
|
||||
'{#': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?#\}/
|
||||
};
|
||||
|
||||
var delimeters = {
|
||||
'{%': 'directive',
|
||||
'{{': 'output',
|
||||
'{#': 'comment'
|
||||
};
|
||||
|
||||
var operators = {
|
||||
and: '&&',
|
||||
or: '||',
|
||||
not: '!',
|
||||
is: '==',
|
||||
isnot: '!='
|
||||
};
|
||||
|
||||
var constants = {
|
||||
'true': true,
|
||||
'false': false,
|
||||
'null': null
|
||||
};
|
||||
|
||||
function Parser() {
|
||||
this.nest = [];
|
||||
this.compiled = [];
|
||||
this.childBlocks = 0;
|
||||
this.parentBlocks = 0;
|
||||
this.isSilent = false;
|
||||
}
|
||||
|
||||
Parser.prototype.push = function (line) {
|
||||
if (!this.isSilent) {
|
||||
this.compiled.push(line);
|
||||
}
|
||||
};
|
||||
|
||||
Parser.prototype.parse = function (src) {
|
||||
this.tokenize(src);
|
||||
return this.compiled;
|
||||
};
|
||||
|
||||
Parser.prototype.tokenize = function (src) {
|
||||
var lastEnd = 0, parser = this, trimLeading = false;
|
||||
matchAll(src, START_TOKEN, function (open, index, src) {
|
||||
//here we match the rest of the src against a regex for this tag
|
||||
var match = src.slice(index + open.length).match(TAGS[open]);
|
||||
match = (match ? match[0] : '');
|
||||
//here we sub out strings so we don't get false matches
|
||||
var simplified = match.replace(STRINGS, '@');
|
||||
//if we don't have a close tag or there is a nested open tag
|
||||
if (!match || ~simplified.indexOf(open)) {
|
||||
return index + 1;
|
||||
}
|
||||
var inner = match.slice(0, 0 - open.length);
|
||||
//check for white-space collapse syntax
|
||||
if (inner.charAt(0) === '-') var wsCollapseLeft = true;
|
||||
if (inner.slice(-1) === '-') var wsCollapseRight = true;
|
||||
inner = inner.replace(/^-|-$/g, '').trim();
|
||||
//if we're in raw mode and we are not looking at an "endraw" tag, move along
|
||||
if (parser.rawMode && (open + inner) !== '{%endraw') {
|
||||
return index + 1;
|
||||
}
|
||||
var text = src.slice(lastEnd, index);
|
||||
lastEnd = index + open.length + match.length;
|
||||
if (trimLeading) text = trimLeft(text);
|
||||
if (wsCollapseLeft) text = trimRight(text);
|
||||
if (wsCollapseRight) trimLeading = true;
|
||||
if (open === '{{{') {
|
||||
//liquid-style: make {{{x}}} => {{x|safe}}
|
||||
open = '{{';
|
||||
inner += '|safe';
|
||||
}
|
||||
parser.textHandler(text);
|
||||
parser.tokenHandler(open, inner);
|
||||
});
|
||||
var text = src.slice(lastEnd);
|
||||
if (trimLeading) text = trimLeft(text);
|
||||
this.textHandler(text);
|
||||
};
|
||||
|
||||
Parser.prototype.textHandler = function (text) {
|
||||
this.push('write(' + JSON.stringify(text) + ');');
|
||||
};
|
||||
|
||||
Parser.prototype.tokenHandler = function (open, inner) {
|
||||
var type = delimeters[open];
|
||||
if (type === 'directive') {
|
||||
this.compileTag(inner);
|
||||
} else if (type === 'output') {
|
||||
var extracted = this.extractEnt(inner, STRINGS, '@');
|
||||
//replace || operators with ~
|
||||
extracted.src = extracted.src.replace(/\|\|/g, '~').split('|');
|
||||
//put back || operators
|
||||
extracted.src = extracted.src.map(function (part) {
|
||||
return part.split('~').join('||');
|
||||
});
|
||||
var parts = this.injectEnt(extracted, '@');
|
||||
if (parts.length > 1) {
|
||||
var filters = parts.slice(1).map(this.parseFilter.bind(this));
|
||||
this.push('filter(' + this.parseExpr(parts[0]) + ',' + filters.join(',') + ');');
|
||||
} else {
|
||||
this.push('filter(' + this.parseExpr(parts[0]) + ');');
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Parser.prototype.compileTag = function (str) {
|
||||
var directive = str.split(' ')[0];
|
||||
var handler = tagHandlers[directive];
|
||||
if (!handler) {
|
||||
throw new Error('Invalid tag: ' + str);
|
||||
}
|
||||
handler.call(this, str.slice(directive.length).trim());
|
||||
};
|
||||
|
||||
Parser.prototype.parseFilter = function (src) {
|
||||
src = src.trim();
|
||||
var match = src.match(/[:(]/);
|
||||
var i = match ? match.index : -1;
|
||||
if (i < 0) return JSON.stringify([src]);
|
||||
var name = src.slice(0, i);
|
||||
var args = src.charAt(i) === ':' ? src.slice(i + 1) : src.slice(i + 1, -1);
|
||||
args = this.parseExpr(args, {terms: true});
|
||||
return '[' + JSON.stringify(name) + ',' + args + ']';
|
||||
};
|
||||
|
||||
Parser.prototype.extractEnt = function (src, regex, placeholder) {
|
||||
var subs = [], isFunc = typeof placeholder == 'function';
|
||||
src = src.replace(regex, function (str) {
|
||||
var replacement = isFunc ? placeholder(str) : placeholder;
|
||||
if (replacement) {
|
||||
subs.push(str);
|
||||
return replacement;
|
||||
}
|
||||
return str;
|
||||
});
|
||||
return {src: src, subs: subs};
|
||||
};
|
||||
|
||||
Parser.prototype.injectEnt = function (extracted, placeholder) {
|
||||
var src = extracted.src, subs = extracted.subs, isArr = Array.isArray(src);
|
||||
var arr = (isArr) ? src : [src];
|
||||
var re = new RegExp('[' + placeholder + ']', 'g'), i = 0;
|
||||
arr.forEach(function (src, index) {
|
||||
arr[index] = src.replace(re, function () {
|
||||
return subs[i++];
|
||||
});
|
||||
});
|
||||
return isArr ? arr : arr[0];
|
||||
};
|
||||
|
||||
//replace complex literals without mistaking subscript notation with array literals
|
||||
Parser.prototype.replaceComplex = function (s) {
|
||||
var parsed = this.extractEnt(s, /i(\.i|\[[@#i]\])+/g, 'v');
|
||||
parsed.src = parsed.src.replace(NON_PRIMITIVES, '~');
|
||||
return this.injectEnt(parsed, 'v');
|
||||
};
|
||||
|
||||
//parse expression containing literals (including objects/arrays) and variables (including dot and subscript notation)
|
||||
//valid expressions: `a + 1 > b.c or c == null`, `a and b[1] != c`, `(a < b) or (c < d and e)`, 'a || [1]`
|
||||
Parser.prototype.parseExpr = function (src, opts) {
|
||||
opts = opts || {};
|
||||
//extract string literals -> @
|
||||
var parsed1 = this.extractEnt(src, STRINGS, '@');
|
||||
//note: this will catch {not: 1} and a.is; could we replace temporarily and then check adjacent chars?
|
||||
parsed1.src = parsed1.src.replace(EOPS, function (s, before, op, after) {
|
||||
return (op in operators) ? before + operators[op] + after : s;
|
||||
});
|
||||
//sub out non-string literals (numbers/true/false/null) -> #
|
||||
// the distinction is necessary because @ can be object identifiers, # cannot
|
||||
var parsed2 = this.extractEnt(parsed1.src, IDENTS_AND_NUMS, function (s) {
|
||||
return (s in constants || NUMBER.test(s)) ? '#' : null;
|
||||
});
|
||||
//sub out object/variable identifiers -> i
|
||||
var parsed3 = this.extractEnt(parsed2.src, IDENTIFIERS, 'i');
|
||||
//remove white-space
|
||||
parsed3.src = parsed3.src.replace(/\s+/g, '');
|
||||
|
||||
//the rest of this is simply to boil the expression down and check validity
|
||||
var simplified = parsed3.src;
|
||||
//sub out complex literals (objects/arrays) -> ~
|
||||
// the distinction is necessary because @ and # can be subscripts but ~ cannot
|
||||
while (simplified !== (simplified = this.replaceComplex(simplified))) ;
|
||||
//now @ represents strings, # represents other primitives and ~ represents non-primitives
|
||||
//replace complex variables (those with dot/subscript accessors) -> v
|
||||
while (simplified !== (simplified = simplified.replace(/i(\.i|\[[@#i]\])+/, 'v'))) ;
|
||||
//empty subscript or complex variables in subscript, are not permitted
|
||||
simplified = simplified.replace(/[iv]\[v?\]/g, 'x');
|
||||
//sub in "i" for @ and # and ~ and v (now "i" represents all literals, variables and identifiers)
|
||||
simplified = simplified.replace(/[@#~v]/g, 'i');
|
||||
//sub out operators
|
||||
simplified = simplified.replace(OPERATORS, '%');
|
||||
//allow 'not' unary operator
|
||||
simplified = simplified.replace(/!+[i]/g, 'i');
|
||||
var terms = opts.terms ? simplified.split(',') : [simplified];
|
||||
terms.forEach(function (term) {
|
||||
//simplify logical grouping
|
||||
while (term !== (term = term.replace(/\(i(%i)*\)/g, 'i'))) ;
|
||||
if (!term.match(/^i(%i)*/)) {
|
||||
throw new Error('Invalid expression: ' + src + " " + term);
|
||||
}
|
||||
});
|
||||
parsed3.src = parsed3.src.replace(VARIABLES, this.parseVar.bind(this));
|
||||
parsed2.src = this.injectEnt(parsed3, 'i');
|
||||
parsed1.src = this.injectEnt(parsed2, '#');
|
||||
return this.injectEnt(parsed1, '@');
|
||||
};
|
||||
|
||||
Parser.prototype.parseVar = function (src) {
|
||||
var args = Array.prototype.slice.call(arguments);
|
||||
var str = args.pop(), index = args.pop();
|
||||
//quote bare object identifiers (might be a reserved word like {while: 1})
|
||||
if (src === 'i' && str.charAt(index + 1) === ':') {
|
||||
return '"i"';
|
||||
}
|
||||
var parts = ['"i"'];
|
||||
src.replace(ACCESSOR, function (part) {
|
||||
if (part === '.i') {
|
||||
parts.push('"i"');
|
||||
} else if (part === '[i]') {
|
||||
parts.push('get("i")');
|
||||
} else {
|
||||
parts.push(part.slice(1, -1));
|
||||
}
|
||||
});
|
||||
return 'get(' + parts.join(',') + ')';
|
||||
};
|
||||
|
||||
//escapes a name to be used as a javascript identifier
|
||||
Parser.prototype.escName = function (str) {
|
||||
return str.replace(/\W/g, function (s) {
|
||||
return '$' + s.charCodeAt(0).toString(16);
|
||||
});
|
||||
};
|
||||
|
||||
Parser.prototype.parseQuoted = function (str) {
|
||||
if (str.charAt(0) === "'") {
|
||||
str = str.slice(1, -1).replace(/\\.|"/, function (s) {
|
||||
if (s === "\\'") return "'";
|
||||
return s.charAt(0) === '\\' ? s : ('\\' + s);
|
||||
});
|
||||
str = '"' + str + '"';
|
||||
}
|
||||
//todo: try/catch or deal with invalid characters (linebreaks, control characters)
|
||||
return JSON.parse(str);
|
||||
};
|
||||
|
||||
|
||||
//the context 'this' inside tagHandlers is the parser instance
|
||||
var tagHandlers = {
|
||||
'if': function (expr) {
|
||||
this.push('if (' + this.parseExpr(expr) + ') {');
|
||||
this.nest.unshift('if');
|
||||
},
|
||||
'else': function () {
|
||||
if (this.nest[0] === 'for') {
|
||||
this.push('}, function() {');
|
||||
} else {
|
||||
this.push('} else {');
|
||||
}
|
||||
},
|
||||
'elseif': function (expr) {
|
||||
this.push('} else if (' + this.parseExpr(expr) + ') {');
|
||||
},
|
||||
'endif': function () {
|
||||
this.nest.shift();
|
||||
this.push('}');
|
||||
},
|
||||
'for': function (str) {
|
||||
var i = str.indexOf(' in ');
|
||||
var name = str.slice(0, i).trim();
|
||||
var expr = str.slice(i + 4).trim();
|
||||
this.push('each(' + this.parseExpr(expr) + ',' + JSON.stringify(name) + ',function() {');
|
||||
this.nest.unshift('for');
|
||||
},
|
||||
'endfor': function () {
|
||||
this.nest.shift();
|
||||
this.push('});');
|
||||
},
|
||||
'raw': function () {
|
||||
this.rawMode = true;
|
||||
},
|
||||
'endraw': function () {
|
||||
this.rawMode = false;
|
||||
},
|
||||
'set': function (stmt) {
|
||||
var i = stmt.indexOf('=');
|
||||
var name = stmt.slice(0, i).trim();
|
||||
var expr = stmt.slice(i + 1).trim();
|
||||
this.push('set(' + JSON.stringify(name) + ',' + this.parseExpr(expr) + ');');
|
||||
},
|
||||
'block': function (name) {
|
||||
if (this.isParent) {
|
||||
++this.parentBlocks;
|
||||
var blockName = 'block_' + (this.escName(name) || this.parentBlocks);
|
||||
this.push('block(typeof ' + blockName + ' == "function" ? ' + blockName + ' : function() {');
|
||||
} else if (this.hasParent) {
|
||||
this.isSilent = false;
|
||||
++this.childBlocks;
|
||||
blockName = 'block_' + (this.escName(name) || this.childBlocks);
|
||||
this.push('function ' + blockName + '() {');
|
||||
}
|
||||
this.nest.unshift('block');
|
||||
},
|
||||
'endblock': function () {
|
||||
this.nest.shift();
|
||||
if (this.isParent) {
|
||||
this.push('});');
|
||||
} else if (this.hasParent) {
|
||||
this.push('}');
|
||||
this.isSilent = true;
|
||||
}
|
||||
},
|
||||
'extends': function (name) {
|
||||
name = this.parseQuoted(name);
|
||||
var parentSrc = this.readTemplateFile(name);
|
||||
this.isParent = true;
|
||||
this.tokenize(parentSrc);
|
||||
this.isParent = false;
|
||||
this.hasParent = true;
|
||||
//silence output until we enter a child block
|
||||
this.isSilent = true;
|
||||
},
|
||||
'include': function (name) {
|
||||
name = this.parseQuoted(name);
|
||||
var incSrc = this.readTemplateFile(name);
|
||||
this.isInclude = true;
|
||||
this.tokenize(incSrc);
|
||||
this.isInclude = false;
|
||||
}
|
||||
};
|
||||
|
||||
//liquid style
|
||||
tagHandlers.assign = tagHandlers.set;
|
||||
//python/django style
|
||||
tagHandlers.elif = tagHandlers.elseif;
|
||||
|
||||
var getRuntime = function runtime(data, opts) {
|
||||
var defaults = {autoEscape: 'toJson'};
|
||||
var _toString = Object.prototype.toString;
|
||||
var _hasOwnProperty = Object.prototype.hasOwnProperty;
|
||||
var getKeys = Object.keys || function (obj) {
|
||||
var keys = [];
|
||||
for (var n in obj) if (_hasOwnProperty.call(obj, n)) keys.push(n);
|
||||
return keys;
|
||||
};
|
||||
var isArray = Array.isArray || function (obj) {
|
||||
return _toString.call(obj) === '[object Array]';
|
||||
};
|
||||
var create = Object.create || function (obj) {
|
||||
function F() {
|
||||
}
|
||||
|
||||
F.prototype = obj;
|
||||
return new F();
|
||||
};
|
||||
var toString = function (val) {
|
||||
if (val == null) return '';
|
||||
return (typeof val.toString == 'function') ? val.toString() : _toString.call(val);
|
||||
};
|
||||
var extend = function (dest, src) {
|
||||
var keys = getKeys(src);
|
||||
for (var i = 0, len = keys.length; i < len; i++) {
|
||||
var key = keys[i];
|
||||
dest[key] = src[key];
|
||||
}
|
||||
return dest;
|
||||
};
|
||||
//get a value, lexically, starting in current context; a.b -> get("a","b")
|
||||
var get = function () {
|
||||
var val, n = arguments[0], c = stack.length;
|
||||
while (c--) {
|
||||
val = stack[c][n];
|
||||
if (typeof val != 'undefined') break;
|
||||
}
|
||||
for (var i = 1, len = arguments.length; i < len; i++) {
|
||||
if (val == null) continue;
|
||||
n = arguments[i];
|
||||
val = (_hasOwnProperty.call(val, n)) ? val[n] : (typeof val._get == 'function' ? (val[n] = val._get(n)) : null);
|
||||
}
|
||||
return (val == null) ? '' : val;
|
||||
};
|
||||
var set = function (n, val) {
|
||||
stack[stack.length - 1][n] = val;
|
||||
};
|
||||
var push = function (ctx) {
|
||||
stack.push(ctx || {});
|
||||
};
|
||||
var pop = function () {
|
||||
stack.pop();
|
||||
};
|
||||
var write = function (str) {
|
||||
output.push(str);
|
||||
};
|
||||
var filter = function (val) {
|
||||
for (var i = 1, len = arguments.length; i < len; i++) {
|
||||
var arr = arguments[i], name = arr[0], filter = filters[name];
|
||||
if (filter) {
|
||||
arr[0] = val;
|
||||
//now arr looks like [val, arg1, arg2]
|
||||
val = filter.apply(data, arr);
|
||||
} else {
|
||||
throw new Error('Invalid filter: ' + name);
|
||||
}
|
||||
}
|
||||
if (opts.autoEscape && name !== opts.autoEscape && name !== 'safe') {
|
||||
//auto escape if not explicitly safe or already escaped
|
||||
val = filters[opts.autoEscape].call(data, val);
|
||||
}
|
||||
output.push(val);
|
||||
};
|
||||
var each = function (obj, loopvar, fn1, fn2) {
|
||||
if (obj == null) return;
|
||||
var arr = isArray(obj) ? obj : getKeys(obj), len = arr.length;
|
||||
var ctx = {loop: {length: len, first: arr[0], last: arr[len - 1]}};
|
||||
push(ctx);
|
||||
for (var i = 0; i < len; i++) {
|
||||
extend(ctx.loop, {index: i + 1, index0: i});
|
||||
fn1(ctx[loopvar] = arr[i]);
|
||||
}
|
||||
if (len === 0 && fn2) fn2();
|
||||
pop();
|
||||
};
|
||||
var block = function (fn) {
|
||||
push();
|
||||
fn();
|
||||
pop();
|
||||
};
|
||||
var render = function () {
|
||||
return output.join('');
|
||||
};
|
||||
data = data || {};
|
||||
opts = extend(defaults, opts || {});
|
||||
var filters = extend({
|
||||
html: function (val) {
|
||||
return toString(val)
|
||||
.split('&').join('&')
|
||||
.split('<').join('<')
|
||||
.split('>').join('>')
|
||||
.split('"').join('"');
|
||||
},
|
||||
safe: function (val) {
|
||||
return val;
|
||||
},
|
||||
toJson: function (val) {
|
||||
if (typeof val === 'object') {
|
||||
return JSON.stringify(val);
|
||||
}
|
||||
return toString(val);
|
||||
}
|
||||
}, opts.filters || {});
|
||||
var stack = [create(data || {})], output = [];
|
||||
return {
|
||||
get: get,
|
||||
set: set,
|
||||
push: push,
|
||||
pop: pop,
|
||||
write: write,
|
||||
filter: filter,
|
||||
each: each,
|
||||
block: block,
|
||||
render: render
|
||||
};
|
||||
};
|
||||
|
||||
var runtime;
|
||||
|
||||
jinja.compile = function (markup, opts) {
|
||||
opts = opts || {};
|
||||
var parser = new Parser();
|
||||
parser.readTemplateFile = this.readTemplateFile;
|
||||
var code = [];
|
||||
code.push('function render($) {');
|
||||
code.push('var get = $.get, set = $.set, push = $.push, pop = $.pop, write = $.write, filter = $.filter, each = $.each, block = $.block;');
|
||||
code.push.apply(code, parser.parse(markup));
|
||||
code.push('return $.render();');
|
||||
code.push('}');
|
||||
code = code.join('\n');
|
||||
if (opts.runtime === false) {
|
||||
var fn = new Function('data', 'options', 'return (' + code + ')(runtime(data, options))');
|
||||
} else {
|
||||
runtime = runtime || (runtime = getRuntime.toString());
|
||||
fn = new Function('data', 'options', 'return (' + code + ')((' + runtime + ')(data, options))');
|
||||
}
|
||||
return {render: fn};
|
||||
};
|
||||
|
||||
jinja.render = function (markup, data, opts) {
|
||||
var tmpl = jinja.compile(markup);
|
||||
return tmpl.render(data, opts);
|
||||
};
|
||||
|
||||
jinja.templateFiles = [];
|
||||
|
||||
jinja.readTemplateFile = function (name) {
|
||||
var templateFiles = this.templateFiles || [];
|
||||
var templateFile = templateFiles[name];
|
||||
if (templateFile == null) {
|
||||
throw new Error('Template file not found: ' + name);
|
||||
}
|
||||
return templateFile;
|
||||
};
|
||||
|
||||
|
||||
/*!
|
||||
* Helpers
|
||||
*/
|
||||
|
||||
function trimLeft(str) {
|
||||
return str.replace(LEADING_SPACE, '');
|
||||
}
|
||||
|
||||
function trimRight(str) {
|
||||
return str.replace(TRAILING_SPACE, '');
|
||||
}
|
||||
|
||||
function matchAll(str, reg, fn) {
|
||||
//copy as global
|
||||
reg = new RegExp(reg.source, 'g' + (reg.ignoreCase ? 'i' : '') + (reg.multiline ? 'm' : ''));
|
||||
var match;
|
||||
while ((match = reg.exec(str))) {
|
||||
var result = fn(match[0], match.index, str);
|
||||
if (typeof result == 'number') {
|
||||
reg.lastIndex = result;
|
||||
}
|
||||
}
|
||||
}
|
||||
}));
|
265
肥猫/api/jsencrypt.js
Normal file
265
肥猫/api/jsencrypt.js
Normal file
File diff suppressed because one or more lines are too long
1737
肥猫/api/json5.js
Normal file
1737
肥猫/api/json5.js
Normal file
File diff suppressed because one or more lines are too long
2
肥猫/api/node-rsa.js
Normal file
2
肥猫/api/node-rsa.js
Normal file
File diff suppressed because one or more lines are too long
2
肥猫/api/pako.min.js
vendored
Normal file
2
肥猫/api/pako.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
412
肥猫/api/模板.js
Normal file
412
肥猫/api/模板.js
Normal file
@ -0,0 +1,412 @@
|
||||
if (typeof Object.assign !== 'function') {
|
||||
Object.assign = function () {
|
||||
let target = arguments[0];
|
||||
for (let i = 1; i < arguments.length; i++) {
|
||||
let source = arguments[i];
|
||||
for (let key in source) {
|
||||
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
||||
target[key] = source[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
return target;
|
||||
};
|
||||
}
|
||||
|
||||
// 通用免嗅探播放
|
||||
let common_lazy = `js:
|
||||
let html = request(input);
|
||||
let hconf = html.match(/r player_.*?=(.*?)</)[1];
|
||||
let json = JSON5.parse(hconf);
|
||||
let url = json.url;
|
||||
if (json.encrypt == '1') {
|
||||
url = unescape(url);
|
||||
} else if (json.encrypt == '2') {
|
||||
url = unescape(base64Decode(url));
|
||||
}
|
||||
if (/\\.(m3u8|mp4|m4a|mp3)/.test(url)) {
|
||||
input = {
|
||||
parse: 0,
|
||||
jx: 0,
|
||||
url: url,
|
||||
};
|
||||
} else {
|
||||
input;
|
||||
}`;
|
||||
// 默认嗅探播放
|
||||
|
||||
let def_lazy = `js:
|
||||
input = { parse: 1, url: input, js: '' };`;
|
||||
// 采集站播放
|
||||
|
||||
let cj_lazy = `js:
|
||||
if (/\\.(m3u8|mp4)/.test(input)) {
|
||||
input = { parse: 0, url: input };
|
||||
} else {
|
||||
if (rule.parse_url.startsWith('json:')) {
|
||||
let purl = rule.parse_url.replace('json:', '') + input;
|
||||
let html = request(purl);
|
||||
let json = JSON.parse(html);
|
||||
if (json.url) {
|
||||
input = { parse: 0, url: json.url };
|
||||
}
|
||||
} else {
|
||||
input = rule.parse_url + input;
|
||||
}
|
||||
}`;
|
||||
|
||||
function getMubans() {
|
||||
const mubanDict = { // 模板字典
|
||||
mx: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/vodshow/fyclass--------fypage---/',
|
||||
searchUrl: '/vodsearch/**----------fypage---/',
|
||||
class_parse: '.top_nav li;a&&Text;a&&href;.*/(.*?)/',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable: 0,
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
},
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
double: true,
|
||||
推荐: '.cbox_list;*;*;*;*;*',
|
||||
一级: 'ul.vodlist li;a&&title;a&&data-original;.pic_text&&Text;a&&href',
|
||||
二级: {
|
||||
title: 'h2&&Text;.content_detail:eq(1)&&li&&a:eq(2)&&Text',
|
||||
img: '.vodlist_thumb&&data-original',
|
||||
desc: '.content_detail:eq(1)&&li:eq(1)&&Text;.content_detail:eq(1)&&li&&a&&Text;.content_detail:eq(1)&&li&&a:eq(1)&&Text;.content_detail:eq(1)&&li:eq(2)&&Text;.content_detail:eq(1)&&li:eq(3)&&Text',
|
||||
content: '.content_desc&&span&&Text',
|
||||
tabs: '.play_source_tab&&a',
|
||||
lists: '.content_playlist:eq(#id) li',
|
||||
},
|
||||
搜索: '*',
|
||||
},
|
||||
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(0):lt(10);a&&Text;a&&href;/(\\d+)',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: '.tab-list.active;a.module-poster-item.module-item;.module-poster-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href',
|
||||
一级: 'body a.module-poster-item.module-item;a&&title;.lazyload&&data-original;.module-item-note&&Text;a&&href',
|
||||
二级: {
|
||||
title: 'h1&&Text;.module-info-tag-link:eq(-1)&&Text',
|
||||
img: '.lazyload&&data-original||data-src||src',
|
||||
desc: '.module-info-item:eq(-2)&&Text;.module-info-tag-link&&Text;.module-info-tag-link:eq(1)&&Text;.module-info-item:eq(2)&&Text;.module-info-item:eq(1)&&Text',
|
||||
content: '.module-info-introduction&&Text',
|
||||
tabs: '.module-tab-item',
|
||||
lists: '.module-play-list:eq(#id) a',
|
||||
tab_text: 'div--small&&Text',
|
||||
},
|
||||
搜索: '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: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: '.module-list;.module-items&&.module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
|
||||
一级: '.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(3)&&Text;.tag-link:eq(2)&&Text;.tag-link:eq(1)&&Text;.video-info-items:eq(1)&&Text;.video-info-items:eq(0)&&Text',
|
||||
content: '.vod_content&&Text',
|
||||
tabs: '.module-tab-item',
|
||||
lists: '.module-player-list:eq(#id)&&.scroll-content&&a',
|
||||
tab_text: 'div--small&&Text',
|
||||
},
|
||||
搜索: '.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(7);a&&Text;a&&href;/(\\d+).html',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: 'ul.myui-vodlist.clearfix;li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
一级: '.myui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
二级: {
|
||||
title: '.myui-content__detail .title--span&&Text;.myui-content__detail p.data:eq(3)&&Text',
|
||||
img: '.myui-content__thumb .lazyload&&data-original',
|
||||
desc: '.myui-content__detail p.otherbox&&Text;.year&&Text;.myui-content__detail p.data:eq(4)&&Text;.myui-content__detail p.data:eq(2)&&Text;.myui-content__detail p.data:eq(0)&&Text',
|
||||
content: '.content&&Text',
|
||||
tabs: '.myui-panel__head&&li',
|
||||
// tabs: '.nav-tabs&&li',
|
||||
lists: '.myui-content__list:eq(#id) li',
|
||||
},
|
||||
搜索: '#searchList li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href;.detail&&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;.*/(.*?).html',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: 'ul.stui-vodlist.clearfix;li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href',
|
||||
一级: '.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)&&a&&Text',
|
||||
title1: '.stui-content__detail .title&&Text;.stui-content__detail&&p&&Text',
|
||||
img: '.stui-content__thumb .lazyload&&data-original',
|
||||
desc: '.stui-content__detail p&&Text;.stui-content__detail&&p:eq(-2)&&a:eq(2)&&Text;.stui-content__detail&&p:eq(-2)&&a:eq(1)&&Text;.stui-content__detail p:eq(2)&&Text;.stui-content__detail p:eq(1)&&Text',
|
||||
desc1: '.stui-content__detail p:eq(4)&&Text;;;.stui-content__detail p:eq(1)&&Text',
|
||||
content: '.detail&&Text',
|
||||
tabs: '.stui-pannel__head h3',
|
||||
tabs1: '.stui-vodlist__head h3',
|
||||
lists: '.stui-content__playlist:eq(#id) li',
|
||||
},
|
||||
搜索: 'ul.stui-vodlist__media,ul.stui-vodlist,#searchList li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href;.detail&&Text',
|
||||
}, 默认: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '',
|
||||
searchUrl: '',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable: 0,
|
||||
filter: '',
|
||||
filter_url: '',
|
||||
filter_def: {},
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
},
|
||||
timeout: 5000,
|
||||
class_parse: '#side-menu li;a&&Text;a&&href;/(.*?)\.html',
|
||||
cate_exclude: '',
|
||||
play_parse: true,
|
||||
lazy: def_lazy,
|
||||
double: true,
|
||||
推荐: '列表1;列表2;标题;图片;描述;链接;详情',
|
||||
一级: '列表;标题;图片;描述;链接;详情',
|
||||
二级: {
|
||||
title: 'vod_name;vod_type',
|
||||
img: '图片链接',
|
||||
desc: '主要信息;年代;地区;演员;导演',
|
||||
content: '简介',
|
||||
tabs: '',
|
||||
lists: 'xx:eq(#id)&&a',
|
||||
tab_text: 'body&&Text',
|
||||
list_text: 'body&&Text',
|
||||
list_url: 'a&&href',
|
||||
},
|
||||
搜索: '列表;标题;图片;描述;链接;详情',
|
||||
}, 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;a&&Text;a&&href;.*/(.*?).html',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: 'ul.fed-list-info.fed-part-rows;li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
|
||||
一级: '.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: common_lazy,
|
||||
double: true,
|
||||
推荐: '.hl-vod-list;li;a&&title;a&&data-original;.remarks&&Text;a&&href',
|
||||
一级: '.hl-vod-list&&.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
|
||||
二级: {
|
||||
title: '.hl-dc-title&&Text;.hl-dc-content&&li:eq(6)&&Text',
|
||||
img: '.hl-lazy&&data-original',
|
||||
desc: '.hl-dc-content&&li:eq(10)&&Text;.hl-dc-content&&li:eq(4)&&Text;.hl-dc-content&&li:eq(5)&&Text;.hl-dc-content&&li:eq(2)&&Text;.hl-dc-content&&li:eq(3)&&Text',
|
||||
content: '.hl-content-text&&Text',
|
||||
tabs: '.hl-tabs&&a',
|
||||
tab_text: 'a--span&&Text',
|
||||
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: common_lazy,
|
||||
double: true,
|
||||
推荐: '.list-a.size;li;a&&title;.lazy&&data-original;.bt&&Text;a&&href',
|
||||
一级: '.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: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: '.indexShowBox;ul&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
|
||||
一级: '.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=**&limit=50',
|
||||
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',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
推荐: '.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(2)--strong&&Text',
|
||||
img: '.detail-pic&&data-original',
|
||||
desc: '.slide-info-remarks&&Text;.slide-info-remarks:eq(1)&&Text;.slide-info-remarks:eq(2)&&Text;.slide-info:eq(1)--strong&&Text;.info-parameter&&ul&&li:eq(3)&&Text',
|
||||
content: '#height_limit&&Text',
|
||||
tabs: '.anthology.wow.fadeInUp.animated&&.swiper-wrapper&&a',
|
||||
tab_text: 'a--span&&Text',
|
||||
lists: '.anthology-list-box:eq(#id) li',
|
||||
},
|
||||
搜索: 'json:list;name;pic;;id',
|
||||
}, 采集1: {
|
||||
title: '',
|
||||
host: '',
|
||||
homeTid: '13',
|
||||
homeUrl: '/api.php/provide/vod/?ac=detail&t={{rule.homeTid}}',
|
||||
detailUrl: '/api.php/provide/vod/?ac=detail&ids=fyid',
|
||||
searchUrl: '/api.php/provide/vod/?wd=**&pg=fypage',
|
||||
url: '/api.php/provide/vod/?ac=detail&pg=fypage&t=fyclass',
|
||||
headers: {'User-Agent': 'MOBILE_UA'},
|
||||
timeout: 5000, // class_name: '电影&电视剧&综艺&动漫',
|
||||
// class_url: '1&2&3&4',
|
||||
// class_parse:'js:let html=request(input);input=JSON.parse(html).class;',
|
||||
class_parse: 'json:class;',
|
||||
limit: 20,
|
||||
multi: 1,
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 1,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
play_parse: true,
|
||||
parse_url: '',
|
||||
lazy: cj_lazy,
|
||||
推荐: '*',
|
||||
一级: 'json:list;vod_name;vod_pic;vod_remarks;vod_id;vod_play_from',
|
||||
二级: `js:
|
||||
let html=request(input);
|
||||
html=JSON.parse(html);
|
||||
let data=html.list;
|
||||
VOD=data[0];`,
|
||||
搜索: '*',
|
||||
},
|
||||
};
|
||||
return JSON.parse(JSON.stringify(mubanDict));
|
||||
}
|
||||
|
||||
var mubanDict = getMubans();
|
||||
var muban = getMubans();
|
||||
export default {muban, getMubans};
|
25
肥猫/js/肥猫4K.js
Normal file
25
肥猫/js/肥猫4K.js
Normal file
@ -0,0 +1,25 @@
|
||||
Object.assign(muban.mxone5.二级, {
|
||||
desc: '.video-info-items:eq(3)&&Text;.tag-link:eq(2)&&Text;.tag-link:eq(3)&&Text;.video-info-actor:eq(1)&&Text;.video-info-actor:eq(0)&&Text',
|
||||
content: '.sqjj_a--span&&Text',
|
||||
lists: '.module-row-one:eq(#id)&&a.module-row-text',
|
||||
list_text: 'h4&&Text',
|
||||
list_url: 'a&&data-clipboard-text',
|
||||
list_url_prefix: 'push://'
|
||||
});
|
||||
var rule = {
|
||||
title: '蜡笔盘盘',
|
||||
模板: 'mxone5',
|
||||
host: 'http://labipan.com',
|
||||
homeUrl: '/index.php/vod/show/id/24/page/1.html',
|
||||
url: '/index.php/vod/show/id/fyclass/page/fypage.html',
|
||||
filter_url: '{{fl.cateId}}{{fl.area}}{{fl.by}}{{fl.class}}{{fl.lang}}{{fl.letter}}/page/fypage{{fl.year}}',
|
||||
searchUrl: '/index.php/vod/search.html?wd=**',
|
||||
filter: 'H4sIAAAAAAAAA+2bW08bRxTHn5NPUfmZyqy55y33EHK/J1UenGC1qJRKgVZCERJgMLYB2yCCcW1uDRdzMZhLKZgYfxnPrv0tusuMz8yctcSioKaq5pH/7+TM7JnZ2fNfbz5evuTSXFd++Oj62dfruuJ67+3xtba7alxd3l985t/GzjGZGzX//t3b+ZvvNLDLlMlwuuxPW7L5h6uvhqrG6gQ5OjZCIwy4O9rdjZwGd3T/sEybgOrBmWIuJNNmTgdiev+0TFuAljdmjIUBmWq1gEk4bUyhaWmaiIv5FMIeV99bK4BVpdPb3c2LQkKr5pU4LAqZTpnxldynmdxMkysjhzBNLoAcwjT5OtBAVJMXCA1ENcgC1yZkoZq8VGguVKuElDIrZGxdDmEazCW8beRRCNPkhbNdkaVByPKI7YqYBtPNrBRPFtB0qQZZApPlxBrKQjXIMrduXiPKQrVzrJE+uGlMT6AQqkGIP6wP/oFCqAalO46S4UNUOqrBLTE7qc8syyFMg4GmR0qhHBqIalCXky1j6i+S30GlARkCo0ulz3jXUA1CIgES3UUhVINdU4iZy4t2DdX4SqX02Qm8UqcahAwVjA106UyDAuYnjONUtUuTiHgEeD/4vMIJkMqSsZzTE2BptZwIVMaxErmLhxmSzDMAa7aS0A+3q8QxwIud1Y9OquWjABY4vqynNqU4JsGI82vmP5MimASVOongCCbBKHufcASTYFlHd3AEk/g++xtHMImPkrWPkpVyjGdJbkXOQSXIMRQ1K06Ca3IaUGG+ywUjmjFCCXnKoPLjaUEfLZj/WB4UVIgbPigeT8tBVBI3WKe360e+wUrbmVK63+kGS+bN+MoAViI3k4QlwBFMgoXeXcIRTILNEs+T8TgO4qqwqWxBVBI2Jo5gkrCpbBFUEraM7ZqpJJSdbPnlCCqJZe/1eT/wsuvxg3J832HZPbWe+kp6K437VBBoHaZ1IvVg6hGphqkm0lpMawWqtSCqtYi0GdNmkTZh2iTSRkwbRdqAaYNIca00sVYarpUm1krDtdLEWmm4VppYKw3XyuoMxfvO19PjE7YAycT17XGHW+AqbK/TLO6rQK4hcg3IdUSuA7mByA0gNxG5CeQWIreA3EbkNpA7iNwB0opIK5C7iNwF0oZIG5B7iNwDch+R+0AeIPIAyENEHgJ5hMgjII8ReQzkCSJPgDxF5CmQZ4g8A/IckedAXiDyAshLRF4CeYXIKyCvEXkN5A0ib4DUft+CmKWIt8C7XuEEjEySXNS2/fnBaOV51+vu6TDDK0MUczk9OyXQnzp6uvnDZ3uIBAMC7X7/6wefNYO3NZe/c3m+0n7yo8B86BVzq4LbspwcP0fMZ4zV3ciYH0L65qrV2siYn2BmB2b2Vwg3XpxNPLuDduC7aItPBg6IP1qt+WfkHN6UbB2QXAaFUO18Tu4sb+rAyTnwpg5chgP3VDxatLkMpnGbNqwnttFiUA3m8ilgs4xME4yIbQGYVr17ZFns7aPyJ8qfKH/yb/kT5S2Ut1DeQnkL5S3+y97ikqte9BZf0Z2X+0PGaj/qqKkmNoRD8/aG0NRgsluFUjYohzANskxm9DB6ec00/nQa1g9R/8o0/ojbKx7F0HSpJjRO5c9oukyDkNw62ZpDIVSDuSR37b8hUA2yTM3r+/g3J6pxa3WoB6PF3KTt7b9EoIz7f5r9Oioj1SDjzmBpYAzloppqmlXTzKesmmbVNKumWTXNqmlWTbNqmmnTXHdR34PR9/GVcTra3cKpSF/Gi4yfIPRNvMi0C3vP7qBNd/CVlOHPlBaRH2AaDBRJG7EAGohqEBKbMzbx10BUgxKe/WVSKTZbiqCfBZgGAy0skiR6ic803vec+YZeT+Xsn0BRDeZy9hc8Dn7FIFmz2PtoLlQTQ5b37CGmBmu0dFL8gj6kYhpkicyTYBJloRq/k3ZJBlkppsFAybCeQCaIaby6O6QQx9U91ao3lOo9v7IsyrIoy6Isi7IsyrIIRFkWZVnslqVBsCzqZlQ3o7oZv+HN6Km/qBcI9W3y/9GwXgU0CtR0/uVkQKRNIg2n9S8bIm2+KCtFfU4V63POZlt1jv/PzlH1hupxpB5H3/5x1PcPFtDfoOA8AAA=',
|
||||
//class_parse: '.grid-box&&ul&&li;a&&Text;a&&href;.*/(.*?).html',
|
||||
class_parse: '',
|
||||
class_name: '肥猫4K&电影&剧集&动漫&综艺&短剧',
|
||||
class_url: '24&1&2&3&4&5',
|
||||
cate_exclude: '网址|专题|全部影片',
|
||||
搜索: '.module-search-item;.video-serial&&title;*;.video-serial&&Text;.video-serial&&href',
|
||||
一级: '.module-items .module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href'
|
||||
}
|
2669
肥猫/json/高中课堂.json
2669
肥猫/json/高中课堂.json
File diff suppressed because it is too large
Load Diff
58
饭太硬/api.json
58
饭太硬/api.json
@ -20,7 +20,7 @@
|
||||
"quickSearch": 1,
|
||||
"changeable": 0,
|
||||
"ext": {
|
||||
"Cloud-drive": "http://127.0.0.1:9978/file/XYQTVBox/Cloud-drive.txt",
|
||||
"Cloud-drive": "http://127.0.0.1:9978/file/XYQTVBox//Cloud-drive.txt",
|
||||
"from": "4k|auto",
|
||||
"siteUrl": "https://www.wogg.net/",
|
||||
"danMu": "弹"
|
||||
@ -54,7 +54,7 @@
|
||||
"quickSearch": 1,
|
||||
"changeable": 0,
|
||||
"ext": {
|
||||
"Cloud-drive": "http://127.0.0.1:9978/file/XYQTVBox/Cloud-drive.txt",
|
||||
"Cloud-drive": "http://127.0.0.1:9978/file/XYQTVBox//Cloud-drive.txt",
|
||||
"from": "4k|auto"
|
||||
}
|
||||
},
|
||||
@ -67,7 +67,7 @@
|
||||
"quickSearch": 1,
|
||||
"changeable": 0,
|
||||
"ext": {
|
||||
"Cloud-drive": "http://127.0.0.1:9978/file/XYQTVBox/Cloud-drive.txt",
|
||||
"Cloud-drive": "http://127.0.0.1:9978/file/XYQTVBox//Cloud-drive.txt",
|
||||
"from": "4k|auto"
|
||||
}
|
||||
},
|
||||
@ -80,7 +80,7 @@
|
||||
"quickSearch": 1,
|
||||
"changeable": 1,
|
||||
"ext": {
|
||||
"Cloud-drive": "http://127.0.0.1:9978/file/XYQTVBox/Cloud-drive.txt",
|
||||
"Cloud-drive": "http://127.0.0.1:9978/file/XYQTVBox//Cloud-drive.txt",
|
||||
"from": "4k|auto"
|
||||
}
|
||||
},
|
||||
@ -136,27 +136,39 @@
|
||||
"quickSearch": 1,
|
||||
"changeable": 1
|
||||
},
|
||||
{
|
||||
"key": "萌米",
|
||||
"name": "👀萌米┃多线",
|
||||
"type": 3,
|
||||
"api": "csp_AppTT",
|
||||
"playerType": 2,
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"changeable": 1,
|
||||
"ext": "AO7TcBkd8Iifux0Y8Qze6tVlMg=="
|
||||
},
|
||||
{
|
||||
"key": "欢视",
|
||||
"name": "👓欢视┃多线",
|
||||
"type": 3,
|
||||
"api": "csp_AppTT",
|
||||
"playerType": 2,
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"changeable": 1,
|
||||
"ext": "AO7TcBkd8IPB+BwH4Qma+opv"
|
||||
},
|
||||
{
|
||||
"key": "热播",
|
||||
"name": "📺热播┃多线",
|
||||
"type": 3,
|
||||
"api": "csp_AppTT",
|
||||
"timeout": 15,
|
||||
"playerType": 2,
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"changeable": 1,
|
||||
"ext": "AO7TcBkd8I/B5wQc4Qma+pU="
|
||||
},
|
||||
{
|
||||
"key": "萌米",
|
||||
"name": "👀萌米┃多线",
|
||||
"type": 3,
|
||||
"api": "csp_AppTT",
|
||||
"timeout": 15,
|
||||
"playerType": 1,
|
||||
"ext": "AO7TcBkd8Iifux0Y8Qze6tVlMg=="
|
||||
},
|
||||
{
|
||||
"key": "南瓜",
|
||||
"name": "🎃南瓜┃多线",
|
||||
@ -173,7 +185,6 @@
|
||||
"name": "👻可可┃多线",
|
||||
"type": 3,
|
||||
"api": "csp_Kekys",
|
||||
"timeout": 15,
|
||||
"playerType": 2,
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
@ -418,14 +429,11 @@
|
||||
"key": "Sso",
|
||||
"name": "🐌盘他┃三盘",
|
||||
"type": 3,
|
||||
"api": "csp_PanSso",
|
||||
"api": "./api/drpy2.min.js",
|
||||
"ext": "./js/盘他.js",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"changeable": 0,
|
||||
"ext": {
|
||||
"Cloud-drive": "http://127.0.0.1:9978/file/XYQTVBox/Cloud-drive.txt",
|
||||
"from": "4k|auto"
|
||||
}
|
||||
"changeable": 0
|
||||
},
|
||||
{
|
||||
"key": "夸搜",
|
||||
@ -437,7 +445,7 @@
|
||||
"changeable": 0,
|
||||
"ext": {
|
||||
"pan": "quark",
|
||||
"Cloud-drive": "http://127.0.0.1:9978/file/XYQTVBox/Cloud-drive.txt",
|
||||
"Cloud-drive": "http://127.0.0.1:9978/file/XYQTVBox//Cloud-drive.txt",
|
||||
"from": "4k|auto"
|
||||
}
|
||||
},
|
||||
@ -450,7 +458,7 @@
|
||||
"quickSearch": 1,
|
||||
"changeable": 0,
|
||||
"ext": {
|
||||
"Cloud-drive": "http://127.0.0.1:9978/file/XYQTVBox/Cloud-drive.txt",
|
||||
"Cloud-drive": "http://127.0.0.1:9978/file/XYQTVBox//Cloud-drive.txt",
|
||||
"from": "4k|auto"
|
||||
}
|
||||
},
|
||||
@ -463,7 +471,7 @@
|
||||
"quickSearch": 1,
|
||||
"changeable": 0,
|
||||
"ext": {
|
||||
"Cloud-drive": "http://127.0.0.1:9978/file/XYQTVBox/Cloud-drive.txt",
|
||||
"Cloud-drive": "http://127.0.0.1:9978/file/XYQTVBox//Cloud-drive.txt",
|
||||
"from": "4k|auto"
|
||||
}
|
||||
},
|
||||
@ -475,7 +483,7 @@
|
||||
"searchable": 0,
|
||||
"quickSearch": 0,
|
||||
"ext": {
|
||||
"Cloud-drive": "http://127.0.0.1:9978/file/XYQTVBox/Cloud-drive.txt",
|
||||
"Cloud-drive": "http://127.0.0.1:9978/file/XYQTVBox//Cloud-drive.txt",
|
||||
"from": "4k|auto"
|
||||
}
|
||||
},
|
||||
|
46
饭太硬/js/盘他.js
Normal file
46
饭太硬/js/盘他.js
Normal file
@ -0,0 +1,46 @@
|
||||
var rule = {
|
||||
title: '盘他',
|
||||
host: 'https://sousou.pro',
|
||||
searchUrl: '/search?exact=false&page=fypage&q=**&share_time=&type=&user=',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
headers: {
|
||||
'User-Agent': 'PC_UA',
|
||||
},
|
||||
timeout: 5000,
|
||||
play_parse: true,
|
||||
lazy: $js.toString(() => {
|
||||
let url = input.startsWith('push://') ? input : 'push://' + input;
|
||||
input = {parse: 0, url: url};
|
||||
}),
|
||||
一级: '',
|
||||
二级: $js.toString(() => {
|
||||
VOD = {};
|
||||
VOD.vod_id = input;
|
||||
let html = request(input);
|
||||
let title = pdfh(html, 'h1&&Text');
|
||||
let share_url = pdfh(html, '.semi-typography-link:eq(-1)&&a&&href');
|
||||
let share_type = pdfh(html, '.semi-descriptions-value:eq(3)&&Text');
|
||||
VOD.vod_name = title;
|
||||
VOD.vod_pic = '';
|
||||
VOD.content = share_url;
|
||||
VOD.vod_remarks = pdfh(html, '.semi-descriptions-value&&Text');
|
||||
VOD.vod_play_from = '点击下方播放';
|
||||
VOD.vod_play_url = share_type + '$' + 'push://' + share_url;
|
||||
}),
|
||||
搜索: $js.toString(() => {
|
||||
let html = request(input);
|
||||
let data = pdfa(html, '.rm-search-content&&.semi-space-vertical');
|
||||
let d = [];
|
||||
data.forEach(it => {
|
||||
d.push({
|
||||
title: pdfh(it, 'a&&title'),
|
||||
desc: pdfh(it, 'span:eq(3)&&Text') + '|' + pdfh(it, 'span:eq(-1)&&Text'),
|
||||
img: "",
|
||||
url: pd(it, 'a&&href', MY_URL)
|
||||
});
|
||||
|
||||
});
|
||||
setResult(d);
|
||||
}),
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
#EXTINF:-1 tvg-name="CCTV1" tvg-logo="https://live.fanmingming.com/tv/CCTV1.png" group-title="央视频道",CCTV-1 综合
|
||||
http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226559/index.m3u8
|
||||
#EXTINF:-1 tvg-name="CCTV2" tvg-logo="https://live.fanmingming.com/tv/CCTV2.png" group-title="央视频道",CCTV-2 财经
|
||||
http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226540/index.m3u8
|
||||
http://[2409:8087:5e00:24::1e]:6060/200000001898/460000089800010211/1.m3u8
|
||||
#EXTINF:-1 tvg-name="CCTV3" tvg-logo="https://live.fanmingming.com/tv/CCTV3.png" group-title="央视频道",CCTV-3 综艺
|
||||
http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226021/index.m3u8
|
||||
#EXTINF:-1 tvg-name="CCTV4" tvg-logo="https://live.fanmingming.com/tv/CCTV4.png" group-title="央视频道",CCTV-4 中文国际
|
||||
@ -41,6 +41,12 @@ http://[2001:250:5800:1005::155]:80/liverespath/bca6167afdef7fc773405c38e695b342
|
||||
http://[2001:250:5800:1005::155]:80/liverespath/e0096742f0c5be4c5225cf3c7ab1077177bec05f/index.m3u8
|
||||
#EXTINF:-1 tvg-name="CHC家庭影院" tvg-logo="https://live.fanmingming.com/tv/CHC家庭影院.png" group-title="央视频道",CHC家庭影院
|
||||
http://[2001:250:5800:1005::155]:80/liverespath/449d51febadb152094085d373b9af94a6ac5f1dd/index.m3u8
|
||||
#EXTINF:-1 tvg-name="凤凰中文" tvg-logo="https://live.fanmingming.com/tv/凤凰卫视中文台.png" group-title="卫视频道",凤凰中文
|
||||
http://58.144.154.93/qctv.fengshows.cn/live/0701pcc72.m3u8
|
||||
#EXTINF:-1 tvg-name="凤凰资讯" tvg-logo="https://live.fanmingming.com/tv/凤凰卫视资讯台.png" group-title="卫视频道",凤凰资讯
|
||||
http://58.144.154.93/qctv.fengshows.cn/live/0701pin72.m3u8
|
||||
#EXTINF:-1 tvg-name="凤凰香港" tvg-logo="https://live.fanmingming.com/tv/凤凰卫视香港台.png" group-title="卫视频道",凤凰香港
|
||||
http://58.144.154.93/qctv.fengshows.cn/live/0701phk72.m3u8
|
||||
#EXTINF:-1 tvg-name="北京卫视" tvg-logo="https://live.fanmingming.com/tv/北京卫视.png" group-title="卫视频道",北京卫视
|
||||
http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226450/index.m3u8
|
||||
#EXTINF:-1 tvg-name="湖南卫视" tvg-logo="https://live.fanmingming.com/tv/湖南卫视.png" group-title="卫视频道",湖南卫视
|
||||
|
BIN
饭太硬/spider.jar
BIN
饭太硬/spider.jar
Binary file not shown.
19
骚零/api.json
19
骚零/api.json
@ -161,6 +161,25 @@
|
||||
"danMu": "弹"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "比特",
|
||||
"name": "比特",
|
||||
"type": 3,
|
||||
"api": "csp_Bttwoo",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"changeable": 1
|
||||
},
|
||||
{
|
||||
"key": "alllive",
|
||||
"name": "一直播",
|
||||
"type": 3,
|
||||
"api": "csp_Alllive",
|
||||
"playerType": 2,
|
||||
"searchable": 0,
|
||||
"quickSearch": 0,
|
||||
"changeable": 0
|
||||
},
|
||||
{
|
||||
"key": "米搜",
|
||||
"name": "小米(网盘搜索)",
|
||||
|
File diff suppressed because one or more lines are too long
577
骚零/api/jinja.js
Normal file
577
骚零/api/jinja.js
Normal file
@ -0,0 +1,577 @@
|
||||
/*!
|
||||
* Jinja Templating for JavaScript v0.1.8
|
||||
* https://github.com/sstur/jinja-js
|
||||
*
|
||||
* This is a slimmed-down Jinja2 implementation [http://jinja.pocoo.org/]
|
||||
*
|
||||
* In the interest of simplicity, it deviates from Jinja2 as follows:
|
||||
* - Line statements, cycle, super, macro tags and block nesting are not implemented
|
||||
* - auto escapes html by default (the filter is "html" not "e")
|
||||
* - Only "html" and "safe" filters are built in
|
||||
* - Filters are not valid in expressions; `foo|length > 1` is not valid
|
||||
* - Expression Tests (`if num is odd`) not implemented (`is` translates to `==` and `isnot` to `!=`)
|
||||
*
|
||||
* Notes:
|
||||
* - if property is not found, but method '_get' exists, it will be called with the property name (and cached)
|
||||
* - `{% for n in obj %}` iterates the object's keys; get the value with `{% for n in obj %}{{ obj[n] }}{% endfor %}`
|
||||
* - subscript notation `a[0]` takes literals or simple variables but not `a[item.key]`
|
||||
* - `.2` is not a valid number literal; use `0.2`
|
||||
*
|
||||
*/
|
||||
/*global require, exports, module, define */
|
||||
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
||||
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
||||
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.jinja = {}));
|
||||
})(this, (function (jinja) {
|
||||
"use strict";
|
||||
var STRINGS = /'(\\.|[^'])*'|"(\\.|[^"'"])*"/g;
|
||||
var IDENTS_AND_NUMS = /([$_a-z][$\w]*)|([+-]?\d+(\.\d+)?)/g;
|
||||
var NUMBER = /^[+-]?\d+(\.\d+)?$/;
|
||||
//non-primitive literals (array and object literals)
|
||||
var NON_PRIMITIVES = /\[[@#~](,[@#~])*\]|\[\]|\{([@i]:[@#~])(,[@i]:[@#~])*\}|\{\}/g;
|
||||
//bare identifiers such as variables and in object literals: {foo: 'value'}
|
||||
var IDENTIFIERS = /[$_a-z][$\w]*/ig;
|
||||
var VARIABLES = /i(\.i|\[[@#i]\])*/g;
|
||||
var ACCESSOR = /(\.i|\[[@#i]\])/g;
|
||||
var OPERATORS = /(===?|!==?|>=?|<=?|&&|\|\||[+\-\*\/%])/g;
|
||||
//extended (english) operators
|
||||
var EOPS = /(^|[^$\w])(and|or|not|is|isnot)([^$\w]|$)/g;
|
||||
var LEADING_SPACE = /^\s+/;
|
||||
var TRAILING_SPACE = /\s+$/;
|
||||
|
||||
var START_TOKEN = /\{\{\{|\{\{|\{%|\{#/;
|
||||
var TAGS = {
|
||||
'{{{': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?\}\}\}/,
|
||||
'{{': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?\}\}/,
|
||||
'{%': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?%\}/,
|
||||
'{#': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?#\}/
|
||||
};
|
||||
|
||||
var delimeters = {
|
||||
'{%': 'directive',
|
||||
'{{': 'output',
|
||||
'{#': 'comment'
|
||||
};
|
||||
|
||||
var operators = {
|
||||
and: '&&',
|
||||
or: '||',
|
||||
not: '!',
|
||||
is: '==',
|
||||
isnot: '!='
|
||||
};
|
||||
|
||||
var constants = {
|
||||
'true': true,
|
||||
'false': false,
|
||||
'null': null
|
||||
};
|
||||
|
||||
function Parser() {
|
||||
this.nest = [];
|
||||
this.compiled = [];
|
||||
this.childBlocks = 0;
|
||||
this.parentBlocks = 0;
|
||||
this.isSilent = false;
|
||||
}
|
||||
|
||||
Parser.prototype.push = function (line) {
|
||||
if (!this.isSilent) {
|
||||
this.compiled.push(line);
|
||||
}
|
||||
};
|
||||
|
||||
Parser.prototype.parse = function (src) {
|
||||
this.tokenize(src);
|
||||
return this.compiled;
|
||||
};
|
||||
|
||||
Parser.prototype.tokenize = function (src) {
|
||||
var lastEnd = 0, parser = this, trimLeading = false;
|
||||
matchAll(src, START_TOKEN, function (open, index, src) {
|
||||
//here we match the rest of the src against a regex for this tag
|
||||
var match = src.slice(index + open.length).match(TAGS[open]);
|
||||
match = (match ? match[0] : '');
|
||||
//here we sub out strings so we don't get false matches
|
||||
var simplified = match.replace(STRINGS, '@');
|
||||
//if we don't have a close tag or there is a nested open tag
|
||||
if (!match || ~simplified.indexOf(open)) {
|
||||
return index + 1;
|
||||
}
|
||||
var inner = match.slice(0, 0 - open.length);
|
||||
//check for white-space collapse syntax
|
||||
if (inner.charAt(0) === '-') var wsCollapseLeft = true;
|
||||
if (inner.slice(-1) === '-') var wsCollapseRight = true;
|
||||
inner = inner.replace(/^-|-$/g, '').trim();
|
||||
//if we're in raw mode and we are not looking at an "endraw" tag, move along
|
||||
if (parser.rawMode && (open + inner) !== '{%endraw') {
|
||||
return index + 1;
|
||||
}
|
||||
var text = src.slice(lastEnd, index);
|
||||
lastEnd = index + open.length + match.length;
|
||||
if (trimLeading) text = trimLeft(text);
|
||||
if (wsCollapseLeft) text = trimRight(text);
|
||||
if (wsCollapseRight) trimLeading = true;
|
||||
if (open === '{{{') {
|
||||
//liquid-style: make {{{x}}} => {{x|safe}}
|
||||
open = '{{';
|
||||
inner += '|safe';
|
||||
}
|
||||
parser.textHandler(text);
|
||||
parser.tokenHandler(open, inner);
|
||||
});
|
||||
var text = src.slice(lastEnd);
|
||||
if (trimLeading) text = trimLeft(text);
|
||||
this.textHandler(text);
|
||||
};
|
||||
|
||||
Parser.prototype.textHandler = function (text) {
|
||||
this.push('write(' + JSON.stringify(text) + ');');
|
||||
};
|
||||
|
||||
Parser.prototype.tokenHandler = function (open, inner) {
|
||||
var type = delimeters[open];
|
||||
if (type === 'directive') {
|
||||
this.compileTag(inner);
|
||||
} else if (type === 'output') {
|
||||
var extracted = this.extractEnt(inner, STRINGS, '@');
|
||||
//replace || operators with ~
|
||||
extracted.src = extracted.src.replace(/\|\|/g, '~').split('|');
|
||||
//put back || operators
|
||||
extracted.src = extracted.src.map(function (part) {
|
||||
return part.split('~').join('||');
|
||||
});
|
||||
var parts = this.injectEnt(extracted, '@');
|
||||
if (parts.length > 1) {
|
||||
var filters = parts.slice(1).map(this.parseFilter.bind(this));
|
||||
this.push('filter(' + this.parseExpr(parts[0]) + ',' + filters.join(',') + ');');
|
||||
} else {
|
||||
this.push('filter(' + this.parseExpr(parts[0]) + ');');
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Parser.prototype.compileTag = function (str) {
|
||||
var directive = str.split(' ')[0];
|
||||
var handler = tagHandlers[directive];
|
||||
if (!handler) {
|
||||
throw new Error('Invalid tag: ' + str);
|
||||
}
|
||||
handler.call(this, str.slice(directive.length).trim());
|
||||
};
|
||||
|
||||
Parser.prototype.parseFilter = function (src) {
|
||||
src = src.trim();
|
||||
var match = src.match(/[:(]/);
|
||||
var i = match ? match.index : -1;
|
||||
if (i < 0) return JSON.stringify([src]);
|
||||
var name = src.slice(0, i);
|
||||
var args = src.charAt(i) === ':' ? src.slice(i + 1) : src.slice(i + 1, -1);
|
||||
args = this.parseExpr(args, {terms: true});
|
||||
return '[' + JSON.stringify(name) + ',' + args + ']';
|
||||
};
|
||||
|
||||
Parser.prototype.extractEnt = function (src, regex, placeholder) {
|
||||
var subs = [], isFunc = typeof placeholder == 'function';
|
||||
src = src.replace(regex, function (str) {
|
||||
var replacement = isFunc ? placeholder(str) : placeholder;
|
||||
if (replacement) {
|
||||
subs.push(str);
|
||||
return replacement;
|
||||
}
|
||||
return str;
|
||||
});
|
||||
return {src: src, subs: subs};
|
||||
};
|
||||
|
||||
Parser.prototype.injectEnt = function (extracted, placeholder) {
|
||||
var src = extracted.src, subs = extracted.subs, isArr = Array.isArray(src);
|
||||
var arr = (isArr) ? src : [src];
|
||||
var re = new RegExp('[' + placeholder + ']', 'g'), i = 0;
|
||||
arr.forEach(function (src, index) {
|
||||
arr[index] = src.replace(re, function () {
|
||||
return subs[i++];
|
||||
});
|
||||
});
|
||||
return isArr ? arr : arr[0];
|
||||
};
|
||||
|
||||
//replace complex literals without mistaking subscript notation with array literals
|
||||
Parser.prototype.replaceComplex = function (s) {
|
||||
var parsed = this.extractEnt(s, /i(\.i|\[[@#i]\])+/g, 'v');
|
||||
parsed.src = parsed.src.replace(NON_PRIMITIVES, '~');
|
||||
return this.injectEnt(parsed, 'v');
|
||||
};
|
||||
|
||||
//parse expression containing literals (including objects/arrays) and variables (including dot and subscript notation)
|
||||
//valid expressions: `a + 1 > b.c or c == null`, `a and b[1] != c`, `(a < b) or (c < d and e)`, 'a || [1]`
|
||||
Parser.prototype.parseExpr = function (src, opts) {
|
||||
opts = opts || {};
|
||||
//extract string literals -> @
|
||||
var parsed1 = this.extractEnt(src, STRINGS, '@');
|
||||
//note: this will catch {not: 1} and a.is; could we replace temporarily and then check adjacent chars?
|
||||
parsed1.src = parsed1.src.replace(EOPS, function (s, before, op, after) {
|
||||
return (op in operators) ? before + operators[op] + after : s;
|
||||
});
|
||||
//sub out non-string literals (numbers/true/false/null) -> #
|
||||
// the distinction is necessary because @ can be object identifiers, # cannot
|
||||
var parsed2 = this.extractEnt(parsed1.src, IDENTS_AND_NUMS, function (s) {
|
||||
return (s in constants || NUMBER.test(s)) ? '#' : null;
|
||||
});
|
||||
//sub out object/variable identifiers -> i
|
||||
var parsed3 = this.extractEnt(parsed2.src, IDENTIFIERS, 'i');
|
||||
//remove white-space
|
||||
parsed3.src = parsed3.src.replace(/\s+/g, '');
|
||||
|
||||
//the rest of this is simply to boil the expression down and check validity
|
||||
var simplified = parsed3.src;
|
||||
//sub out complex literals (objects/arrays) -> ~
|
||||
// the distinction is necessary because @ and # can be subscripts but ~ cannot
|
||||
while (simplified !== (simplified = this.replaceComplex(simplified))) ;
|
||||
//now @ represents strings, # represents other primitives and ~ represents non-primitives
|
||||
//replace complex variables (those with dot/subscript accessors) -> v
|
||||
while (simplified !== (simplified = simplified.replace(/i(\.i|\[[@#i]\])+/, 'v'))) ;
|
||||
//empty subscript or complex variables in subscript, are not permitted
|
||||
simplified = simplified.replace(/[iv]\[v?\]/g, 'x');
|
||||
//sub in "i" for @ and # and ~ and v (now "i" represents all literals, variables and identifiers)
|
||||
simplified = simplified.replace(/[@#~v]/g, 'i');
|
||||
//sub out operators
|
||||
simplified = simplified.replace(OPERATORS, '%');
|
||||
//allow 'not' unary operator
|
||||
simplified = simplified.replace(/!+[i]/g, 'i');
|
||||
var terms = opts.terms ? simplified.split(',') : [simplified];
|
||||
terms.forEach(function (term) {
|
||||
//simplify logical grouping
|
||||
while (term !== (term = term.replace(/\(i(%i)*\)/g, 'i'))) ;
|
||||
if (!term.match(/^i(%i)*/)) {
|
||||
throw new Error('Invalid expression: ' + src + " " + term);
|
||||
}
|
||||
});
|
||||
parsed3.src = parsed3.src.replace(VARIABLES, this.parseVar.bind(this));
|
||||
parsed2.src = this.injectEnt(parsed3, 'i');
|
||||
parsed1.src = this.injectEnt(parsed2, '#');
|
||||
return this.injectEnt(parsed1, '@');
|
||||
};
|
||||
|
||||
Parser.prototype.parseVar = function (src) {
|
||||
var args = Array.prototype.slice.call(arguments);
|
||||
var str = args.pop(), index = args.pop();
|
||||
//quote bare object identifiers (might be a reserved word like {while: 1})
|
||||
if (src === 'i' && str.charAt(index + 1) === ':') {
|
||||
return '"i"';
|
||||
}
|
||||
var parts = ['"i"'];
|
||||
src.replace(ACCESSOR, function (part) {
|
||||
if (part === '.i') {
|
||||
parts.push('"i"');
|
||||
} else if (part === '[i]') {
|
||||
parts.push('get("i")');
|
||||
} else {
|
||||
parts.push(part.slice(1, -1));
|
||||
}
|
||||
});
|
||||
return 'get(' + parts.join(',') + ')';
|
||||
};
|
||||
|
||||
//escapes a name to be used as a javascript identifier
|
||||
Parser.prototype.escName = function (str) {
|
||||
return str.replace(/\W/g, function (s) {
|
||||
return '$' + s.charCodeAt(0).toString(16);
|
||||
});
|
||||
};
|
||||
|
||||
Parser.prototype.parseQuoted = function (str) {
|
||||
if (str.charAt(0) === "'") {
|
||||
str = str.slice(1, -1).replace(/\\.|"/, function (s) {
|
||||
if (s === "\\'") return "'";
|
||||
return s.charAt(0) === '\\' ? s : ('\\' + s);
|
||||
});
|
||||
str = '"' + str + '"';
|
||||
}
|
||||
//todo: try/catch or deal with invalid characters (linebreaks, control characters)
|
||||
return JSON.parse(str);
|
||||
};
|
||||
|
||||
|
||||
//the context 'this' inside tagHandlers is the parser instance
|
||||
var tagHandlers = {
|
||||
'if': function (expr) {
|
||||
this.push('if (' + this.parseExpr(expr) + ') {');
|
||||
this.nest.unshift('if');
|
||||
},
|
||||
'else': function () {
|
||||
if (this.nest[0] === 'for') {
|
||||
this.push('}, function() {');
|
||||
} else {
|
||||
this.push('} else {');
|
||||
}
|
||||
},
|
||||
'elseif': function (expr) {
|
||||
this.push('} else if (' + this.parseExpr(expr) + ') {');
|
||||
},
|
||||
'endif': function () {
|
||||
this.nest.shift();
|
||||
this.push('}');
|
||||
},
|
||||
'for': function (str) {
|
||||
var i = str.indexOf(' in ');
|
||||
var name = str.slice(0, i).trim();
|
||||
var expr = str.slice(i + 4).trim();
|
||||
this.push('each(' + this.parseExpr(expr) + ',' + JSON.stringify(name) + ',function() {');
|
||||
this.nest.unshift('for');
|
||||
},
|
||||
'endfor': function () {
|
||||
this.nest.shift();
|
||||
this.push('});');
|
||||
},
|
||||
'raw': function () {
|
||||
this.rawMode = true;
|
||||
},
|
||||
'endraw': function () {
|
||||
this.rawMode = false;
|
||||
},
|
||||
'set': function (stmt) {
|
||||
var i = stmt.indexOf('=');
|
||||
var name = stmt.slice(0, i).trim();
|
||||
var expr = stmt.slice(i + 1).trim();
|
||||
this.push('set(' + JSON.stringify(name) + ',' + this.parseExpr(expr) + ');');
|
||||
},
|
||||
'block': function (name) {
|
||||
if (this.isParent) {
|
||||
++this.parentBlocks;
|
||||
var blockName = 'block_' + (this.escName(name) || this.parentBlocks);
|
||||
this.push('block(typeof ' + blockName + ' == "function" ? ' + blockName + ' : function() {');
|
||||
} else if (this.hasParent) {
|
||||
this.isSilent = false;
|
||||
++this.childBlocks;
|
||||
blockName = 'block_' + (this.escName(name) || this.childBlocks);
|
||||
this.push('function ' + blockName + '() {');
|
||||
}
|
||||
this.nest.unshift('block');
|
||||
},
|
||||
'endblock': function () {
|
||||
this.nest.shift();
|
||||
if (this.isParent) {
|
||||
this.push('});');
|
||||
} else if (this.hasParent) {
|
||||
this.push('}');
|
||||
this.isSilent = true;
|
||||
}
|
||||
},
|
||||
'extends': function (name) {
|
||||
name = this.parseQuoted(name);
|
||||
var parentSrc = this.readTemplateFile(name);
|
||||
this.isParent = true;
|
||||
this.tokenize(parentSrc);
|
||||
this.isParent = false;
|
||||
this.hasParent = true;
|
||||
//silence output until we enter a child block
|
||||
this.isSilent = true;
|
||||
},
|
||||
'include': function (name) {
|
||||
name = this.parseQuoted(name);
|
||||
var incSrc = this.readTemplateFile(name);
|
||||
this.isInclude = true;
|
||||
this.tokenize(incSrc);
|
||||
this.isInclude = false;
|
||||
}
|
||||
};
|
||||
|
||||
//liquid style
|
||||
tagHandlers.assign = tagHandlers.set;
|
||||
//python/django style
|
||||
tagHandlers.elif = tagHandlers.elseif;
|
||||
|
||||
var getRuntime = function runtime(data, opts) {
|
||||
var defaults = {autoEscape: 'toJson'};
|
||||
var _toString = Object.prototype.toString;
|
||||
var _hasOwnProperty = Object.prototype.hasOwnProperty;
|
||||
var getKeys = Object.keys || function (obj) {
|
||||
var keys = [];
|
||||
for (var n in obj) if (_hasOwnProperty.call(obj, n)) keys.push(n);
|
||||
return keys;
|
||||
};
|
||||
var isArray = Array.isArray || function (obj) {
|
||||
return _toString.call(obj) === '[object Array]';
|
||||
};
|
||||
var create = Object.create || function (obj) {
|
||||
function F() {
|
||||
}
|
||||
|
||||
F.prototype = obj;
|
||||
return new F();
|
||||
};
|
||||
var toString = function (val) {
|
||||
if (val == null) return '';
|
||||
return (typeof val.toString == 'function') ? val.toString() : _toString.call(val);
|
||||
};
|
||||
var extend = function (dest, src) {
|
||||
var keys = getKeys(src);
|
||||
for (var i = 0, len = keys.length; i < len; i++) {
|
||||
var key = keys[i];
|
||||
dest[key] = src[key];
|
||||
}
|
||||
return dest;
|
||||
};
|
||||
//get a value, lexically, starting in current context; a.b -> get("a","b")
|
||||
var get = function () {
|
||||
var val, n = arguments[0], c = stack.length;
|
||||
while (c--) {
|
||||
val = stack[c][n];
|
||||
if (typeof val != 'undefined') break;
|
||||
}
|
||||
for (var i = 1, len = arguments.length; i < len; i++) {
|
||||
if (val == null) continue;
|
||||
n = arguments[i];
|
||||
val = (_hasOwnProperty.call(val, n)) ? val[n] : (typeof val._get == 'function' ? (val[n] = val._get(n)) : null);
|
||||
}
|
||||
return (val == null) ? '' : val;
|
||||
};
|
||||
var set = function (n, val) {
|
||||
stack[stack.length - 1][n] = val;
|
||||
};
|
||||
var push = function (ctx) {
|
||||
stack.push(ctx || {});
|
||||
};
|
||||
var pop = function () {
|
||||
stack.pop();
|
||||
};
|
||||
var write = function (str) {
|
||||
output.push(str);
|
||||
};
|
||||
var filter = function (val) {
|
||||
for (var i = 1, len = arguments.length; i < len; i++) {
|
||||
var arr = arguments[i], name = arr[0], filter = filters[name];
|
||||
if (filter) {
|
||||
arr[0] = val;
|
||||
//now arr looks like [val, arg1, arg2]
|
||||
val = filter.apply(data, arr);
|
||||
} else {
|
||||
throw new Error('Invalid filter: ' + name);
|
||||
}
|
||||
}
|
||||
if (opts.autoEscape && name !== opts.autoEscape && name !== 'safe') {
|
||||
//auto escape if not explicitly safe or already escaped
|
||||
val = filters[opts.autoEscape].call(data, val);
|
||||
}
|
||||
output.push(val);
|
||||
};
|
||||
var each = function (obj, loopvar, fn1, fn2) {
|
||||
if (obj == null) return;
|
||||
var arr = isArray(obj) ? obj : getKeys(obj), len = arr.length;
|
||||
var ctx = {loop: {length: len, first: arr[0], last: arr[len - 1]}};
|
||||
push(ctx);
|
||||
for (var i = 0; i < len; i++) {
|
||||
extend(ctx.loop, {index: i + 1, index0: i});
|
||||
fn1(ctx[loopvar] = arr[i]);
|
||||
}
|
||||
if (len === 0 && fn2) fn2();
|
||||
pop();
|
||||
};
|
||||
var block = function (fn) {
|
||||
push();
|
||||
fn();
|
||||
pop();
|
||||
};
|
||||
var render = function () {
|
||||
return output.join('');
|
||||
};
|
||||
data = data || {};
|
||||
opts = extend(defaults, opts || {});
|
||||
var filters = extend({
|
||||
html: function (val) {
|
||||
return toString(val)
|
||||
.split('&').join('&')
|
||||
.split('<').join('<')
|
||||
.split('>').join('>')
|
||||
.split('"').join('"');
|
||||
},
|
||||
safe: function (val) {
|
||||
return val;
|
||||
},
|
||||
toJson: function (val) {
|
||||
if (typeof val === 'object') {
|
||||
return JSON.stringify(val);
|
||||
}
|
||||
return toString(val);
|
||||
}
|
||||
}, opts.filters || {});
|
||||
var stack = [create(data || {})], output = [];
|
||||
return {
|
||||
get: get,
|
||||
set: set,
|
||||
push: push,
|
||||
pop: pop,
|
||||
write: write,
|
||||
filter: filter,
|
||||
each: each,
|
||||
block: block,
|
||||
render: render
|
||||
};
|
||||
};
|
||||
|
||||
var runtime;
|
||||
|
||||
jinja.compile = function (markup, opts) {
|
||||
opts = opts || {};
|
||||
var parser = new Parser();
|
||||
parser.readTemplateFile = this.readTemplateFile;
|
||||
var code = [];
|
||||
code.push('function render($) {');
|
||||
code.push('var get = $.get, set = $.set, push = $.push, pop = $.pop, write = $.write, filter = $.filter, each = $.each, block = $.block;');
|
||||
code.push.apply(code, parser.parse(markup));
|
||||
code.push('return $.render();');
|
||||
code.push('}');
|
||||
code = code.join('\n');
|
||||
if (opts.runtime === false) {
|
||||
var fn = new Function('data', 'options', 'return (' + code + ')(runtime(data, options))');
|
||||
} else {
|
||||
runtime = runtime || (runtime = getRuntime.toString());
|
||||
fn = new Function('data', 'options', 'return (' + code + ')((' + runtime + ')(data, options))');
|
||||
}
|
||||
return {render: fn};
|
||||
};
|
||||
|
||||
jinja.render = function (markup, data, opts) {
|
||||
var tmpl = jinja.compile(markup);
|
||||
return tmpl.render(data, opts);
|
||||
};
|
||||
|
||||
jinja.templateFiles = [];
|
||||
|
||||
jinja.readTemplateFile = function (name) {
|
||||
var templateFiles = this.templateFiles || [];
|
||||
var templateFile = templateFiles[name];
|
||||
if (templateFile == null) {
|
||||
throw new Error('Template file not found: ' + name);
|
||||
}
|
||||
return templateFile;
|
||||
};
|
||||
|
||||
|
||||
/*!
|
||||
* Helpers
|
||||
*/
|
||||
|
||||
function trimLeft(str) {
|
||||
return str.replace(LEADING_SPACE, '');
|
||||
}
|
||||
|
||||
function trimRight(str) {
|
||||
return str.replace(TRAILING_SPACE, '');
|
||||
}
|
||||
|
||||
function matchAll(str, reg, fn) {
|
||||
//copy as global
|
||||
reg = new RegExp(reg.source, 'g' + (reg.ignoreCase ? 'i' : '') + (reg.multiline ? 'm' : ''));
|
||||
var match;
|
||||
while ((match = reg.exec(str))) {
|
||||
var result = fn(match[0], match.index, str);
|
||||
if (typeof result == 'number') {
|
||||
reg.lastIndex = result;
|
||||
}
|
||||
}
|
||||
}
|
||||
}));
|
1737
骚零/api/json5.js
Normal file
1737
骚零/api/json5.js
Normal file
File diff suppressed because one or more lines are too long
2
骚零/api/node-rsa.js
Normal file
2
骚零/api/node-rsa.js
Normal file
File diff suppressed because one or more lines are too long
2
骚零/api/pako.min.js
vendored
Normal file
2
骚零/api/pako.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
BIN
骚零/spider.jar
BIN
骚零/spider.jar
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user