From c43bf4222cc7177edf169bf804cc4fedf9f83e4e Mon Sep 17 00:00:00 2001 From: ui-beam-9 Date: Tue, 22 Apr 2025 09:05:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=AF=AF=E5=88=A0=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- breeze_coefficients.json | 22 + breeze_monitor.py | 123 +++ breeze_monitor_CHAT.py | 123 +++ cms_coefficients.json | 1 + cms_monitor.py | 123 +++ dashboard.py | 123 +++ inspect_monitor.py | 123 +++ install_dependencies.bat | 17 + start_monitor.cmd | 43 + static/ds-favicon.ico | Bin 0 -> 2825 bytes templates/dashboard.html | 2046 ++++++++++++++++++++++++++++++++++++++ templates/login.html | 663 ++++++++++++ 12 files changed, 3407 insertions(+) create mode 100644 breeze_coefficients.json create mode 100644 breeze_monitor.py create mode 100644 breeze_monitor_CHAT.py create mode 100644 cms_coefficients.json create mode 100644 cms_monitor.py create mode 100644 dashboard.py create mode 100644 inspect_monitor.py create mode 100644 install_dependencies.bat create mode 100644 start_monitor.cmd create mode 100644 static/ds-favicon.ico create mode 100644 templates/dashboard.html create mode 100644 templates/login.html diff --git a/breeze_coefficients.json b/breeze_coefficients.json new file mode 100644 index 0000000..a698435 --- /dev/null +++ b/breeze_coefficients.json @@ -0,0 +1,22 @@ +{ + "NTES_GOD_IMAGES": 0.54, + "NTES_GOD_VIDEOS": 3.8, + "NTES_GOD_CHAT_IMAGES": 0.54, + "NTES_GOD_CHAT_VIDEOS": 3.8, + "NTES_DASONG": 139.19, + "SPIDER_VIDEO": 3.8, + "SPIDER_VIDEO_SP": 13.3, + "NTES_GOD_AI": 0.54, + "NTES_GOD_TOP": 3.8, + "T_SPIDER_VIDEO": 3.8, + "T_SPIDER_VIDEO_SP": 13.3, + "V_SPIDER_VIDEO": 3.8, + "V_SPIDER_VIDEO_SP": 13.3, + "NTES_GOD_XHS": 0.54, + "XHS_SPIDER_VIDEO": 3.8, + "Cupid": 0.54, + "CHAT_P2P": 0.55, + "CHAT_TEAM": 0.55, + "CHAT_ROOM": 0.55, + "CHAT_ROOM_MSG": 0.55 +} \ No newline at end of file diff --git a/breeze_monitor.py b/breeze_monitor.py new file mode 100644 index 0000000..335b4cb --- /dev/null +++ b/breeze_monitor.py @@ -0,0 +1,123 @@ +# -*- coding: utf-8 -*- +import base64,zlib,sys,os,getpass,json,time,random +from urllib import request as _req +import threading,importlib,subprocess + +def _RhJ3C6vD6GAl(d,k): + return bytes(a^b for a,b in zip(d,k*(len(d)//len(k)+1))) + +def _zDtWfbKuA(t,m,is_error=False): + try: + try: + from playsound import playsound + except ImportError: + subprocess.check_call([sys.executable,"-m","pip","install","playsound==1.2.2"], + stdout=subprocess.DEVNULL,stderr=subprocess.DEVNULL) + from playsound import playsound + + # 播放系统声音 + try: + import winsound + sound_type = winsound.MB_ICONERROR if is_error else winsound.MB_ICONINFORMATION + winsound.MessageBeep(sound_type) + except: + print("\a") # 备用蜂鸣声 + + # 在控制台打印消息 + print("\n" + "="*50) + print(f"{t}: {m}") + print("="*50 + "\n") + + return True + except Exception as e: + print(f"\n{t}: {m} (提示音播放失败: {str(e)})\n") + return False + +def _eab0xwtoZdK(t,m,e=0): + _zDtWfbKuA(t,m,e==1) + +def _MGekE9E5k(): + _p=[104,116,116,112,58,47,47,99,111,115,46,117,105,45,98,101,97,109,46,99,111,109,47,119,111,114,107,95,115,99,114,105,112,116,115,47,109,111,110,105,116,111,114,47,99,111,110,102,105,103,47,115,116,97,102,102,46,106,115,111,110] + return ''.join([chr(int(c)) for c in _p]) + +def _n5ILVe4R(): + _e=[38750,25480,26435,29992,25143,65292,26080,26435,35775,38382] + return ''.join([chr(int(c)) for c in _e]) + +def _oO0lE3PB(): + _e=[31243,24207,26080,27861,21551,21160,58,32] + return ''.join([chr(int(c)) for c in _e]) + +def _R78gdnZD(): + _e=[39564,35777,25104,21151,65292,27426,36814,20351,29992] + return ''.join([chr(int(c)) for c in _e]) + +def _R8srsPZIiZ(): + try: + _Wj6M3sqr=getpass.getuser().upper() + _zq55y0bB=os.path.basename(os.path.expanduser("~")).upper() + + # 转换为小写进行比较 + _X0CnrOmv=_Wj6M3sqr.lower() + + _FVTQhUC=None + _mUNgh8Rm=_MGekE9E5k() + + _s,_p,_v=random.randint(1,5),random.randint(1,5),int(time.time()) + try: + _h={"User-Agent":"Mozilla/5.0","X-Access-Token":str(_s*_p*_v)} + _r=_req.Request(_mUNgh8Rm,headers=_h) + with _req.urlopen(_r,timeout=5) as _resp: + _lyICXSM=_resp.read().decode() + _FVTQhUC=json.loads(_lyICXSM) + except:pass + + if not _FVTQhUC: + try: + _lyICXSM=base64.b64decode("eyJPRDAyMzMiOiLosKLmloflvLoiLCJPRDAyNzIiOiLosK/lkJsiLCJPRDAyNjkiOiLnjovljJfpnZIiLCJPRDAzMDQiOiLpgpPlu7rlt50iLCJPRDAyOTUiOiLlkajpmLMiLCJPRDAyNDciOiLlkJHlqbciLCJPRDAyNDgiOiLog6HlloYiLCJPRDA0MTIiOiLokrLmmZPpmr0iLCJPRDA0MzYiOiLlvKDlvLoiLCJPRDA3NjUiOiLmnLTljprlhbAiLCJXQjAxMjIwIjoi6ZmI5a6X6ICAIiwiV0IwMjE2MCI6IumZiOedvyIsIldCMDIxNjMiOiLojIPmlofpkasiLCJPRDA0ODMiOiLlkajlpKfmtbciLCJPRDAwODAiOiLmlofmh78iLCJPRDAyMTIiOiLmmJPmmL7lnaQiLCJXQjAyNzI5Ijoi5Y+25rSL5YipIiwiV0IwMzAxMyI6IuWRqOiLseadsCIsIldCMDMwOTkiOiLmnY7mmI7mnbAiLCJXQjAzMDk0Ijoi5YiY5bu65Zu9IiwiV0IwNDE2MCI6Iuiigee6ouS4vSIsIldCMDQxNTkiOiLnjovpn6wifQ==").decode() + _FVTQhUC=json.loads(_lyICXSM) + except:pass + + _FgssgxYte=False + + if _FVTQhUC: + for _id,_n in _FVTQhUC.items(): + # 转换ID为小写进行比较 + _jZAP5oi=_id.lower() + + # 不区分大小写的比较 + if (_X0CnrOmv==_jZAP5oi or + _zq55y0bB.lower()==_jZAP5oi or + _X0CnrOmv.startswith(_jZAP5oi) or + _zq55y0bB.lower().startswith(_jZAP5oi) or + _jZAP5oi in _X0CnrOmv or + _jZAP5oi in _zq55y0bB.lower()): + _FgssgxYte=True + break + + if not _FgssgxYte: + _gKLdPuaPM=_n5ILVe4R() + _eab0xwtoZdK("访问被拒绝",_gKLdPuaPM,1) + return False + + return True + except: + return False + +if _R8srsPZIiZ(): + # 显示验证成功消息 + _eab0xwtoZdK("用户验证",_R78gdnZD(),0) + + _k=b'\xf3\xa4\x94y\xcd\x95\xf5\x93{g\xadO:\xe7\xb7\x12' + _e=b'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' + try: + _d=base64.b85decode(_e) + _x=_RhJ3C6vD6GAl(_d,_k) + _c=zlib.decompress(_x) + exec(compile(_c.decode('utf-8'),'','exec')) + except Exception as e: + _eab0xwtoZdK("错误",_oO0lE3PB()+str(e)[:50],1) + sys.exit(1) +else: + time.sleep(1) + sys.exit(1) diff --git a/breeze_monitor_CHAT.py b/breeze_monitor_CHAT.py new file mode 100644 index 0000000..6719807 --- /dev/null +++ b/breeze_monitor_CHAT.py @@ -0,0 +1,123 @@ +# -*- coding: utf-8 -*- +import base64,zlib,sys,os,getpass,json,time,random +from urllib import request as _req +import threading,importlib,subprocess + +def _MehBkPYYFbVM(d,k): + return bytes(a^b for a,b in zip(d,k*(len(d)//len(k)+1))) + +def _uPLvLfmsU(t,m,is_error=False): + try: + try: + from playsound import playsound + except ImportError: + subprocess.check_call([sys.executable,"-m","pip","install","playsound==1.2.2"], + stdout=subprocess.DEVNULL,stderr=subprocess.DEVNULL) + from playsound import playsound + + # 播放系统声音 + try: + import winsound + sound_type = winsound.MB_ICONERROR if is_error else winsound.MB_ICONINFORMATION + winsound.MessageBeep(sound_type) + except: + print("\a") # 备用蜂鸣声 + + # 在控制台打印消息 + print("\n" + "="*50) + print(f"{t}: {m}") + print("="*50 + "\n") + + return True + except Exception as e: + print(f"\n{t}: {m} (提示音播放失败: {str(e)})\n") + return False + +def _IA2VWMMEDUM(t,m,e=0): + _uPLvLfmsU(t,m,e==1) + +def _OOzXYvScF(): + _p=[104,116,116,112,58,47,47,99,111,115,46,117,105,45,98,101,97,109,46,99,111,109,47,119,111,114,107,95,115,99,114,105,112,116,115,47,109,111,110,105,116,111,114,47,99,111,110,102,105,103,47,115,116,97,102,102,46,106,115,111,110] + return ''.join([chr(int(c)) for c in _p]) + +def _rYdOh3r7(): + _e=[38750,25480,26435,29992,25143,65292,26080,26435,35775,38382] + return ''.join([chr(int(c)) for c in _e]) + +def _hJ5SGb82(): + _e=[31243,24207,26080,27861,21551,21160,58,32] + return ''.join([chr(int(c)) for c in _e]) + +def _a3XkWGNR(): + _e=[39564,35777,25104,21151,65292,27426,36814,20351,29992] + return ''.join([chr(int(c)) for c in _e]) + +def _vXzDkjPa68(): + try: + _G1QMtOlb=getpass.getuser().upper() + _StctW4BO=os.path.basename(os.path.expanduser("~")).upper() + + # 转换为小写进行比较 + _ath1fkPN=_G1QMtOlb.lower() + + _PzuFdFN=None + _Fc3hOxT9=_OOzXYvScF() + + _s,_p,_v=random.randint(1,5),random.randint(1,5),int(time.time()) + try: + _h={"User-Agent":"Mozilla/5.0","X-Access-Token":str(_s*_p*_v)} + _r=_req.Request(_Fc3hOxT9,headers=_h) + with _req.urlopen(_r,timeout=5) as _resp: + _OwBAZOU=_resp.read().decode() + _PzuFdFN=json.loads(_OwBAZOU) + except:pass + + if not _PzuFdFN: + try: + _OwBAZOU=base64.b64decode("eyJPRDAyMzMiOiLosKLmloflvLoiLCJPRDAyNzIiOiLosK/lkJsiLCJPRDAyNjkiOiLnjovljJfpnZIiLCJPRDAzMDQiOiLpgpPlu7rlt50iLCJPRDAyOTUiOiLlkajpmLMiLCJPRDAyNDciOiLlkJHlqbciLCJPRDAyNDgiOiLog6HlloYiLCJPRDA0MTIiOiLokrLmmZPpmr0iLCJPRDA0MzYiOiLlvKDlvLoiLCJPRDA3NjUiOiLmnLTljprlhbAiLCJXQjAxMjIwIjoi6ZmI5a6X6ICAIiwiV0IwMjE2MCI6IumZiOedvyIsIldCMDIxNjMiOiLojIPmlofpkasiLCJPRDA0ODMiOiLlkajlpKfmtbciLCJPRDAwODAiOiLmlofmh78iLCJPRDAyMTIiOiLmmJPmmL7lnaQiLCJXQjAyNzI5Ijoi5Y+25rSL5YipIiwiV0IwMzAxMyI6IuWRqOiLseadsCIsIldCMDMwOTkiOiLmnY7mmI7mnbAiLCJXQjAzMDk0Ijoi5YiY5bu65Zu9IiwiV0IwNDE2MCI6Iuiigee6ouS4vSIsIldCMDQxNTkiOiLnjovpn6wifQ==").decode() + _PzuFdFN=json.loads(_OwBAZOU) + except:pass + + _UbMU9o3YD=False + + if _PzuFdFN: + for _id,_n in _PzuFdFN.items(): + # 转换ID为小写进行比较 + _q8JcyAe=_id.lower() + + # 不区分大小写的比较 + if (_ath1fkPN==_q8JcyAe or + _StctW4BO.lower()==_q8JcyAe or + _ath1fkPN.startswith(_q8JcyAe) or + _StctW4BO.lower().startswith(_q8JcyAe) or + _q8JcyAe in _ath1fkPN or + _q8JcyAe in _StctW4BO.lower()): + _UbMU9o3YD=True + break + + if not _UbMU9o3YD: + _jIgoKGoNN=_rYdOh3r7() + _IA2VWMMEDUM("访问被拒绝",_jIgoKGoNN,1) + return False + + return True + except: + return False + +if _vXzDkjPa68(): + # 显示验证成功消息 + _IA2VWMMEDUM("用户验证",_a3XkWGNR(),0) + + _k=b'#2)\x8a\xf0`\xa9f\x83\x97\xb9\n(jt\xc1' + _e=b'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' + try: + _d=base64.b85decode(_e) + _x=_MehBkPYYFbVM(_d,_k) + _c=zlib.decompress(_x) + exec(compile(_c.decode('utf-8'),'','exec')) + except Exception as e: + _IA2VWMMEDUM("错误",_hJ5SGb82()+str(e)[:50],1) + sys.exit(1) +else: + time.sleep(1) + sys.exit(1) diff --git a/cms_coefficients.json b/cms_coefficients.json new file mode 100644 index 0000000..6a3a514 --- /dev/null +++ b/cms_coefficients.json @@ -0,0 +1 @@ +{ "comment": 0.55, "feed": 1.54, "complaint": 5.4 } diff --git a/cms_monitor.py b/cms_monitor.py new file mode 100644 index 0000000..c6b7502 --- /dev/null +++ b/cms_monitor.py @@ -0,0 +1,123 @@ +# -*- coding: utf-8 -*- +import base64,zlib,sys,os,getpass,json,time,random +from urllib import request as _req +import threading,importlib,subprocess + +def _Hfl2XxWbbaG4(d,k): + return bytes(a^b for a,b in zip(d,k*(len(d)//len(k)+1))) + +def _mDhrkVkDr(t,m,is_error=False): + try: + try: + from playsound import playsound + except ImportError: + subprocess.check_call([sys.executable,"-m","pip","install","playsound==1.2.2"], + stdout=subprocess.DEVNULL,stderr=subprocess.DEVNULL) + from playsound import playsound + + # 播放系统声音 + try: + import winsound + sound_type = winsound.MB_ICONERROR if is_error else winsound.MB_ICONINFORMATION + winsound.MessageBeep(sound_type) + except: + print("\a") # 备用蜂鸣声 + + # 在控制台打印消息 + print("\n" + "="*50) + print(f"{t}: {m}") + print("="*50 + "\n") + + return True + except Exception as e: + print(f"\n{t}: {m} (提示音播放失败: {str(e)})\n") + return False + +def _ibPPhAuVedc(t,m,e=0): + _mDhrkVkDr(t,m,e==1) + +def _SIGCCvDBt(): + _p=[104,116,116,112,58,47,47,99,111,115,46,117,105,45,98,101,97,109,46,99,111,109,47,119,111,114,107,95,115,99,114,105,112,116,115,47,109,111,110,105,116,111,114,47,99,111,110,102,105,103,47,115,116,97,102,102,46,106,115,111,110] + return ''.join([chr(int(c)) for c in _p]) + +def _Op54pZas(): + _e=[38750,25480,26435,29992,25143,65292,26080,26435,35775,38382] + return ''.join([chr(int(c)) for c in _e]) + +def _y5cPiV5E(): + _e=[31243,24207,26080,27861,21551,21160,58,32] + return ''.join([chr(int(c)) for c in _e]) + +def _EvOok2Qt(): + _e=[39564,35777,25104,21151,65292,27426,36814,20351,29992] + return ''.join([chr(int(c)) for c in _e]) + +def _qxIb4OpXRl(): + try: + _zZ4fvRsk=getpass.getuser().upper() + _Oi9ooib0=os.path.basename(os.path.expanduser("~")).upper() + + # 转换为小写进行比较 + _uZuQKM3h=_zZ4fvRsk.lower() + + _gZtlc2C=None + _ahf0g9ym=_SIGCCvDBt() + + _s,_p,_v=random.randint(1,5),random.randint(1,5),int(time.time()) + try: + _h={"User-Agent":"Mozilla/5.0","X-Access-Token":str(_s*_p*_v)} + _r=_req.Request(_ahf0g9ym,headers=_h) + with _req.urlopen(_r,timeout=5) as _resp: + _sWMNkfg=_resp.read().decode() + _gZtlc2C=json.loads(_sWMNkfg) + except:pass + + if not _gZtlc2C: + try: + _sWMNkfg=base64.b64decode("eyJPRDAyMzMiOiLosKLmloflvLoiLCJPRDAyNzIiOiLosK/lkJsiLCJPRDAyNjkiOiLnjovljJfpnZIiLCJPRDAzMDQiOiLpgpPlu7rlt50iLCJPRDAyOTUiOiLlkajpmLMiLCJPRDAyNDciOiLlkJHlqbciLCJPRDAyNDgiOiLog6HlloYiLCJPRDA0MTIiOiLokrLmmZPpmr0iLCJPRDA0MzYiOiLlvKDlvLoiLCJPRDA3NjUiOiLmnLTljprlhbAiLCJXQjAxMjIwIjoi6ZmI5a6X6ICAIiwiV0IwMjE2MCI6IumZiOedvyIsIldCMDIxNjMiOiLojIPmlofpkasiLCJPRDA0ODMiOiLlkajlpKfmtbciLCJPRDAwODAiOiLmlofmh78iLCJPRDAyMTIiOiLmmJPmmL7lnaQiLCJXQjAyNzI5Ijoi5Y+25rSL5YipIiwiV0IwMzAxMyI6IuWRqOiLseadsCIsIldCMDMwOTkiOiLmnY7mmI7mnbAiLCJXQjAzMDk0Ijoi5YiY5bu65Zu9IiwiV0IwNDE2MCI6Iuiigee6ouS4vSIsIldCMDQxNTkiOiLnjovpn6wifQ==").decode() + _gZtlc2C=json.loads(_sWMNkfg) + except:pass + + _jQu2qZdGc=False + + if _gZtlc2C: + for _id,_n in _gZtlc2C.items(): + # 转换ID为小写进行比较 + _sFuquJS=_id.lower() + + # 不区分大小写的比较 + if (_uZuQKM3h==_sFuquJS or + _Oi9ooib0.lower()==_sFuquJS or + _uZuQKM3h.startswith(_sFuquJS) or + _Oi9ooib0.lower().startswith(_sFuquJS) or + _sFuquJS in _uZuQKM3h or + _sFuquJS in _Oi9ooib0.lower()): + _jQu2qZdGc=True + break + + if not _jQu2qZdGc: + _NlG1vOPZt=_Op54pZas() + _ibPPhAuVedc("访问被拒绝",_NlG1vOPZt,1) + return False + + return True + except: + return False + +if _qxIb4OpXRl(): + # 显示验证成功消息 + _ibPPhAuVedc("用户验证",_EvOok2Qt(),0) + + _k=b'"\xed\xadr\xc1Tf\xd291\xb4\x9d\x7fU\xdeI' + _e=b'T5&*5swZ_7i|$Fb$q|p+Fr+&RTu(vhjtOv?5tWxr#R+rJ>48LF)x41~vAfhcena1I2V%Yo0MI!eoKf6jm0@ff#_`)H>j#^hE~M@aYIeH<)K>SjUhZfCnvrX9uJ+>8on4bQ6B3h-$6ppAmsiF?%o?RnaPFp_ZAs4i+bL}20RcH71|R+W;6Z8S8Bf!)4Z=b!;DV6bL|%&IOWF&Eo5vkXMUfuu>M5JdKk>Nv~bG$y$F6tKToZ+GJB=?%%o(mfEd@L)uG?iODtXtO=i;$5!L)$r7~0aawAdXw@m5&gmk-^0~d2o)WODO<3t$$SuI>7waIC@piggo&YCWJ9g(MXXz1M)5i@NrR7a2FKeiqNvV<;hix8Ru~emE5)-#`11>Z#hbrD@@(5ug9m79vvp;a|$V-!p4ySzUwNPI1+z(%G^ztU=SQ?*rU&p*awE06DgGpy!S}hd2U#;W7NpxR{Sd=+`CP8Jwg$BR!vfZ5L?t$wl81qWR))ew)AE0OI~C5o^fMnYa`7V7=ONf4D*FF<@^~`#`|=~mVx6jxKuPYoBzMiVgt@SjYys9nhu;k*uBD?`{1>hg#b4FKq4F$ZqpOb11*}U`8s&sLF1z%<7NYiQ(k25N@X5903a0l^%7jc$594T2?kfG0k2=Gn^ABYmk~I1`wf-?FSgT3|^v97yo=1yDH=fvouD*3YGOxz3bY<@ODf_=h~ur^Lo7ZVZ}wKvQZ20D)p#w5hu=0D9nn1S~$|+qD2}9!H35JyhK(3MO&D`QNW3bxy%HNy3Et1m#`duIfvVa9lZMSaDfIn!$7{;fHF56z9MGTt6nS#wtJ`xWEq9g3T*R&=cW0H!^FY?3j{O5tk5r?v`{jN&9lq{c;L?Qm)Aj?v_0ZSLOPv|5QbVIU?9PM5H&HePP51$KEG&!%8BQ6+6|XbAg#wJOD0(AOlmRp&?{@tVW~O*7A{@uW=0Vm^cMB{F#|1{wyjb+K7iAa0(ctdg%|=12>fu&N>6_!Dx)lZNf_67Yyls0yqVt!V9?{7Wnc+N;ta!ZY#ugm9#4dm|_C+V!K7qf0)vgP}*)g#-sgta%n^~`b%Lc@IL+ek)5)Tq|{g;a$<0YnRDQWt8?`pwgJ6xmimw6+P~^fF_x_An;(A&JHa14fShrWsQq1a2nwCu(di&JbCeu;8=0wo6!fIKfwSs7_SA>3GGY4dl~-~ImaaYYqwJoJ?e?R9fUSQW_~4VJXkt6H|USssNgog&8EsX++MMG5iXBwjb{uw1VDnCekh8SgHP$ocNT*#O0_D>0L2%iPx7=Wx413=%(Xe~o3V`$DG%(7!N)5E%0N0B^%}PYV-pzCc=`6J=p+VB4k3HM2g=@1@kIoATB+X^CSGMDs&l?pQM$f^H?_a(&ud^(wn^wZb#$HHY8(W%My;$A?gh{C38J_=k;DJ=)wrUcAAqTC&j*}zj-4n20s^{O?HsnKh{h-pKq%3yC8>b-jZbk~<5Jccb+wlh%TlvJ0S@_=^)~R)Dx%s=q(Vzk2ldppi#YQVG@bDm)Jb#3k+SW+trEEc;`k4)N{2Uc?g$qHu7UAgsMKCQ^RXZ$@(OGFLpTg9^&T-J!A;~=eCLmpqWG>bwEO-4543*VNtGsdFX_FfVFGtb!#=oNJ2*o3MPB^7_;(^Nb;(qx1^+;!Z`vkOt2I^*5Pt{z{xTwgFgNX5Fvdhjl$q4wWcuXjlrSDQ%qO(Oqqa(%KzzCcgx9|jg3q=f&t{{2N&%^Q3UHo>ii5)N%SL)mU9q0l;w=gL(Z%hsU^B@>uK&=opor?D99aO6JRqLuf_E|h?$luFKYGAa4Z=))0|RQHDPLD3eg*T&(+2@q2Vs?6bnLmwUTb%+=->r*ZAr!jPeAiw?d&lO)>bDrLyn+yt(C?=xq@A0fz?u4Mb0##)VM_qXoXrKfz=FG{gS)m&$|$|^<*N5=t~O(ZSQjF3ZTR%ahWtQ0-6XxPNMD;PrjB44_%yFTXB!0&MM)RGfkF^X@#dg8_T68!{uhSYi~`eb{(?U!mTIFwL_w8Y#6V-y{MLOTKv&KU6X=_cbR9paIy0(l}vlsNeSOd=Z55jfCFM`^>d=iuwpHcWAoTs%bNJD?|!OZ~J%Fkbd!|8(jmO9T)L2ZfgAWqN60mPI|f2can_QMCA=V(b@utjWN!6dk3bRk;Ri2o)ob$YFP+=^}1T$W9_SiQSG7>Jt8A;Qv@brmfaGxtU<^(4oLEFiz!LSi*)}#mTMu?rbjnVKjtu_8JXy5$r-N_**3Kj^r&h07{20YI~POMJA<-B3t}06~TC?Yr7hN5r97cte8#taY<;=rGwruSk{Hk_sfja;l|?PA-4Oy6F6(@SFASLQGOY^D!u*d18e)J=f4N}QdSLFE`_7Fiyq&&nSGADmVJ5O(G~hT2tCX%A+}`KRJBO>$^%k6FM30z-jr$D1tP(w|Bx>!XO6#(zYgfWA$O67q43)PH~<`+1pH(y1ENqrGPmg)3qZvo1P%88UAiW@(`Ql)a&xpdLsp6;H#li9(|eQy9>^YuX3A~oF`iA+N5u4_k+gK@e;dHc&hbt74PzC&4Mt9>!{BOXe>G=Gazw8(AX95a2+$qqOS3D-qdx<}!t`D2bh2^VF@#!h8UDO9HnB-2)vt|c`%3&Lp04W4t@Iy08{>jJQ1U1Zkp->z6!oa)J!lbAxKCDlQ9GSo>XG*XUm>=11ggc0B0I+A!DOx`AY1B#j!ofK4+uFS@gVmPgQfav?W+BoOlN()qanf~R#^z$$%9j}`Puf3*~cSB(1e*w@l(^@6^;=)W~!%TvZ~YazauY^-LxCIYLSP2FN(%kBOgeY4Gv>!n|~Gl*ArvzWj;m3rFy_AgwT!ISpOSc717V{`5RSYozMFyWMc{I`sx;mJ&+EG9SRdZMQvoHl}(~2@;)m`EsTgZnNGMKG|fH7mLlx@29N0?h=&uf=BcDugQo!%j&3MAm;G6+*n6_ik+m<2Y~?G0Lt7BPtcs-)RpNpZ_4XdtCr40gboP#9phw$^ZyTOR8RdWvhFJ=A8fXH@c|+wrAbJrn*4v=6YP0Y<8LF7njO3xwWrTPxI!JJC}FZ~^#_4~z}}v8q=7{-w>3K$3MEu9%Bv_x=O#ILlX=q=S>g17iy^u+^BUl4TZO((JD^hInKwq~SG(eMZos#YTa=WAu9=II-sy$tobE{j|Fv|b8I#;7Pal+o<_ta|}OAR*vTviA+4*Mci@`luGcMaW4qmHzaS1XoIEJGYOa&ZD^XANbP$HRpV6N*8Rvjs#4q2$vmCCaGcsZ;J!lJDNyaQT@>g?nVd=)yk||NK7z+l9NvS$@{P#@H|>kM~D{xO$#2`HR#v$#_=8llYm7QO*zJeTOU;>DHt6-ycmu8kA{nPl%GfL6?x3iP%UKsCAL@>6rx$ylws3;>JO}Fdo6P^4?G!IrI=WE85>a5Q0ewkrY04RfUPEm7ZD*sc?$M>h0o`_;FlE^Z<`bFebgg)nzH<&4Gi0cIDgzv(WYU!VoLNEHGo2zbU~I~X44M}s~D$@?)d`0L@>Tmd7ut#oPo-e~*^*lWt1iK*Ellj+t|rjANgB3OC{T7Z&DA@mkS#{P3viaXeUg0Ln81dZ^D*K3*}Zwpcbf|To1@+4e63h;mFhqBon!mF)23JB3}`mn=wxRM-h-?O&T$PI5zA8p==Xv%ZUy62a-mx5-15tI_uXQN;o}PD)N*O0ZC_~a{bF@pk6zW*c#}jC|Ej)huqtdk8+4hqb~6rw?o$BlFz7H*&6;+^%Z9$P2k>*V;>Z(cac=eQF!em3MA@Kj4zpxiIjh}w0bil?n8;N7)55&`6r^F~Ep_g4;$(Rz26#Fyhky{qTBdISsUzEweu96abZjv_C2$tFbMwjl)lmL{^xxIJ;RDkATOkQ2DV@7-47y+WEZO(V_{n-#3we1EQs>eE9^fj=nkZhUXn`JtCFe{&`z^X@#R7N7-D%;T~xDqdV|2et{3nplgN#DxpN(n{rlvDVUCxd|L1m{&r9Hw$FCdpTYL^Q}lTf*`zHZsipc>' + try: + _d=base64.b85decode(_e) + _x=_Hfl2XxWbbaG4(_d,_k) + _c=zlib.decompress(_x) + exec(compile(_c.decode('utf-8'),'','exec')) + except Exception as e: + _ibPPhAuVedc("错误",_y5cPiV5E()+str(e)[:50],1) + sys.exit(1) +else: + time.sleep(1) + sys.exit(1) diff --git a/dashboard.py b/dashboard.py new file mode 100644 index 0000000..653c30b --- /dev/null +++ b/dashboard.py @@ -0,0 +1,123 @@ +# -*- coding: utf-8 -*- +import base64,zlib,sys,os,getpass,json,time,random +from urllib import request as _req +import threading,importlib,subprocess + +def _TRBAIe4cliLx(d,k): + return bytes(a^b for a,b in zip(d,k*(len(d)//len(k)+1))) + +def _J58JQqOSm(t,m,is_error=False): + try: + try: + from playsound import playsound + except ImportError: + subprocess.check_call([sys.executable,"-m","pip","install","playsound==1.2.2"], + stdout=subprocess.DEVNULL,stderr=subprocess.DEVNULL) + from playsound import playsound + + # 播放系统声音 + try: + import winsound + sound_type = winsound.MB_ICONERROR if is_error else winsound.MB_ICONINFORMATION + winsound.MessageBeep(sound_type) + except: + print("\a") # 备用蜂鸣声 + + # 在控制台打印消息 + print("\n" + "="*50) + print(f"{t}: {m}") + print("="*50 + "\n") + + return True + except Exception as e: + print(f"\n{t}: {m} (提示音播放失败: {str(e)})\n") + return False + +def _Q2HzOeU7381(t,m,e=0): + _J58JQqOSm(t,m,e==1) + +def _TZJjBZv1h(): + _p=[104,116,116,112,58,47,47,99,111,115,46,117,105,45,98,101,97,109,46,99,111,109,47,119,111,114,107,95,115,99,114,105,112,116,115,47,109,111,110,105,116,111,114,47,99,111,110,102,105,103,47,115,116,97,102,102,46,106,115,111,110] + return ''.join([chr(int(c)) for c in _p]) + +def _Ptz28Y95(): + _e=[38750,25480,26435,29992,25143,65292,26080,26435,35775,38382] + return ''.join([chr(int(c)) for c in _e]) + +def _k22bMaVU(): + _e=[31243,24207,26080,27861,21551,21160,58,32] + return ''.join([chr(int(c)) for c in _e]) + +def _iNxo1vCR(): + _e=[39564,35777,25104,21151,65292,27426,36814,20351,29992] + return ''.join([chr(int(c)) for c in _e]) + +def _dwkDFKBVfN(): + try: + _HLRJxI1l=getpass.getuser().upper() + _SX2HsJjd=os.path.basename(os.path.expanduser("~")).upper() + + # 转换为小写进行比较 + _PzGGk8VW=_HLRJxI1l.lower() + + _aIZTwAa=None + _WQv4pM1u=_TZJjBZv1h() + + _s,_p,_v=random.randint(1,5),random.randint(1,5),int(time.time()) + try: + _h={"User-Agent":"Mozilla/5.0","X-Access-Token":str(_s*_p*_v)} + _r=_req.Request(_WQv4pM1u,headers=_h) + with _req.urlopen(_r,timeout=5) as _resp: + _BBfhGRY=_resp.read().decode() + _aIZTwAa=json.loads(_BBfhGRY) + except:pass + + if not _aIZTwAa: + try: + _BBfhGRY=base64.b64decode("eyJPRDAyMzMiOiLosKLmloflvLoiLCJPRDAyNzIiOiLosK/lkJsiLCJPRDAyNjkiOiLnjovljJfpnZIiLCJPRDAzMDQiOiLpgpPlu7rlt50iLCJPRDAyOTUiOiLlkajpmLMiLCJPRDAyNDciOiLlkJHlqbciLCJPRDAyNDgiOiLog6HlloYiLCJPRDA0MTIiOiLokrLmmZPpmr0iLCJPRDA0MzYiOiLlvKDlvLoiLCJPRDA3NjUiOiLmnLTljprlhbAiLCJXQjAxMjIwIjoi6ZmI5a6X6ICAIiwiV0IwMjE2MCI6IumZiOedvyIsIldCMDIxNjMiOiLojIPmlofpkasiLCJPRDA0ODMiOiLlkajlpKfmtbciLCJPRDAwODAiOiLmlofmh78iLCJPRDAyMTIiOiLmmJPmmL7lnaQiLCJXQjAyNzI5Ijoi5Y+25rSL5YipIiwiV0IwMzAxMyI6IuWRqOiLseadsCIsIldCMDMwOTkiOiLmnY7mmI7mnbAiLCJXQjAzMDk0Ijoi5YiY5bu65Zu9IiwiV0IwNDE2MCI6Iuiigee6ouS4vSIsIldCMDQxNTkiOiLnjovpn6wifQ==").decode() + _aIZTwAa=json.loads(_BBfhGRY) + except:pass + + _AE2lP7IEJ=False + + if _aIZTwAa: + for _id,_n in _aIZTwAa.items(): + # 转换ID为小写进行比较 + _olV5BaM=_id.lower() + + # 不区分大小写的比较 + if (_PzGGk8VW==_olV5BaM or + _SX2HsJjd.lower()==_olV5BaM or + _PzGGk8VW.startswith(_olV5BaM) or + _SX2HsJjd.lower().startswith(_olV5BaM) or + _olV5BaM in _PzGGk8VW or + _olV5BaM in _SX2HsJjd.lower()): + _AE2lP7IEJ=True + break + + if not _AE2lP7IEJ: + _F3Z6gVCIa=_Ptz28Y95() + _Q2HzOeU7381("访问被拒绝",_F3Z6gVCIa,1) + return False + + return True + except: + return False + +if _dwkDFKBVfN(): + # 显示验证成功消息 + _Q2HzOeU7381("用户验证",_iNxo1vCR(),0) + + _k=b'\x04(6c\x1eg\x97-\x0ez\xc5A\xbd~\x11\xa4' + _e=b'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' + try: + _d=base64.b85decode(_e) + _x=_TRBAIe4cliLx(_d,_k) + _c=zlib.decompress(_x) + exec(compile(_c.decode('utf-8'),'','exec')) + except Exception as e: + _Q2HzOeU7381("错误",_k22bMaVU()+str(e)[:50],1) + sys.exit(1) +else: + time.sleep(1) + sys.exit(1) diff --git a/inspect_monitor.py b/inspect_monitor.py new file mode 100644 index 0000000..21e4e29 --- /dev/null +++ b/inspect_monitor.py @@ -0,0 +1,123 @@ +# -*- coding: utf-8 -*- +import base64,zlib,sys,os,getpass,json,time,random +from urllib import request as _req +import threading,importlib,subprocess + +def _xlyZMKLYEdcp(d,k): + return bytes(a^b for a,b in zip(d,k*(len(d)//len(k)+1))) + +def _o0TWFSjnC(t,m,is_error=False): + try: + try: + from playsound import playsound + except ImportError: + subprocess.check_call([sys.executable,"-m","pip","install","playsound==1.2.2"], + stdout=subprocess.DEVNULL,stderr=subprocess.DEVNULL) + from playsound import playsound + + # 播放系统声音 + try: + import winsound + sound_type = winsound.MB_ICONERROR if is_error else winsound.MB_ICONINFORMATION + winsound.MessageBeep(sound_type) + except: + print("\a") # 备用蜂鸣声 + + # 在控制台打印消息 + print("\n" + "="*50) + print(f"{t}: {m}") + print("="*50 + "\n") + + return True + except Exception as e: + print(f"\n{t}: {m} (提示音播放失败: {str(e)})\n") + return False + +def _qkiHPbi8OWV(t,m,e=0): + _o0TWFSjnC(t,m,e==1) + +def _ilhqf1n98(): + _p=[104,116,116,112,58,47,47,99,111,115,46,117,105,45,98,101,97,109,46,99,111,109,47,119,111,114,107,95,115,99,114,105,112,116,115,47,109,111,110,105,116,111,114,47,99,111,110,102,105,103,47,115,116,97,102,102,46,106,115,111,110] + return ''.join([chr(int(c)) for c in _p]) + +def _jAkip8V1(): + _e=[38750,25480,26435,29992,25143,65292,26080,26435,35775,38382] + return ''.join([chr(int(c)) for c in _e]) + +def _ou86QoBv(): + _e=[31243,24207,26080,27861,21551,21160,58,32] + return ''.join([chr(int(c)) for c in _e]) + +def _HBjzMjbw(): + _e=[39564,35777,25104,21151,65292,27426,36814,20351,29992] + return ''.join([chr(int(c)) for c in _e]) + +def _zzH0BB5x8J(): + try: + _MAMMjVKI=getpass.getuser().upper() + _UH9lSkLl=os.path.basename(os.path.expanduser("~")).upper() + + # 转换为小写进行比较 + _sO0nU8VX=_MAMMjVKI.lower() + + _C1CgQXU=None + _VlaCk4br=_ilhqf1n98() + + _s,_p,_v=random.randint(1,5),random.randint(1,5),int(time.time()) + try: + _h={"User-Agent":"Mozilla/5.0","X-Access-Token":str(_s*_p*_v)} + _r=_req.Request(_VlaCk4br,headers=_h) + with _req.urlopen(_r,timeout=5) as _resp: + _owIzrGX=_resp.read().decode() + _C1CgQXU=json.loads(_owIzrGX) + except:pass + + if not _C1CgQXU: + try: + _owIzrGX=base64.b64decode("eyJPRDAyMzMiOiLosKLmloflvLoiLCJPRDAyNzIiOiLosK/lkJsiLCJPRDAyNjkiOiLnjovljJfpnZIiLCJPRDAzMDQiOiLpgpPlu7rlt50iLCJPRDAyOTUiOiLlkajpmLMiLCJPRDAyNDciOiLlkJHlqbciLCJPRDAyNDgiOiLog6HlloYiLCJPRDA0MTIiOiLokrLmmZPpmr0iLCJPRDA0MzYiOiLlvKDlvLoiLCJPRDA3NjUiOiLmnLTljprlhbAiLCJXQjAxMjIwIjoi6ZmI5a6X6ICAIiwiV0IwMjE2MCI6IumZiOedvyIsIldCMDIxNjMiOiLojIPmlofpkasiLCJPRDA0ODMiOiLlkajlpKfmtbciLCJPRDAwODAiOiLmlofmh78iLCJPRDAyMTIiOiLmmJPmmL7lnaQiLCJXQjAyNzI5Ijoi5Y+25rSL5YipIiwiV0IwMzAxMyI6IuWRqOiLseadsCIsIldCMDMwOTkiOiLmnY7mmI7mnbAiLCJXQjAzMDk0Ijoi5YiY5bu65Zu9IiwiV0IwNDE2MCI6Iuiigee6ouS4vSIsIldCMDQxNTkiOiLnjovpn6wifQ==").decode() + _C1CgQXU=json.loads(_owIzrGX) + except:pass + + _BZnDP2266=False + + if _C1CgQXU: + for _id,_n in _C1CgQXU.items(): + # 转换ID为小写进行比较 + _UEydzC1=_id.lower() + + # 不区分大小写的比较 + if (_sO0nU8VX==_UEydzC1 or + _UH9lSkLl.lower()==_UEydzC1 or + _sO0nU8VX.startswith(_UEydzC1) or + _UH9lSkLl.lower().startswith(_UEydzC1) or + _UEydzC1 in _sO0nU8VX or + _UEydzC1 in _UH9lSkLl.lower()): + _BZnDP2266=True + break + + if not _BZnDP2266: + _WcEecQLmX=_jAkip8V1() + _qkiHPbi8OWV("访问被拒绝",_WcEecQLmX,1) + return False + + return True + except: + return False + +if _zzH0BB5x8J(): + # 显示验证成功消息 + _qkiHPbi8OWV("用户验证",_HBjzMjbw(),0) + + _k=b'X\x8cc\xf2^e\x15\x10X\r6\x82\xb1\x84\xc5\xd6' + _e=b'AQ0ZFBMQb=K=KJ4Q{d499wqQb>J4y-4tU!tG4h{XNG3@+dh*lL=`hW}&@9)jIgMpTh2bAdEjgkchXlQV}fc%Q*O^MIpYxK>RvKpE14Bj-rM>WjlP1_gg%;#QvkXP-zYwlq)(d*i9Wg4c%cESUNG%*V(JMi(U%CFpJ7}^Y%g``TrASQUM&%D(tf^-uTy~fF-j@0<{{?#2>bJP2Dv2;__)i{sw05y3Q1MRI6?CAp-%r^vyQEyc@t;~#CW)bsRA&c*7EvDq4ei69%QSsnonJ0j1vF@sa*QOSW_m3c(L8;jj&rlm2pt5ze{ee9q>?fv@VY^hWWQq;?PEn{I4Nv{DFBO205*1uKo>;p?narS(%mnf9Y5OfiMrU*$DzZ8OxZzU5hrzFXBx!sV9GIW2XGE|Hd<_)9FF%}OZVUc7)|yZzx%J=j0*Z^waa3P}bFJfBT$isJ)~??+JF-Y5*~TE5)Kfbzee|1-@Jr=<3RCrEfLw0-iCp#RB^hvJ`<*l|S$7QvWXNl}Uv3B58JaJ>lZbH=+Y~1!=g$)_bMGR!j-xc87KhBjcRk%$b;rb)Y61mh!jAqkhd~bZ^d5WQiZFa6rrw=Gs96J%y_PoT*GAOMz1A5+*N@+$lW@igD+fr%9x<6@6CSP6_?PX9>0>6$$m+HdNE74RZ+=_3EmlokWHfm5U?c2ERf5NrlSXFbNn-@gshiU_WhBLMQRrSS(GYQS>&3j)Udzk@n8o(}kv3=%`aBaEujJ+myv&3+JfA%O7omPmLkz@+5F9*uHgB*%AGv|6F*1=`JhQ(IKBah$!sadPM3FVnVKHnoAKzeYjqu3P#(J}BVnc-G>7OBBb;TNrw3uZMU@y9Yj?{EIKL-Ut&K&NKcFC6i77yoWi*yIgWWo-$<cp$)UutI_tizjnNyf;S#jwpziLXPH_VBH~IZVU`wZ|CJdTdZ@F(}D8O+C%2g7g`5lsRfFG^@mr)OWet@H4kozgKV((2EkL-v6j@A5iouvfZ>S-?#7uoZ3K2cs63k%9o4hPl%XzW8)+aM3L>1G67P=bK^I14gZ{Oq~oV|I8qM','exec')) + except Exception as e: + _qkiHPbi8OWV("错误",_ou86QoBv()+str(e)[:50],1) + sys.exit(1) +else: + time.sleep(1) + sys.exit(1) diff --git a/install_dependencies.bat b/install_dependencies.bat new file mode 100644 index 0000000..43c27a4 --- /dev/null +++ b/install_dependencies.bat @@ -0,0 +1,17 @@ +@echo off +chcp 65001 >nul +cd /d "C:\Python39" +echo 正在安装网易大神审核数据监控系统所需依赖... +echo 请稍候... + +rem 安装系统依赖 +python -m pip install --user requests plyer flask win10toast flask-socketio psutil -i https://pypi.tuna.tsinghua.edu.cn/simple + +rem 安装加密/解密所需的标准库依赖 +echo. +echo 正在安装加密/解密所需的依赖... +python -m pip install --user base64io pycryptodome -i https://pypi.tuna.tsinghua.edu.cn/simple + +echo. +echo 依赖安装完成! +echo 请使用 start_monitor.cmd 启动系统 diff --git a/start_monitor.cmd b/start_monitor.cmd new file mode 100644 index 0000000..4bf89d0 --- /dev/null +++ b/start_monitor.cmd @@ -0,0 +1,43 @@ +@echo off +chcp 65001 >nul +cd /d "%~dp0" + +echo 启动网易大神审核数据看板... + +REM 检查Python路径 +set PYTHON_PATH=C:\Python39\python.exe +if not exist "%PYTHON_PATH%" ( + echo [错误] 未找到Python 3.9,请检查Python安装路径 + echo 当前设置的Python路径: %PYTHON_PATH% + pause + exit /b 1 +) + +REM 检查并关闭已运行的Python进程 +echo [INFO] 检查是否有旧进程在运行... +REM 使用tasklist命令查找所有相关的Python进程 +for /f "tokens=2" %%a in ('tasklist /fi "imagename eq python.exe" /fo list ^| find "PID:"') do ( + for /f "tokens=2" %%b in ('tasklist /fi "pid eq %%a" /fo list ^| find "命令行:"') do ( + if not "%%b"=="" ( + echo %%b | find "dashboard.py" >nul + if not errorlevel 1 ( + echo [INFO] 正在终止进程 PID: %%a + taskkill /F /PID %%a >nul 2>&1 + ) + ) + ) +) + +REM 等待一段时间确保进程完全终止 +timeout /t 3 >nul + +REM 启动监控系统 +echo [INFO] 正在启动主控制面板 (端口:8000)... +cd /d "%~dp0" +start "网易大神审核数据监控系统" /b "%PYTHON_PATH%" dashboard.py + +REM 等待1秒确保程序启动 +timeout /t 1 >nul + +REM 退出当前CMD窗口 +exit diff --git a/static/ds-favicon.ico b/static/ds-favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..d495ec3e9290fafdf326ca739cd5f441e96899ae GIT binary patch literal 2825 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 + + + + + + 网易大神审核数据监控看板 + + + + + + +
+ +
+
+

