import time
import json
from pathlib import Path
from nonebot import on_command, CommandSession

import config # type: ignore


master = config.MASTER()
file = Path('.') / 'ATRI' / 'plugins' / 'noobList' / 'noobList.json'
file1 = Path('.') / 'ATRI' / 'plugins' / 'noobList' / 'noobGroup.json'


@on_command('add_noobList', aliases = ['屏蔽', '移除'], only_to_me = False)
async def _(session: CommandSession):
    if session.event.user_id == master:
        msg = session.event.raw_message.split(' ', 2)
        b_type = msg[0]
        g_type = msg[1]
        u = msg[2]

        if g_type == 'qq':
            if b_type == '屏蔽':
                try:
                    with open(file, 'r') as f:
                        bL = json.load(f)
                except:
                    bL = {}
                bL[f"{u}"] = f"{u}"
                f = open(file, 'w')
                f.write(json.dumps(bL))
                f.close()
                await session.send(f'正义执行!![{u}]已被ATRI屏蔽!')
            
            elif b_type == '移除':
                try:
                    with open(file, 'r') as f:
                        bL = json.load(f)
                except:
                    bL = {}
                bL.pop(f"{u}")
                f = open(file, 'w')
                f.write(json.dumps(bL))
                f.close()
                await session.send(f'将[{u}]移出黑名单成功~!')
        
        elif g_type == 'group':
            if b_type == '屏蔽':
                try:
                    with open(file1, 'r') as f:
                        bL = json.load(f)
                except:
                    bL = {}
                bL[f"{u}"] = f"{u}"
                f = open(file1, 'w')
                f.write(json.dumps(bL))
                f.close()
                await session.send(f'正义执行!!群[{u}]已被ATRI屏蔽!') 
            
            elif b_type == '移除':
                try:
                    with open(file1, 'r') as f:
                        bL = json.load(f)
                except:
                    bL = {}
                bL.pop(f"{u}")
                f = open(file1, 'w')
                f.write(json.dumps(bL))
                f.close()
                await session.send(f'将群[{u}]移出黑名单成功~!')


@on_command('look_noobList', aliases = ['查看黑名单'], only_to_me = False)
async def _(session: CommandSession):
    start = time.perf_counter()
    with open(file, 'r') as f:
        data = json.load(f)
    with open(file1, 'r') as f:
        data0 = json.load(f)
    
    msg = f'被ATRI列入黑名单有以下列表:\n'
    try:
        msg1 = f'=====[用户]=====\n'
        msg += msg1
        for i in data.keys():
            msg0 = f'{i}\n'
            msg += msg0
    except:
        end = time.perf_counter()
        msg0 = f"==============\nDone time: {round(end - start, 3)}s"
        msg += msg0
        await session.send(msg)
        return

    try:
        msg1 = f'======[群]======\n'
        msg += msg1
        for i in data0.keys():
            msg0 = f'{i}\n'
            msg += msg0
    except:
        end = time.perf_counter()
        msg0 = f"==============\nDone time: {round(end - start, 3)}s"
        msg += msg0
        await session.send(msg)
        return

    end = time.perf_counter()
    msg0 = f"==============\nDone time: {round(end - start, 3)}s"
    msg += msg0
    await session.send(msg)