From 4c01304add55e878f09f667d054d5564beda136a Mon Sep 17 00:00:00 2001 From: hjdhnx Date: Wed, 7 Sep 2022 23:09:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E4=BA=86=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/cms.py | 35 ++++++++++----- js/AnFuns.js | 8 ++++ js/l0l.js | 10 +++++ js/version.txt | 2 +- "js/\345\260\217\347\214\253\345\222\252.js" | 5 +++ "js/\346\250\241\346\235\277.js" | 44 ++++++++++++++++++- "js/\350\277\275\345\211\247\345\226\265.js" | 5 +++ models/rules.db | Bin 40960 -> 40960 bytes readme.md | 1 + utils/htmlParser.py | 6 ++- 10 files changed, 103 insertions(+), 13 deletions(-) create mode 100644 js/AnFuns.js create mode 100644 js/l0l.js create mode 100644 "js/\345\260\217\347\214\253\345\222\252.js" create mode 100644 "js/\350\277\275\345\211\247\345\226\265.js" diff --git a/controllers/cms.py b/controllers/cms.py index 181dbae..332630a 100644 --- a/controllers/cms.py +++ b/controllers/cms.py @@ -638,19 +638,28 @@ class CMS: # print(title) obj['title'] = title if p.get('desc'): - p1 = p['desc'].split(';') - desc = '\n'.join([pdfh(html,i).replace('\n',' ') for i in p1]) - obj['desc'] = desc + try: + p1 = p['desc'].split(';') + desc = '\n'.join([pdfh(html,i).replace('\n',' ') for i in p1]) + obj['desc'] = desc + except: + pass if p.get('content'): p1 = p['content'].split(';') - content = '\n'.join([pdfh(html,i).replace('\n',' ') for i in p1]) - obj['content'] = content + try: + content = '\n'.join([pdfh(html,i).replace('\n',' ') for i in p1]) + obj['content'] = content + except: + pass if p.get('img'): - p1 = p['img'].split(';') - img = '\n'.join([pdfh(html,i).replace('\n',' ') for i in p1]) - obj['img'] = img + p1 = p['img'] + try: + img = pd(html,p1) + obj['img'] = img + except Exception as e: + logger.info(f'二级图片定位失败,但不影响使用{e}') vod = { "vod_id": detailUrl, @@ -792,8 +801,14 @@ class CMS: # print(item) try: title = pdfh(item, p[1]) - img = pd(item, p[2]) - desc = pdfh(item, p[3]) + try: + img = pd(item, p[2]) + except: + img = '' + try: + desc = pdfh(item, p[3]) + except: + desc = '' # link = '$'.join([pd(item, p4) for p4 in p[4].split('+')]) links = [pd(item, p4) if not self.detailUrl else pdfh(item, p4) for p4 in p[4].split('+')] link = '$'.join(links) diff --git a/js/AnFuns.js b/js/AnFuns.js new file mode 100644 index 0000000..28d6f76 --- /dev/null +++ b/js/AnFuns.js @@ -0,0 +1,8 @@ +muban.海螺3.二级.desc = '.hl-text-conch&&Text'; +var rule = Object.assign(muban.海螺3,{ + title:'AnFuns动漫', + host:'https://www.anfuns.cc', + cate_exclude: '最新|排行', + url:'/type/fyclass-fypage.html', + searchUrl:'/search/page/fypage/wd/**.html', +}); \ No newline at end of file diff --git a/js/l0l.js b/js/l0l.js new file mode 100644 index 0000000..d3c7809 --- /dev/null +++ b/js/l0l.js @@ -0,0 +1,10 @@ +muban.海螺2.二级.content = '.play-m-box&&Text'; +muban.海螺2.二级.desc = '.play-news&&Text'; +muban.海螺2.二级.img = ''; +var rule = Object.assign(muban.海螺2,{ + title:'l0l', + host:'https://www.l0l.tv', + class_parse:'.index-tag&&li;a&&.title&&Text;a&&href;.*/(.*?).html', + searchUrl:'/index.php/vod/search/page/fypage/wd/**.html', + 搜索:'.searchlilst&&li;a&&title;.lazy&&data-original;.list-remarks&&Text;a&&href', +}); \ No newline at end of file diff --git a/js/version.txt b/js/version.txt index 6a3913b..132d9f7 100644 --- a/js/version.txt +++ b/js/version.txt @@ -1 +1 @@ -3.2.7 \ No newline at end of file +3.2.8 \ No newline at end of file diff --git "a/js/\345\260\217\347\214\253\345\222\252.js" "b/js/\345\260\217\347\214\253\345\222\252.js" new file mode 100644 index 0000000..b204edd --- /dev/null +++ "b/js/\345\260\217\347\214\253\345\222\252.js" @@ -0,0 +1,5 @@ +muban.海螺3.二级.content = '.hl-infos-content&&Text'; +var rule = Object.assign(muban.海螺3,{ + title:'小猫咪', + host:'https://xmaomi.net', +}); \ No newline at end of file diff --git "a/js/\346\250\241\346\235\277.js" "b/js/\346\250\241\346\235\277.js" index ac1aaec..e1f7cef 100644 --- "a/js/\346\250\241\346\235\277.js" +++ "b/js/\346\250\241\346\235\277.js" @@ -95,7 +95,49 @@ vfed:{ 一级:'.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', + 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:1, + quickSearch:1, +}, +海螺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:1, + quickSearch:1, +}, }; \ No newline at end of file diff --git "a/js/\350\277\275\345\211\247\345\226\265.js" "b/js/\350\277\275\345\211\247\345\226\265.js" new file mode 100644 index 0000000..18f314d --- /dev/null +++ "b/js/\350\277\275\345\211\247\345\226\265.js" @@ -0,0 +1,5 @@ +// muban.海螺2.二级.content = '.hl-infos-content&&Text'; +var rule = Object.assign(muban.海螺2,{ + title:'追剧喵', + host:'https://zjmiao.com', +}); \ No newline at end of file diff --git a/models/rules.db b/models/rules.db index 6c473b3bb1266f26a1a0970fedce15eb8895ac57..7b04b7008ad5346a7f31283d0307bd12295e9533 100644 GIT binary patch delta 360 zcmZoTz|?SnX@WFk^F$eE#^#L)OZb_kS@iAZPMDX*mf)H6t|>HDePQHU@d1@QeL>pLQ;PI&CXRaSk1&%5@=7jJj2rs{m*+=Kb^E{vLeu)d6EK~8AXNJcsYP>c&;tY#=r}73&;tZ z?WGT~*fKCMNb|KY@xS8V$2W^#fbTJXJzopof4&=hANlX{>+pB+t>(|;JH>Cye};cC zzaQUD{;B-Z{O|c=_gI!2$q8T7~xj delta 123 zcmV->0EGX5zyg540+1U4dXXGM0eZ1uqz?lY1p$)>5G}ER%>=Un6%z&oH6KYEliC?B zvql@c1Tzol02U6p01v(o5Dw!He-8f+*beaz-484eiVtoM$`3sc%nzdvP7b*bl@A*a d?+;uLu(J_hg$}d1E-?WG00(1lYqRe!5pX8;CV~I} diff --git a/readme.md b/readme.md index 1577d3d..5ef03ba 100644 --- a/readme.md +++ b/readme.md @@ -52,6 +52,7 @@ - [X] 3.js源增加cate_exlude参数 - [X] 4.增加腾云驾雾源(二级暂未完善,后面再说) - [X] 5.完善腾云驾雾源,修复直播下载乱码,修复网站强制证书验证 +- [X] 6.升级到3.2.8,增加两套模板和多个对应源 ###### 2022/09/06 - [X] 1.增加了后台管理界面在线检测升级系统功能 - [X] 2.增加了后台管理界面修改直播源地址和同步直播源 diff --git a/utils/htmlParser.py b/utils/htmlParser.py index 9d00e93..c245a4e 100644 --- a/utils/htmlParser.py +++ b/utils/htmlParser.py @@ -43,7 +43,11 @@ class jsoup: else: ret = ret.attr(option) if add_url and option in ['url','src','href','data-original','data-src']: - ret = urljoin(self.MY_URL,ret) + if 'http' in ret: + ret = ret[ret.find('http'):] + else: + ret = urljoin(self.MY_URL,ret) + # print(ret) else: # ret = doc(parse+':first') ret = doc(parse) # 由于是生成器,直接转str就能拿到第一条数据,不需要next -- GitLab