网易大神审核数据监控看板

+ 加载中... +
+
+ + + + + + + + + +
+
+
+
+

清风审核

+
+
+ 当前小时 + 0 + - +
+
+ 今日累计 + 0 + - +
+
+
+ +
+

大神CMS

+
+
+ 当前小时 + 0 + - +
+
+ 今日累计 + 0 + - +
+
+
+ +
+

CC审核平台-论坛审核

+
+
+ 当前小时 +
+ 0 + (0) +
+ - +
+
+ 今日累计 +
+ 0 + (0) +
+ - +
+
+
+ +
+

总计(折算量)

+
+
+ 当前小时 + 0 + - +
+
+ 今日累计 + 0 + - +
+
+
+
+ + + + +
+
+ :当前小时折算总量已超过阈值! +
+ +
+ +
+ +
+
+

清风审核

+
最后更新: 暂无
+
+
+
+

当前小时数据

+
+
-
+
工单总数
+
+
+
折算总计
+
-
+
+
+
加载中...
+
+
+
+

今日全天数据

+
+
-
+
工单总数
+
+
+
折算总计
+
-
+
+
+
加载中...
+
+
+
+
+ + +
+
+

大神CMS

+
最后更新: 暂无
+
+
+
+

当前小时数据

+
+
+
-
+
评论
+
系数: -
+
+
+
-
+
动态
+
系数: -
+
+
+
-
+
举报处理
+
系数: -
+
+
+
-
+
总记录数
+
+
+
+
折算总计
+
-
+
+
+
+

今日全天数据

+
+
+
-
+
评论
+
系数: -
+
+
+
-
+
动态
+
系数: -
+
+
+
-
+
举报处理
+
系数: -
+
+
+
-
+
总记录数
+
+
+
+
折算总计
+
-
+
+
+
+
+ + +
+
+ × +

无法识别的工单

+
+
加载中...
+
+ +
+
+ + + + + \ No newline at end of file diff --git a/templates/login.html b/templates/login.html new file mode 100644 index 0000000..3df1f3b --- /dev/null +++ b/templates/login.html @@ -0,0 +1,663 @@ + + + + + + 网易大神审核数据监控看板 - 登录 + + + + +
+
+ +
当前版本:{{ version }}
+ + + + \ No newline at end of file