diff options
author | Kyomotoi <[email protected]> | 2021-02-06 00:32:26 +0800 |
---|---|---|
committer | Kyomotoi <[email protected]> | 2021-02-06 00:32:26 +0800 |
commit | f5ceb8927f2e7f2a9e29d62c8e4cef876f917249 (patch) | |
tree | 40b9dcd6b7d3db486054e3aa9b5a04d25fa2284e /ATRI/rule.py | |
parent | eb52fab79ada7efe6191e3a5f90179766feaded0 (diff) | |
download | ATRI-f5ceb8927f2e7f2a9e29d62c8e4cef876f917249.tar.gz ATRI-f5ceb8927f2e7f2a9e29d62c8e4cef876f917249.tar.bz2 ATRI-f5ceb8927f2e7f2a9e29d62c8e4cef876f917249.zip |
🏗 💩 更改项目结构,修复啥b BUG
Diffstat (limited to 'ATRI/rule.py')
-rw-r--r-- | ATRI/rule.py | 114 |
1 files changed, 55 insertions, 59 deletions
diff --git a/ATRI/rule.py b/ATRI/rule.py index 19930e5..586faf9 100644 --- a/ATRI/rule.py +++ b/ATRI/rule.py @@ -1,106 +1,102 @@ import datetime from random import choice -from nonebot.adapters import Event from nonebot.rule import Rule -from nonebot.adapters.cqhttp import GroupMessageEvent +from nonebot.adapters.cqhttp.event import Event +from nonebot.adapters.cqhttp import GroupMessageEvent, PokeNotifyEvent -from .service.switch import Switch -from .service.banlist import BanList -from .service.dormant import Dormant -from .apscheduler import scheduler, DateTrigger from .config import config -from .utils import count_list, del_list_aim - - -warting_list = [] -fast_user_list = [] +from .service.limit import Limit +from .service.banlist import BanSystem +from .service import Service +from .utils.list import count_list, del_list_aim +from .utils.apscheduler import scheduler, DateTrigger def is_in_service(service: str) -> Rule: async def _is_in_service(bot, event, state) -> bool: if isinstance(event, GroupMessageEvent): - return await Switch.auth_service(service, event.group_id) - return await Switch.auth_service(service) - + return await Limit.auth_service(service, event.group_id) + return await Limit.auth_service(service) + return Rule(_is_in_service) -def is_in_ban_list() -> Rule: - async def _is_in_ban_list(bot, event, state) -> bool: - return BanList.is_in_list(event.get_user_id()) - - return Rule(_is_in_ban_list) +def is_in_banlist() -> Rule: + async def _is_in_banlist(bot, event, state) -> bool: + return BanSystem.is_in_list(str(event.get_user_id())) + + return Rule(_is_in_banlist) def is_in_dormant() -> Rule: async def _is_in_dormant(bot, event, state) -> bool: - return Dormant.is_sleep() - - return Rule(_is_in_dormant) - -def is_max_times(max_times: int, time_day: int, - time_hour: int, time_min: int) -> Rule: - async def _is_max_times(bot, event: Event, state) -> bool: - global warting_list - user = event.get_user_id() - if user in warting_list: - return False - - - - - return True + return Service.is_dormant() - return Rule(_is_max_times) + return Rule(_is_in_dormant) -def is_too_fast(times: int, _type: str) -> Rule: - def remove_list(user: str) -> None: - global fast_user_list - fast_user_list = del_list_aim(fast_user_list, user) - - async def _is_too_fast(bot, event: Event, state) -> bool: - global fast_user_list +exciting_user = [] +exciting_repo = [ + "歇歇8,。咱8能再快了", + "太快惹,太快惹嗯", + "你吼辣么快干什么!", + "其实吧我觉得你这速度去d个vup挺适合", + "我不接受!你太快了", + "我有点担心,因为你太快了", + "请稍等!您冲得太快了!" +] + +def is_too_exciting(times: int) -> Rule: + def del_list(user: str) -> None: + global exciting_user + exciting_user = del_list_aim(exciting_user, user) + + async def _is_too_exciting(bot, event, state) -> bool: + global exciting_user user = event.get_user_id() - - if user in fast_user_list: + + if user in exciting_user: await bot.send( - event, choice(config['bot']['session_waiting_repo'])) + event, + choice(exciting_repo) + ) return False else: - if count_list(fast_user_list, user) == times: + if count_list(exciting_user, user) == times: delta = datetime.timedelta( - seconds=config['bot']['session_waiting_time']) + seconds=config["BotSelfConfig"]["session_exciting_time"]) trigger = DateTrigger( run_date=datetime.datetime.now() + delta) scheduler.add_job( - func=remove_list, + func=del_list, trigger=trigger, args=(user,), misfire_grace_time=1, ) - + await bot.send( - event, choice(config['bot']['session_waiting_repo'])) + event, + choice(exciting_repo) + ) return False else: - fast_user_list.append(user) + exciting_user.append(user) return True - return Rule(_is_too_fast) + return Rule(_is_too_exciting) def to_bot() -> Rule: - async def _to_bot(bot, event: Event, state) -> bool: + async def _to_bot(bot, event, state) -> bool: return event.is_tome() return Rule(_to_bot) -def poke() -> Rule: - async def _poke(bot, event, state) -> bool: - return True if event.is_tome() else False - - return Rule(_poke) +def poke(bot, event: PokeNotifyEvent, state): + if event.is_tome(): + return True + else: + return False |