diff --git a/base/custom.conf b/base/custom.conf index 08f1bb030c3164131d7aeec2b0f7f9ee101cffce..5c61eec9604ea18443d135de45c84192b5803a83 100644 --- a/base/custom.conf +++ b/base/custom.conf @@ -89,6 +89,7 @@ "name": "💦讯维云盘", "server": "https://pan.xwbeta.com" }]}, +{"key":"cms_douban","name":"豆瓣(道长)","type":1,"api":"{{ host }}/vod?{% if js0_password %}pwd={{js0_password}}&{% endif %}rule=drpy","searchable":2,"quickSearch":1,"filterable":1}, {"key": "cms_爱看乐看","name": "爱看乐看","type": 1,"api": "https://ikan6.vip/api.php/provide/vod","playerType":1,"playUrl": "https://cms.ikan6.vip/nidasicaibudaowozaina/nicaibudaowozaina.php?url=","searchable": 1,"quickSearch": 1,"filterable": 1,"categories": ["国产剧","综艺频道","动漫频道","日韩剧","港台剧","欧美剧","动作片","科幻片","战争片","喜剧片","爱情片","恐怖片","剧情片"]}, {"key":"js_origin_puto","name":"原始JS(pluto)","type":3,"api":"js_origin_test","searchable":1,"quickSearch":1,"filterable":1,"ext":"{{host}}/txt/js/原始JS/origin.js"}, {"key":"js_origin_tvb","name":"原始JS(俊tvb)","type":3,"api":"{{host}}/txt/js/origin/原始JS.js","searchable":1,"quickSearch":1,"filterable":1,"ext":"{}"}, diff --git a/controllers/home.py b/controllers/home.py index cfb7fa2b4edee3b02a2b5dd6706d9ff6e6991e76..a2e5e2bcdcb5d0edd7ba5a7d75dcd1bcac77a3c5 100644 --- a/controllers/home.py +++ b/controllers/home.py @@ -209,6 +209,8 @@ def merged_hide(merged_config): def filter_show(x): name = x['api'].split('rule=')[1].split('&')[0] if 'rule=' in x['api'] else x['key'].replace('dr_','') # print(name) + if not str(x['key']).startswith('dr_') and name == 'drpy': + name = x['key'] return name not in hide_rule_names merged_config['sites'] = list(filter(filter_show, merged_config['sites'])) @@ -264,7 +266,7 @@ def config_render(mode): merged_hide(merged_config) # response = make_response(html) # print(len(merged_config['sites'])) - # print(merged_config['sites']) + print(merged_config['sites']) merged_config['sites'] = sort_sites_by_order(merged_config['sites'],js_mode) # print(merged_config['parses']) parses = sort_parses_by_order(merged_config['parses'],host) @@ -312,6 +314,9 @@ def sort_sites_by_order(sites,js_mode=0): site_name = sites[i]['api'].split('rule=')[1].split('&')[0] if 'rule=' in sites[i]['api'] else sites[i]['key'] if js_mode and str(site_name).startswith('dr'): site_name = site_name.replace('dr_','') + if not str(sites[i]['key']).startswith('dr_') and site_name == 'drpy': + site_name = sites[i]['key'] + # print(sites[i]) # print(site_name) if site_name in rule_names: site_rule = rule_list[rule_names.index(site_name)] diff --git a/controllers/layui.py b/controllers/layui.py index d305f050a1a1114f2cd2f8912cefa0c74ea66d66..cc8ea45e88be2d6e7e0b92cb15cae983dfb2e0d8 100644 --- a/controllers/layui.py +++ b/controllers/layui.py @@ -63,6 +63,7 @@ def layui_rule_list(): host = getHost(2) customConfig = getCustonDict(host) jxs = [] + js0_password = lsg.getItem('JS0_PASSWORD') lsg = storage_service() use_py = lsg.getItem('USE_PY') pys = getPys() if use_py else [] @@ -73,18 +74,23 @@ def layui_rule_list(): # print(local_rules) html = render_template('config.txt', pys=pys, rules=local_rules, host=host, mode=2, jxs=jxs, alists=alists, alists_str='[]', live_url=live_url, config=new_conf) + # html = render_template('config.txt', js0_password=js0_password, UA=UA, xr_mode=1, ISTVB=1, pys=pys, + # rules=local_rules, host=host, mode=2, js_mode=1, jxs=jxs, alists=alists, + # alists_str='[]', live_url=live_url, config=new_conf) merged_config = custom_merge(parseText(html), customConfig) sites = merged_config['sites'] rules = rules_service() rule_list = rules.query_all() rule_names = list(map(lambda x:x['name'],rule_list)) # print(rule_list) - print(rule_names) + # print(rule_names) # print(sites) for i in range(len(sites)): sites[i]['id'] = i+1 site_name = sites[i]['api'].split('rule=')[1].split('&')[0] if 'rule=' in sites[i]['api'] else sites[i]['key'] - # print(site_name) + if not str(sites[i]['key']).startswith('dr_') and site_name == 'drpy': + site_name = sites[i]['key'] + # print(sites[i]) if site_name in rule_names: site_rule = rule_list[rule_names.index(site_name)] sites[i]['state'] = 1 if site_rule['state'] is None else site_rule['state'] diff --git a/controllers/vod.py b/controllers/vod.py index 1ad67dd5cabd6604af53bfc13971884df0e4bc82..066e89f89efc7abd90ce2b7ca02404be039ecdb4 100644 --- a/controllers/vod.py +++ b/controllers/vod.py @@ -134,6 +134,7 @@ def merged_hide(merged_rules): hide_rule_names = list(map(lambda x: x['name'], hide_rules)) # print('隐藏:',hide_rule_names) all_cnt = len(merged_rules) + # print(merged_rules) def filter_show(x): # name = x['api'].split('rule=')[1].split('&')[0] if 'rule=' in x['api'] else x['key'].replace('dr_','') @@ -144,6 +145,7 @@ def merged_hide(merged_rules): merged_rules = list(filter(filter_show, merged_rules)) # print('隐藏后:',merged_rules) logger.info(f'数据库筛选隐藏规则耗时{get_interval(t1)}毫秒,共计{all_cnt}条规则,隐藏后可渲染{len(merged_rules)}条规则') + # merged_rules = [] return merged_rules def disable_exit_for_threadpool_executor(): diff --git a/js/version.txt b/js/version.txt index a683250c0aca011982a41b2f81fd0b4dc5296e36..31adcb3c5c735253eb903a5bf9ad3396b8992eef 100644 --- a/js/version.txt +++ b/js/version.txt @@ -1 +1 @@ -3.9.33beta8 \ No newline at end of file +3.9.33beta9 \ No newline at end of file diff --git a/templates/config.txt b/templates/config.txt index 895d32709aea56355b372cb603678d3b7f9ba88f..f24ba03ebdfb45de027318893d31712d150a786b 100644 --- a/templates/config.txt +++ b/templates/config.txt @@ -27,15 +27,6 @@ "filterable": {{ rule.filterable }}, "ext":"{{ host }}/admin/view/{{ rule.name }}.js" }{% endif %}{% if loop.last==False %},{% endif %}{% endfor %} -{% if js_mode == 1 %},{ - "key":"js_drpy", - "name":"drpy(道长)", - "type":1, - "api":"{{ host }}/vod?{% if js0_password %}pwd={{js0_password}}&{% endif %}rule=drpy", - "searchable": 1, - "quickSearch": 1, - "filterable": 1 -}{% endif %} {% if pys %} ,{% for py in pys %}{ "key":"{{ py.name }}", diff --git a/templates/config.txt.old2 b/templates/config.txt.old2 new file mode 100644 index 0000000000000000000000000000000000000000..2ffeeb0308889e296a746cdb58db05cad06b9ad3 --- /dev/null +++ b/templates/config.txt.old2 @@ -0,0 +1,351 @@ +{ +{% if config.WALL_PAPER_ENABLE %}"wallpaper":"{{ host }}/pics",{% endif %} +"dr_count": {{rules.list|length}}, +"mode": {{ mode }}, +"spider": "{{ host }}/liveslib", +{% if alists|length > 0 %}"drives": {{alists_str}},{% endif %} +"homepage":"https://gitcode.net/qq_32394351/dr_py", +"sites": [{% for rule in rules.list %}{% if js_mode != 1 %} +{ + "key":"dr_{{ rule.name }}", + "name":"{{ rule.name }}(道长)", + "type":1, + "api":"{{ host }}/vod?{% if js0_password %}pwd={{js0_password}}&{% endif %}rule={{ rule.name }}", + "searchable": {{ rule.searchable }}, + "quickSearch": {{ rule.quickSearch }}, + "filterable": {{ rule.filterable }} +}{% else %} +{ + "key":"dr_{{ rule.name }}", + "name":"{{ rule.name }}(drpy)", + "type":3, + "api":{% if ISTVB and xr_mode %}"{{ host }}/libs/drpy2.min.js"{% else %}"{{ host }}/libs/drpy.min.js"{% endif %}, + #"api":{% if ISTVB and xr_mode %}"{{ host }}/libs/drpy.min.js"{% else %}"{{ host }}/libs/drpy.min.js"{% endif %}, + #"api":"{{ host }}/libs/drpy.js", + "searchable": {{ rule.searchable }}, + "quickSearch": {{ rule.quickSearch }}, + "filterable": {{ rule.filterable }}, + "ext":"{{ host }}/admin/view/{{ rule.name }}.js" +}{% endif %}{% if loop.last==False %},{% endif %}{% endfor %} +{% if js_mode == 1 %},{ + "key":"cms_douban", + "name":"豆瓣(道长)", + "type":1, + "api":"{{ host }}/vod?{% if js0_password %}pwd={{js0_password}}&{% endif %}rule=drpy", + "searchable": 2, + "quickSearch": 1, + "filterable": 1 +}{% endif %} +{% if pys %} +,{% for py in pys %}{ + "key":"{{ py.name }}", + "name":"{{ py.name }}(Pyramid)", + "type": 3, + "api":"{{ py.name }}", + "searchable": {{ py.searchable }}, + "quickSearch": {{ py.quickSearch }}, + "filterable": {{ py.filterable }}, + "ext": "{{ host }}/txt/py/{{ py.name }}.py" +}{% if loop.last==False %},{% endif %}{% endfor %} +{% endif %} +], + "parses": [{ + "name": "🌐Ⓤ", + "type": 0, + "url": "", + "header": { + "User-Agent": "Mozilla/5.0" + } + }, + { + "name": "轮询", + "type": 2, + "url": "Sequence", + "header": { + "User-Agent": "Mozilla/5.0" + } + }, + { + "name": "并发", + "type": 2, + "url": "Parallel", + "header": { + "User-Agent": "Mozilla/5.0" + } + }, + {% for jx in jxs %} +{ + "name": "{{ jx.name }}", + "url": "{{ jx.url }}", + "type": {{ jx.type }}, + "ext": { + "flag": ["qiyi","imgo","爱奇艺", "奇艺", "qq","qq 预告及花絮", "腾讯", "youku", "优酷", "pptv", "PPTV", "letv", "乐视","leshi", "bilibili", "哔哩哔哩", "哔哩", "mgtv", "芒果","sohu", "xigua","fun","风行"], + "header": { + "User-Agent": "{{ jx.ua }}" + } + } +}{% if loop.last==False %},{% endif %}{% endfor %} + ], +"flags": ["imgo","youku", "qq","qq 预告及花絮", "iqiyi", "qiyi","fun", "letv","leshi","sohu", "tudou","xigua","cntv","1905", "pptv", "mgtv", "wasu", "bilibili", "renrenmi"], +"hotSearch": [{ + "name": "mobilesearch", + "request": { + "method": "GET", + "header": [ + { + "key": "Referer", + "value": "{{ host }}" + } + ], + "url": { + "raw": "{{ host }}/hotsugg?t={time}" + } + }, + "response": { + "result": "$.data", + "data": [ + { + "key": "keyword", + "value": "title" + } + ] + } +}], +"lives":[{"group":"redirect","channels":[{"name":"直播","urls":["proxy://do=live&type=txt&ext={{live_url}}"]}]}], +"sniffer": { + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36 Edg/105.0.1343.27", + "isVideoFormat": "http((?!http).){26,}\\.(m3u8|mp4|flv|avi|mkv|wmv|mpg|mpeg|mov|ts|3gp|rm|rmvb|asf|m4a|mp3|wma)", + "custom": [ + {"url":"/Cloud/Down/AliCloud/", "mimeType":"text/html", "encoding":"utf-8", "header":{"Referer": "https://zxzj.vip/"}}, + {"url":"ysting.ysxs8.vip", "mimeType":"text/html", "encoding":"utf-8", "header":{"Referer": "http://ysting.ysxs8.vip:81"}} + ] +}, +"recommend": [{"name": "豆瓣推荐","request": {"method": "GET","header": [{"key": "Referer","value": "https://movie.douban.com/"}],"url": {"raw": "https://movie.douban.com/j/new_search_subjects?sort=U&range=0,10&tags=&playable=1&start=0&year_range=2022,2022"}},"response": {"result": "$.data","data": [{"key": "name","value": "title"},{"key": "note","value": "rate"},{"key": "pic","value": "cover"}]},"expires" : "86400"}], +"rating": [{"name": "rating","request": {"method": "GET","url": {"raw": "https://api.wmdb.tv/api/v1/movie/search?q={name}&limit=1"}},"response": {"result": "this","data": [{"key": "rating","value": "doubanRating"}]}}], +"ijk": [{ + "group": "软解码", + "options": [{ + "category": 4, + "name": "opensles", + "value": "0" + }, + { + "category": 4, + "name": "overlay-format", + "value": "842225234" + }, + { + "category": 4, + "name": "framedrop", + "value": "1" + }, + { + "category": 4, + "name": "soundtouch", + "value": "1" + }, + { + "category": 4, + "name": "start-on-prepared", + "value": "1" + }, + { + "category": 1, + "name": "http-detect-range-support", + "value": "0" + }, + { + "category": 1, + "name": "fflags", + "value": "fastseek" + }, + { + "category": 2, + "name": "skip_loop_filter", + "value": "48" + }, + { + "category": 4, + "name": "reconnect", + "value": "1" + }, + { + "category": 4, + "name": "max-buffer-size", + "value": "15728640" + }, + { + "category": 4, + "name": "enable-accurate-seek", + "value": "0" + }, + { + "category": 4, + "name": "mediacodec", + "value": "0" + }, + { + "category": 4, + "name": "mediacodec-auto-rotate", + "value": "0" + }, + { + "category": 4, + "name": "mediacodec-handle-resolution-change", + "value": "0" + }, + { + "category": 4, + "name": "mediacodec-hevc", + "value": "0" + } + ] + }, + { + "group": "硬解码", + "options": [{ + "category": 4, + "name": "opensles", + "value": "0" + }, + { + "category": 4, + "name": "overlay-format", + "value": "842225234" + }, + { + "category": 4, + "name": "framedrop", + "value": "1" + }, + { + "category": 4, + "name": "soundtouch", + "value": "1" + }, + { + "category": 4, + "name": "start-on-prepared", + "value": "1" + }, + { + "category": 1, + "name": "http-detect-range-support", + "value": "0" + }, + { + "category": 1, + "name": "fflags", + "value": "fastseek" + }, + { + "category": 2, + "name": "skip_loop_filter", + "value": "48" + }, + { + "category": 4, + "name": "reconnect", + "value": "1" + }, + { + "category": 4, + "name": "max-buffer-size", + "value": "15728640" + }, + { + "category": 4, + "name": "enable-accurate-seek", + "value": "0" + }, + { + "category": 4, + "name": "mediacodec", + "value": "1" + }, + { + "category": 4, + "name": "mediacodec-auto-rotate", + "value": "1" + }, + { + "category": 4, + "name": "mediacodec-handle-resolution-change", + "value": "1" + }, + { + "category": 4, + "name": "mediacodec-hevc", + "value": "1" + } + ] + } +], +"rules":[ +{ +"host":"ss.rongliren.com", +"rule":["m3u8\?id="], +},{ +"host":"hei17.com", +"rule":["img\.hei17\.com","storage/uploads/","\.m3u8$"], +}], +"ads": [ + "mimg.0c1q0l.cn", + "www.googletagmanager.com", + "www.google-analytics.com", + "mc.usihnbcq.cn", + "mg.g1mm3d.cn", + "mscs.svaeuzh.cn", + "cnzz.hhttm.top", + "tp.vinuxhome.com", + "cnzz.mmstat.com", + "www.baihuillq.com", + "s23.cnzz.com", + "z3.cnzz.com", + "c.cnzz.com", + "stj.v1vo.top", + "z12.cnzz.com", + "img.mosflower.cn", + "tips.gamevvip.com", + "ehwe.yhdtns.com", + "xdn.cqqc3.com", + "www.jixunkyy.cn", + "sp.chemacid.cn", + "hm.baidu.com", + "s9.cnzz.com", + "z6.cnzz.com", + "um.cavuc.com", + "mav.mavuz.com", + "wofwk.aoidf3.com", + "z5.cnzz.com", + "xc.hubeijieshikj.cn", + "tj.tianwenhu.com", + "xg.gars57.cn", + "k.jinxiuzhilv.com", + "cdn.bootcss.com", + "ppl.xunzhuo123.com", + "xomk.jiangjunmh.top", + "img.xunzhuo123.com", + "z1.cnzz.com", + "s13.cnzz.com", + "xg.huataisangao.cn", + "z7.cnzz.com", + "xg.huataisangao.cn", + "z2.cnzz.com", + "s96.cnzz.com", + "q11.cnzz.com", + "thy.dacedsfa.cn", + "xg.whsbpw.cn", + "s19.cnzz.com", + "z8.cnzz.com", + "s4.cnzz.com", + "f5w.as12df.top", + "ae01.alicdn.com", + "www.92424.cn", + "k.wudejia.com", + "vivovip.mmszxc.top", + "qiu.xixiqiu.com", + "cdnjs.hnfenxun.com", + "cms.qdwght.com" +] +} \ No newline at end of file