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

51 lines
8.2 KiB
Plaintext
Raw Normal View History

2021-05-20 17:06:54 +08:00
a
§¢`ã@s–ddlZddlmZmZddlmZddlmZddlZddlZddlZddl m
Z
ddl m Z ddl
Z
edƒjZGdd „d ƒZGd
d „d ƒZGd d
„d
ƒZedƒZGdd„dƒZGdd„dƒZedœdd„Zd7eeeedœdd„Zdd„Zeedœdd„Zeedœdd„Zeedœd d!„Zeedœd"d#„Zeedœd$d%„Z ee!dœd&d'„Z"d(d)„Z#eed*œd+d,„Z$d-d.„Z%d/d0„Z&d1d2„Z'd3d4„Z(edœd5d6„Z)dS)8éN)ÚdatetimeÚ timedelta)Ú defaultdict)Úrequire)ÚTXT_PATH©Ú system_proxyZnonebot_plugin_apschedulerc@s*eZdZdd„Zdd„Zedœdd„ZdS) Ú CountLimitercCsttƒ|_||_dS©N)rÚintÚcountÚmax)Úselfr
©rú4D:\Python\Python_work\hibikibot\hibiki\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Úboolrrrrrr sr c@s,eZdZdd„Zdd„Zdd„Zdd„Zd S)
ÚUserExistLimitercCsttƒ|_t ¡|_dSr
)rrÚmboolÚtime)rrrrr"s
zUserExistLimiter.__init__cCst ¡|_d|j|<dS)NT)r!r rrrrÚset_True&s
zUserExistLimiter.set_TruecCsd|j|<dS)NF)r rrrrÚ set_False*szUserExistLimiter.set_FalsecCs*t ¡|jdkr | |¡dS|j|S)NéF)r!r#r rrrrr-s
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)rZdefault_cd_secondsrrrr6s
zFreqLimiter.__init__rcCst ¡|j|kSr
)r!r'rrrrr:szFreqLimiter.checkrcCs$t ¡|dkr|n|j|j|<dS©Nr)r!r(r')rrZcd_timerrrÚstart_cd=szFreqLimiter.start_cdcCs|j|t ¡Sr
)r'r!rrrrÚ left_time@szFreqLimiter.left_timeN)r) rrrrrrr*r&r+rrrrr%5s
r%éc@s4eZdZd eedœdd„Zdd„Zedœd d
„Zd S)
ÚBanCheckLimiteréé)Údefault_check_timeÚ
default_countcCs$ttƒ|_ttƒ|_||_||_dSr
)rr Úmintr&Úmtimer0r1)rr0r1rrrrIs

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

zDailyNumberLimiter.checkcCs
|j|Sr
rrrrrÚget_numsszDailyNumberLimiter.get_numrcCs|j||7<dSr
r)rrÚnumrrrÚincreasevszDailyNumberLimiter.increasecCsd|j|<dSr)rrrrrÚresetyszDailyNumberLimiter.resetN)r) rrrÚpytzÚtimezoner9rrrr<r>r?rrrrr4cs 

r4rc CsVzt|ƒWdSty Yn0zddl}| |¡WdSttfyPYn0dS)NTrF)r&Ú
ValueErrorÚ unicodedataÚnumericÚ TypeError)ÚsrCrrrÚ is_number}s