diff options
Diffstat (limited to 'ATRI/utils')
| -rw-r--r-- | ATRI/utils/cqcode.py | 29 | ||||
| -rw-r--r-- | ATRI/utils/limit.py | 58 | 
2 files changed, 87 insertions, 0 deletions
| 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 | 
