Files
zhenxun_bot/util/__pycache__/utils.cpython-38.pyc
T

62 lines
8.9 KiB
Plaintext
Raw Normal View History

2021-05-20 17:06:54 +08:00
U
d’y`Bã@sšddlZddlmZmZddlmZddlmZddlZddlZddlm Z ddl
Z
ddl Z ddl m
Z
edƒjZiZGdd „d ƒZGd
d „d ƒZGd d
„d
ƒZedƒZGdd„dƒZGdd„dƒZGdd„dƒZedœdd„Zd7eeeedœdd„Zdd„Zeedœdd„Zeedœd d!„Zeedœd"d#„Z eedœd$d%„Z!eedœd&d'„Z"ee#dœd(d)„Z$d*d+„Z%eed,œd-d.„Z&d/d0„Z'd1d2„Z(d3d4„Z)d5d6„Z*dS)8éN)ÚdatetimeÚ timedelta)Ú defaultdict)Úrequire)ÚSELF_ID)ÚTXT_PATHZnonebot_plugin_apschedulerc@s*eZdZdd„Zdd„Zedœdd„ZdS) Ú CountLimitercCsttƒ|_||_dS©N)rÚintÚcountÚmax)Úselfr ©rú$/home/hibiki/hibikibot/util/utils.pyÚ__init__s
zCountLimiter.__init__cCs|j|d7<dS©Né©r ©r
ÚkeyrrrÚaddszCountLimiter.add©ÚreturncCs"|j||jkrd|j|<dSdS)NrTF)r r rrrrÚchecks
zCountLimiter.checkN)Ú__name__Ú
__module__Ú __qualname__rrÚboolrrrrrrsrc@s,eZdZdd„Zdd„Zdd„Zdd„Zd S)
ÚUserExistLimitercCsttƒ|_t ¡|_dSr )rrÚmboolÚtime©r
rrrr%s
zUserExistLimiter.__init__cCst ¡|_d|j|<dS)NT)r rrrrrÚset_True)s
zUserExistLimiter.set_TruecCsd|j|<dS)NF)rrrrrÚ set_False-szUserExistLimiter.set_FalsecCs*t ¡|jdkr | |¡dS|j|S)NéF)r r#rrrrrr0s
zUserExistLimiter.checkN)rrrrr"r#rrrrrr$src@s:eZdZdd„Zedœdd„Zd dd„Zedœd d
„Zd S)
Ú FreqLimitercCsttƒ|_||_dSr )rÚfloatÚ next_timeÚ
default_cd)r
Zdefault_cd_secondsrrrr9s
zFreqLimiter.__init__rcCst ¡|j|kSr )r r'rrrrr=szFreqLimiter.checkrcCs$t ¡|dkr|n|j|j|<dS©Nr)r r(r')r
rZcd_timerrrÚstart_cd@szFreqLimiter.start_cdcCs|j|t ¡Sr )r'r rrrrÚ left_timeCszFreqLimiter.left_timeN)r) rrrrrrr*r&r+rrrrr%8s
r%éc@s4eZdZd eedœdd„Zdd„Zedœd d
„Zd S)
ÚBanCheckLimiteréé)Údefault_check_timeÚ
default_countcCs$ttƒ|_ttƒ|_||_||_dSr )rr
Úmintr&Úmtimer0r1)r
r0r1rrrrLs

zBanCheckLimiter.__init__cCs2|j|dkrt ¡|j|<|j|d7<dSr)r2r r3rrrrrRszBanCheckLimiter.addrcCs|t ¡|j||jkr4t ¡|j|<d|j|<dS|j||jkrxt ¡|j||jkrxt ¡|j|<d|j|<dSdS)NrFT)r r3r0r2r1rrrrrWs
(
zBanCheckLimiter.checkN)r.r/) rrrr&r
rrrrrrrrr-Ksr-c@sFeZdZe d¡Zdd„Zedœdd„Zdd„Z dd
d „Z
d d
„Z dS)ÚDailyNumberLimiterz
Asia/ShanghaicCsd|_ttƒ|_||_dS)Néÿÿÿÿ)Útodayrr
r r )r
Zmax_numrrrris
zDailyNumberLimiter.__init__rcCsJt |j¡}|tdd�j}||jkr6||_|j ¡t|j||j kƒS)Nr.)Úhours)
rÚnowÚtzrÚdayr6r Úclearrr )r
rr8r:rrrrns  

zDailyNumberLimiter.checkcCs
|j|Sr rrrrrÚget_numvszDailyNumberLimiter.get_numrcCs|j||7<dSr r)r
rÚnumrrrÚincreaseyszDailyNumberLimiter.increasecCsd|j|<dSr)rrrrrÚreset|szDailyNumberLimiter.resetN)r) rrrÚpytzÚtimezoner9rrrr<r>r?rrrrr4fs 

r4c@sHeZdZdd„Zdd„Zdd„Zedœdd „Zedœd
d „Z d d
„Z
dS)ÚFuducCsttƒ|_dSr )rÚlistÚmlistr!rrrr�sz
Fudu.__init__cCs|j| |¡dSr )rDÚappend©r
rÚcontentrrrrE„sz Fudu.appendcCsg|j|<dSr ©rDrrrrr;‡sz
Fudu.clearrcCst|j|ƒSr )ÚlenrDrrrrÚsizeŠsz Fudu.sizecCs|j|d|kSr)rHrFrrrr�sz
Fudu.checkcCs|j|dSr)rHrrrrÚget�szFudu.getN) rrrrrEr;r
rJrrrKrrrrrB€s rBrc CsZzt|ƒWdStk
r"YnXzddl}| |¡WdSttfk
rTYnXdS)NTrF)r&Ú
ValueErrorÚ unicodedataÚnumericÚ TypeError)ÚsrMrrrÚ is_number”s
rQ)ÚpathÚstartÚendrc Cstg}t|dddd��V}| ¡}|D]B}|dkr"|dkr"|dkrR| ||d…¡q"| |||…¡q"W5QRX|S)NÚrÚignorezUTF-8)ÚerrorsÚencodingÚ