From db02d263a14c147d5243f7859c7d1b266832e9ce Mon Sep 17 00:00:00 2001 From: hjdhnx Date: Wed, 21 Sep 2022 15:01:05 +0800 Subject: [PATCH] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=B7=B2=E6=AD=A3=E5=B8=B8?= =?UTF-8?q?=E6=B8=B2=E6=9F=93=E6=98=AF=E5=90=A6=E9=9A=90=E8=97=8F=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- base/rules.db | Bin 86016 -> 86016 bytes controllers/home.py | 27 +++++++++++++++++++++++++-- controllers/service.py | 8 +++++++- 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/base/rules.db b/base/rules.db index c1165040d8fe43fbb3ac57c82de6e6d59729ced2..923a4cc123df36bf493fe0f979832c31713d689a 100644 GIT binary patch delta 1427 zcmaKsOGs2v7{~9q*U_1AxOZ|KAL%q|KJZod+__J&$4r7KVVi6tnPGuJ3(1lSVKf9m zT4YCZ;YK%61d)gZJyc3_BBEM2Hb~i`5F&~;5fsvQ&&-IXH)b>c^ZQ=s-0%B($85c0 zwrhDvAId+3^oh36Gh`=AA22D)9w04qyh~APWMhviYPu$o3v*upx6OBW6UP$9nsJhI zGP$RBGj{TRzA5Q|B_Kq5euA?zLGmrTu}l&rsaiCuC0u~z8X4DMh^worq4u%q5TV`Q z45kcuo7+k{7WkZm1#m-dPjxc>c1U3w6!;F1R|~u=VW8-Wp_A2xJ1LZ2%sEJ+5k4nT zAy%Od$1v0EaWW+hc~In^NGR!QC=h+J@da|hwGJ=J`H7GQhVxLBlkqYPV-E)Hr_Oa= zBCqf6B=;A2Z^B3mfKgo~RBjrP*dk66Rn|nYz5+_7#2=LtL=z#QTwk6f9Z@-1iXxl0 zxD_3SO7<;vC5|DE3dfI^y5pA{-*Gl~+jk6TMu0qecgAVH!RLXipB@g8@!UdkBvzXI zBBH2k%4A<`4MB?DWh0qcmmtgJ{Bmt^q3a`q?fs1KTlgvb5WWhlLPX&C@BABng1^pp z@kdGBy#{~3{lCAdL3GTOB2=UEB>2SZ)S-9O3Wh<=aVd$KTnbVJndQ($P4a-s29=ir z&-II1sRo>9fQ*@v%r4t(K2Q(i5Q~~p1#*;1MH4lg4zedM1ELnF1bLjgx~Egku=}al z8y9{mnxD<}t{V-G zq`A?{BJMKR!qsv2OHA9? zZH>)o<18_q-b}#Z?UU2iDB9{C@AP=rR#;=RM@y}+N{7r7$Kh>O03Eh!OLw{hE&k(rA@GF6#@bMoDzeh^h=riP}I&5y-1b22ziekblV`SVku$s6{v2wEDL z8#OX<12rVehXN%TCSR0{o1Af+Z?gYhc0p5f19QV~)fn2k2a%t0vPE{25s!Ec7hRO$^M9opiVuL>U+uI2|21Qi=*HC!b#@HF?`rzR3&z zvH%^+!Rew6bSFr`U8dx#i}@oBtSrW;NWl1P2E&I9W_V{yTcxMuivXASaF% z2L9jt-}pan=G!2^xLuBs@euds2Ydc9O~1>}sLq_qJaam`0ORS6jmMd`FEC?F;M^Ry Lm7RH+0;2%{2hgX2 diff --git a/controllers/home.py b/controllers/home.py index 6e179bc..099c24a 100644 --- a/controllers/home.py +++ b/controllers/home.py @@ -8,7 +8,7 @@ import os from flask import Blueprint,abort,render_template,render_template_string,url_for,redirect,make_response,send_from_directory -from controllers.service import storage_service +from controllers.service import storage_service,rules_service from controllers.classes import getClasses,getClassInfo from utils.files import getPics,custom_merge,getAlist,get_live_url,get_multi_rules,getCustonDict @@ -18,6 +18,7 @@ from base.R import R from utils.system import getHost,is_linux from utils.cfg import cfg from utils import parser +from utils.ua import time,get_interval from utils.log import logger from utils.update import getLocalVer,getHotSuggest from js.rules import getJxs @@ -176,6 +177,22 @@ def get_hot_search(): data = getHotSuggest() return R.success('获取成功',data) +def merged_hide(merged_config): + t1 = time() + store_rule = rules_service() + hide_rules = store_rule.getHideRules() + hide_rule_names = list(map(lambda x: x['name'], hide_rules)) + # print(hide_rule_names) + all_cnt = len(merged_config['sites']) + + def filter_show(x): + name = x['api'].split('rule=')[1].split('&')[0] if 'rule=' in x['api'] else x['key'] + # print(name) + return name not in hide_rule_names + + merged_config['sites'] = list(filter(filter_show, merged_config['sites'])) + logger.info(f'数据库筛选隐藏规则耗时{get_interval(t1)}毫秒,共计{all_cnt}条规则,隐藏后可渲染{len(merged_config["sites"])}条规则') + @home.route('/config/') def config_render(mode): # print(dict(app.config)) @@ -206,8 +223,11 @@ def config_render(mode): # html = render_template('config.txt',rules=getRules('js'),host=host,mode=mode,jxs=jxs,base64Encode=base64Encode,config=new_conf) html = render_template('config.txt',pys=pys,rules=rules,host=host,mode=mode,jxs=jxs,alists=alists,alists_str=alists_str,live_url=live_url,config=new_conf) merged_config = custom_merge(parseText(html),customConfig) - # print(merged_config) + # print(merged_config['sites']) + + merged_hide(merged_config) # response = make_response(html) + # print(len(merged_config['sites'])) response = make_response(json.dumps(merged_config,ensure_ascii=False,indent=1)) # response = make_response(str(merged_config)) response.headers['Content-Type'] = 'application/json; charset=utf-8' @@ -237,17 +257,20 @@ def config_gen(): with open('txt/pycms0.json','w+',encoding='utf-8') as f: customConfig = getCustonDict(getHost(0)) set_dict = custom_merge(parseText(set_local), customConfig) + merged_hide(set_dict) # set_dict = json.loads(set_local) f.write(json.dumps(set_dict,ensure_ascii=False,indent=4)) with open('txt/pycms1.json','w+',encoding='utf-8') as f: customConfig = getCustonDict(getHost(1)) set_dict = custom_merge(parseText(set_area), customConfig) + merged_hide(set_dict) # set_dict = json.loads(set_area) f.write(json.dumps(set_dict,ensure_ascii=False,indent=4)) with open('txt/pycms2.json','w+',encoding='utf-8') as f: customConfig = getCustonDict(getHost(2)) set_dict = custom_merge(parseText(set_online), customConfig) + merged_hide(set_dict) # set_dict = json.loads(set_online) f.write(json.dumps(set_dict,ensure_ascii=False,indent=4)) files = [os.path.abspath(rf'txt\pycms{i}.json') for i in range(3)] diff --git a/controllers/service.py b/controllers/service.py index 6732482..d8b0386 100644 --- a/controllers/service.py +++ b/controllers/service.py @@ -92,6 +92,7 @@ class rules_service(object): state = 1 return state or 0 + def setState(self,key,state=0): res = RuleClass.query.filter(RuleClass.name == key).first() if res: @@ -106,4 +107,9 @@ class rules_service(object): return res.id except Exception as e: print(f'发生了错误:{e}') - return None \ No newline at end of file + return None + + @staticmethod + def getHideRules(): + res = RuleClass.query.filter(RuleClass.state == 0).all() + return copy_utils.obj_to_list(res) \ No newline at end of file -- GitLab