diff options
author | Kyomotoi <[email protected]> | 2020-11-28 21:47:58 +0800 |
---|---|---|
committer | Kyomotoi <[email protected]> | 2020-11-28 21:47:58 +0800 |
commit | db437589398c5d6d8925681a81bac387746b1ede (patch) | |
tree | 6452243891817cd26760fddabebbbff860a2c2d1 /ATRI | |
parent | 53e7fadaee1541cfdb60dde943a12f4070e6f75d (diff) | |
download | ATRI-db437589398c5d6d8925681a81bac387746b1ede.tar.gz ATRI-db437589398c5d6d8925681a81bac387746b1ede.tar.bz2 ATRI-db437589398c5d6d8925681a81bac387746b1ede.zip |
[Upload]
Diffstat (limited to 'ATRI')
-rw-r--r-- | ATRI/plugins/plugin_chat/__init__.py | 15 | ||||
-rw-r--r-- | ATRI/utils/utils_ban/__init__.py | 5 |
2 files changed, 19 insertions, 1 deletions
diff --git a/ATRI/plugins/plugin_chat/__init__.py b/ATRI/plugins/plugin_chat/__init__.py index 83afc62..a2bab74 100644 --- a/ATRI/plugins/plugin_chat/__init__.py +++ b/ATRI/plugins/plugin_chat/__init__.py @@ -16,16 +16,19 @@ from pathlib import Path from random import choice from random import randint from requests import exceptions +from datetime import timedelta, datetime +from apscheduler.triggers.date import DateTrigger from nonebot.log import logger from nonebot.rule import to_me +from nonebot.sched import scheduler from nonebot.typing import Bot, Event from nonebot.permission import SUPERUSER from nonebot.plugin import on_command, on_message, on_notice, on_request -from ATRI.utils.utils_ban import ban from ATRI.utils.utils_times import countX from ATRI.utils.utils_yml import load_yaml +from ATRI.utils.utils_ban import ban, unban from ATRI.utils.utils_error import errorRepo from ATRI.utils.utils_textcheck import Textcheck from ATRI.utils.utils_history import saveMessage @@ -275,6 +278,7 @@ async def _(bot: Bot, event: Event, state: dict) -> None: laughFunny = on_command('来句笑话', rule=check_banlist()) + @laughFunny.handle() #type: ignore async def _(bot: Bot, event: Event, state: dict) -> None: name = event.sender['nickname'] @@ -289,6 +293,7 @@ async def _(bot: Bot, event: Event, state: dict) -> None: resu = choice(result) await laughFunny.finish(resu.replace("%name", name)) + # 扔漂流瓶 plugin_name = 'drifting-bottle' DRIFTING_BOTTLE_PATH = Path( @@ -420,6 +425,14 @@ async def _(bot: Bot, event: Event, state: dict) -> None: user) == Textcheck().get_times(str(Textcheck().check(msg))): ban_temp_list = list(set(ban_temp_list)) ban(user) + + delta = timedelta(minutes=Textcheck().get_ban_time(msg)) + trigger = DateTrigger(run_date=datetime.now() + delta) + scheduler.add_job(func=unban, + trigger=trigger, + args=(user, ), + misfire_grace_time=60) + await publicOpinion.finish(Textcheck().check(msg)) if Textcheck().check(msg) == "False": diff --git a/ATRI/utils/utils_ban/__init__.py b/ATRI/utils/utils_ban/__init__.py index 1946c5c..5cd361e 100644 --- a/ATRI/utils/utils_ban/__init__.py +++ b/ATRI/utils/utils_ban/__init__.py @@ -23,3 +23,8 @@ def ban(user: str) -> None: data[user] = user with open(BAN_LIST_PATH, 'w') as f: f.write(json.dumps(data)) + +def unban(user: str) -> None: + del data[user] + with open(BAN_LIST_PATH, 'w') as f: + f.write(json.dumps(data)) |