summaryrefslogtreecommitdiff
path: root/ATRI/plugins/plugin_chat/__init__.py
blob: fc2a6e2c1d14c513fbc8af2c7258b669976afe40 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#!/usr/bin/env python3
# -*- encoding: utf-8 -*-
'''
@File    :   __init__.py
@Time    :   2020/10/11 14:38:38
@Author  :   Kyomotoi
@Contact :   kyomotoiowo@gmail.com
@Github  :   https://github.com/Kyomotoi
@License :   Copyright © 2018-2020 Kyomotoi, All Rights Reserved.
'''
__author__ = 'kyomotoi'

from random import choice

from nonebot.log import logger
from nonebot.rule import to_me
from nonebot.adapters.cqhttp import Bot, Event
from nonebot.plugin import on_command, on_message, on_notice

from utils.utils_banList import banList
from utils.utils_history import saveMessage


# 收集 bot 所在群的聊天记录
MessageSave = on_message()

@MessageSave.handle() # type: ignore
async def _(bot: Bot, event: Event, state: dict) -> None:
    user = str(event.user_id)
    group = str(event.group_id)
    message = str(event.message)
    message_id = str(event.id)

    if group == "None":
        saveMessage(message_id, message, user)
    else:
        saveMessage(message_id, message, user, group)
    
    logger.opt(colors=True).info(f"[<yellow>{group}</yellow>]-U: (<blue>{user}</blue>) | Message: (<green>{message}</green>) Saved successfully")


# Call bot
callMe = on_message()

@callMe.handle() # type: ignore
async def _(bot: Bot, event: Event, state: dict) -> None:
    user = str(event.user_id)
    group = str(event.group_id)

    if banList(user, group):
        msg = str(event.message)

        if "ATRI" == msg or "亚托莉" == msg or "アトリ" == msg:
            await callMe.finish("叫我有啥事吗w")
        
        elif "萝卜子" in msg:
            await bot.send(event, "萝卜子是对咱的蔑称!!")
        
        else:
            pass



# 戳 一 戳
pokehah = on_command("戳一戳", rule=to_me())

@pokehah.handle() # type: ignore
async def _poke(bot: Bot, event: Event, state: dict) -> None:
    user = str(event.user_id)
    group = str(event.group_id)

    if banList(user, group):
        msg = choice(
                    [
                        "你再戳!",
                        "?再戳试试?",
                        "别戳了别戳了再戳就坏了555",
                        "我爪巴爪巴,球球别再戳了",
                        "你戳你🐎呢?!",
                        "那...那里...那里不能戳...绝对...",
                        "(。´・ω・)ん?",
                        "有事恁叫我,别天天一个劲戳戳戳!",
                        "欸很烦欸!你戳🔨呢",
                        "?"
                    ])

        await pokehah.finish(msg)


async def poke_(bot: Bot, event: Event, state: dict) -> bool:
    return (event.detail_type == "notify" and event.raw_event["sub_type"] == "poke" and
            event.sub_type == "notice" and int(event.self_id) == event.raw_event["target_id"])

poke = on_notice(poke_, block=True)
poke.handle()(_poke)


groupEvent = on_notice()

@groupEvent.handle() # type: ignore
async def _(bot: Bot, event: Event, state: dict) -> None:
    group = str(event.group_id)
    print(event.raw_event)

    if banList(group):
        if event.raw_event["notice_type"] == "group_increase":
            await groupEvent.finish(f'好欸!事新人[CQ:at,qq={event.raw_event["user_id"]}]')
            await groupEvent.finish(f"在下 ATRI,你可以叫我 亚托莉 或 アトリ !~w")

        elif event.raw_event["notice_type"] == "group_decrease":
            await groupEvent.finish(f'[{event.raw_event["operator_id"]}] 离开了我们...')