diff --git a/base/config.py b/base/config.py index 50e7a9c8a75bdb3bc0fdc4cb5a55cab154bc2393..e5d873bebca27d20803d2048fc3fecd94de7e477 100644 --- a/base/config.py +++ b/base/config.py @@ -12,7 +12,8 @@ HOST = '127.0.0.1' PORT = '3306' DATABASE = 'pira' # DB_URI = '{}+{}://{}:{}@{}:{}/{}?charset=utf8'.format(DIALECT, DRIVER, USERNAME, PASSWORD, HOST, PORT, DATABASE) -DB_URI = 'sqlite:///models/rules.db?charset=utf8&check_same_thread=False' +# DB_URI = 'sqlite:///models/rules.db?charset=utf8&check_same_thread=False' +DB_URI = 'sqlite:///base/rules.db?charset=utf8&check_same_thread=False' SQLALCHEMY_DATABASE_URI = DB_URI SQLALCHEMY_TRACK_MODIFICATIONS = False SQLALCHEMY_ECHO = False # 打印sql语句 @@ -36,4 +37,5 @@ MAX_CONTENT_LENGTH = 1 * 1024 * 1024/100 # 100 kB LIVE_MODE = 0 # 0 本地 1外网 LIVE_URL = 'https://gitcode.net/qq_26898231/TVBox/-/raw/main/live/zb.txt' # 初始化外网直播地址(后续在管理界面改) CATE_EXCLUDE = '首页|留言|APP|下载|资讯|新闻|动态' # 动态分类过滤 +TAB_EXCLUDE = '猜你|喜欢|APP|下载|剧情|简介' # 动态线路名过滤 # {% if config.WALL_PAPER %}"wallpaper":"{{ config.WALL_PAPER }}",{% endif %} diff --git a/base/rules.db b/base/rules.db new file mode 100644 index 0000000000000000000000000000000000000000..fd82c28ca2ca2db7f55d5a6ca635e52a2d218de8 Binary files /dev/null and b/base/rules.db differ diff --git a/controllers/cms.py b/controllers/cms.py index a82e5a02dfe165755ad5ac430813360ffd2220bd..0bff86f38b688874a67fbd32a208f10cafc25acc 100644 --- a/controllers/cms.py +++ b/controllers/cms.py @@ -37,17 +37,24 @@ class CMS: self.title = rule.get('title', '') self.id = rule.get('id', self.title) cate_exclude = rule.get('cate_exclude','') + tab_exclude = rule.get('tab_exclude','') self.lazy = rule.get('lazy', False) self.play_disable = new_conf.get('PLAY_DISABLE',False) self.retry_count = new_conf.get('RETRY_CNT',3) self.lazy_mode = new_conf.get('LAZYPARSE_MODE') self.ocr_api = new_conf.get('OCR_API') self.cate_exclude = new_conf.get('CATE_EXCLUDE','') + self.tab_exclude = new_conf.get('TAB_EXCLUDE','') if cate_exclude: if not str(cate_exclude).startswith('|') and not str(self.cate_exclude).endswith('|'): self.cate_exclude = self.cate_exclude+'|'+cate_exclude else: self.cate_exclude += cate_exclude + if tab_exclude: + if not str(tab_exclude).startswith('|') and not str(self.tab_exclude).endswith('|'): + self.tab_exclude = self.tab_exclude+'|'+tab_exclude + else: + self.tab_exclude += tab_exclude # print(self.cate_exclude) try: self.vod = redirect(url_for('vod')).headers['Location'] @@ -812,12 +819,20 @@ class CMS: html = str(html) if p.get('tabs'): + vodHeader = [] # print(p['tabs'].split(';')[0]) - vodHeader = pdfa(html,p['tabs'].split(';')[0]) + vHeader = pdfa(html,p['tabs'].split(';')[0]) # print(f'线路列表数:{len((vodHeader))}') # print(vodHeader) if not is_json: - vodHeader = [pq(v).text() for v in vodHeader] + for v in vHeader: + # 过滤排除掉线路标题 + v_title = pq(v).text() + if self.tab_exclude and jsp.test(self.tab_exclude, v_title): + continue + vodHeader.append(v_title) + else: + vodHeader = vHeader else: vodHeader = ['道长在线'] diff --git a/readme.md b/readme.md index 4af220253294fda7e8f0d4f7922e39d5dc0fabe4..ec0f06c3df22b6675b7657fd5a5a08f94acde620 100644 --- a/readme.md +++ b/readme.md @@ -50,6 +50,7 @@ - [X] 1.升级至3.4.4.增加小强迷源,增加二级重定向属性(提供重定向后的源码,让代码重新取重定向过后的线路和播放列表) - [X] 2.升级至3.4.5.增加兔小贝儿歌源,优化json:细节处理以及详情页拼接细节 - [X] 3.升级至3.4.7 后台管理增加了py源开关 +- [X] 4.升级至3.4.8 转移数据库到base目录防止被覆盖,增加js源的tab_exclude属性(线路名称过滤) ###### 2022/09/09 - [X] 1.增加西瓜源,修复一级不支持lazy的bug - [X] 2.兄弟们dockerhub没法push镜像不知道咋回事,3.4.1的镜像自己用docker目录下的文件build吧 @@ -210,6 +211,8 @@ var rule = { class_parse:'#side-menu:lt(1) li;a&&Text;a&&href;com/(.*?)/', // 除开全局过滤之外还需要过滤哪些标题不视为分类 cate_exclude:'', + // 除开全局动态线路名过滤之外还需要过滤哪些线路名标题不视为线路 + tab_exclude:'', // 服务器解析播放 play_parse:true, // 自定义免嗅