summaryrefslogtreecommitdiff
path: root/ATRI/plugins/wordcloud.py
blob: 90ed408bb4c47ff90e62baddfdc7b2c18ed23916 (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
import json
from random import randint, choice
from datetime import datetime
import nonebot
from nonebot import on_command
from nonebot import CommandSession

import config # type: ignore


bot = nonebot.get_bot()
master = config.MASTER()


def now_time():
    now_ = datetime.now()
    hour = now_.hour
    minute = now_.minute
    now = hour + minute / 60
    return now


@on_command('add_word', aliases = ['增加词汇', '删除词汇'], only_to_me = False)
async def _(session: CommandSession):
    if session.event.user_id == master:
        msg = session.event.raw_message.split(' ', 3)
        w_tpye = msg[0]
        word = msg[1]
        repo = msg[2]
        prob = int(msg[3])
        with open('ATRI/plugins/wordcloud/wordcloud.json', 'r') as f:
            data = json.load(f)

        if w_tpye == '增加词汇':
            if word in data.keys():
                await session.send('该词已存在~!')

            else:
                data[f"{word}"] = [f"{repo}",prob]
                f = open('ATRI/plugins/wordcloud/wordcloud.json', 'w')
                f.write(json.dumps(data))
                f.close()
                session.finish(f"学習しました!\nWord:[{word}]\nRepo:[{repo}]\nProbability:[{'%.2f%%' % (round(1 / prob , 1) * 100)}]")
        
        elif w_tpye == '删除词汇':
            if word in data.keys():
                data.pop(word)
                await session.send(f'已成功从ATRI记忆模块中抹除[{word}]')
            
            else:
                 session.finish(f'ATRI貌似没法从记忆中找到关键词[{word}]呢...')


@bot.on_message("group")
async def repo(context):
    user = context["user_id"]
    group = context["group_id"]
    word = context["message"]
    print(word)
    if 0 <= now_time() < 5.5:
        pass
    else:
        with open('ATRI/plugins/noobList/noobList.json', 'r') as f:
            nL = json.load(f)

        if str(user) in nL.keys():
            pass
        else:
            with open('ATRI/plugins/wordcloud/wordcloud.json', 'r') as f:
                data = json.load(f)

            if str(word) in data.keys():
                lt = data[f"{word}"]
                print(lt)
                msg = lt[0]
                prob = int(lt[1])
                res = randint(1,prob)
                if res == 1:
                    await bot.send_msg(
                        group_id = group,
                        message = msg
                    ) # type: ignore