summaryrefslogtreecommitdiff
path: root/ATRI/plugins/LearnRepo.py
blob: ae158f441cd946cd4cacda52cf868058812c9ddd (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
import json
from datetime import datetime
from pathlib import Path
import nonebot
from nonebot import on_command
from nonebot import CommandSession

import config
from ATRI.modules.error import errorBack


bot = nonebot.get_bot()
master = config.SUPERUSERS
__plugin_name__ = "LearnRepo"

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]
        try:
            with open(Path('.') / 'ATRI' / 'plugins' / 'LearnRepo' / 'LearnRepo.json', 'r') as f:
                data = json.load(f)
        except:
            data = {}

        if w_tpye == '增加词汇' or w_tpye == '学习词汇':
            repo = msg[2]
            prob = int(msg[3])
            if word in data.keys():
                await session.send('该词已存在~!')

            else:
                try:
                    data[f"{word}"] = [f"{repo}",prob]
                    f = open(Path('.') / 'ATRI' / 'plugins' / 'LearnRepo' / 'LearnRepo.json', 'w')
                    f.write(json.dumps(data))
                    f.close()
                    session.finish(f"学習しました!\nWord:[{word}]\nRepo:[{repo}]\nProbability:[{'%.2f%%' % (round(1 / prob , 1) * 100)}]")
                except:
                    session.finish(errorBack('写入失败'))

        elif w_tpye == '删除词汇':
            if word in data.keys():
                try:
                    data.pop(f"{word}")
                    f = open(Path('.') / 'ATRI' / 'plugins' / 'LearnRepo' / 'LearnRepo.json', 'w')
                    f.write(json.dumps(data))
                    f.close()
                    await session.send(f'已成功从ATRI记忆模块中抹除[{word}]')
                except:
                    session.finish(errorBack('移除失败'))
            
            else:
                 session.finish(f'ATRI貌似没法从记忆中找到关键词[{word}]呢...')