From 15dfd75ce84235b07b845fdfb42e269002b92c01 Mon Sep 17 00:00:00 2001 From: Kyomotoi <1172294279@qq.com> Date: Mon, 5 Apr 2021 16:01:22 +0800 Subject: =?UTF-8?q?=E2=9C=A8=F0=9F=90=9B=E2=9A=A1=EF=B8=8F=20=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增:转发信息伪造 新增:关键词回复/添加/删除(待更新) 新增:涩图检测(部署方式待更新) 新增:使用方法 新增:ATRI语加密/解密 新增:注入检测 新增:部分命令频率限制 移除:群垃圾检测 优化:提升了部分代码可读性 优化:对 Service 部分代码进行重构 --- ATRI/utils/cqcode.py | 29 ++++++++++++++++++++++++++ ATRI/utils/limit.py | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 ATRI/utils/cqcode.py create mode 100644 ATRI/utils/limit.py (limited to 'ATRI/utils') diff --git a/ATRI/utils/cqcode.py b/ATRI/utils/cqcode.py new file mode 100644 index 0000000..3102a92 --- /dev/null +++ b/ATRI/utils/cqcode.py @@ -0,0 +1,29 @@ +import re +from typing import Optional + +from ATRI.service import Service as sv + + +tencent_gchat_url = "gchat.qpic.cn" +noob_code = ["record", "video", "music", "xml", "json"] + + +async def coolq_code_check(cq_code: str, + user: Optional[int] = None, + group: Optional[int] = None): + _type = re.findall(r"CQ:(.*?),", cq_code) + for i in _type: + if i == "image": + result = re.findall(r"url=(.*?)]", cq_code) + url = "" if not result else result[0] + if tencent_gchat_url not in url: + msg = "你注你🐎呢" + await sv.NetworkPost.send_msg(user_id=user, + group_id=group, + message=msg) + else: + return True + elif i in noob_code: + return False + else: + return True \ No newline at end of file diff --git a/ATRI/utils/limit.py b/ATRI/utils/limit.py new file mode 100644 index 0000000..06b1f35 --- /dev/null +++ b/ATRI/utils/limit.py @@ -0,0 +1,58 @@ +import datetime +from random import choice + +from ATRI.config import config +from ATRI.service import Service as sv +from .list import count_list, del_list_aim +from .apscheduler import scheduler, DateTrigger + + +exciting_user_temp = [] +exciting_user = [] +exciting_repo = [ + "歇歇8,。咱8能再快了", + "太快惹,太快惹嗯", + "你吼辣么快干什么!", + "其实吧我觉得你这速度去d个vup挺适合", + "我不接受!你太快了", + "我有点担心,因为你太快了", + "请稍等!您冲得太快了!" +] + + +def del_list(user: str) -> None: + global exciting_user + exciting_user = del_list_aim(exciting_user, user) + +async def is_too_exciting(user: int, group: int, + times: int, repo: bool) -> bool: + global exciting_user + + if user in exciting_user: + if repo: + await sv.NetworkPost.send_msg(user_id=user, + group_id=group, + message=choice(exciting_repo)) + return False + else: + if count_list(exciting_user_temp, user) == times: + delta = datetime.timedelta( + seconds=config["BotSelfConfig"]["session_exciting_time"]) + trigger = DateTrigger( + run_date=datetime.datetime.now() + delta) + + scheduler.add_job( + func=del_list, + trigger=trigger, + args=(user,), + misfire_grace_time=1, + ) + + if repo: + await sv.NetworkPost.send_msg(user_id=user, + group_id=group, + message=choice(exciting_repo)) + return False + else: + exciting_user_temp.append(user) + return True -- cgit v1.2.3