From f5ceb8927f2e7f2a9e29d62c8e4cef876f917249 Mon Sep 17 00:00:00 2001 From: Kyomotoi <1172294279@qq.com> Date: Sat, 6 Feb 2021 00:32:26 +0800 Subject: =?UTF-8?q?=F0=9F=8F=97=20=F0=9F=92=A9=20=E6=9B=B4=E6=94=B9?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=BB=93=E6=9E=84=EF=BC=8C=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E5=95=A5b=20BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ATRI/rule.py | 114 ++++++++++++++++++++++++++++------------------------------- 1 file changed, 55 insertions(+), 59 deletions(-) (limited to 'ATRI/rule.py') 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 -- cgit v1.2.3