コード例 #1
0
async def _(session: CommandSession):
    user = session.event.user_id
    group = session.event.group_id
    if checkNoob(user, group):
        if sleepTime():
            await session.send(sleepTime())
        else:
            await session.send(str(random.randint(1, 6)))
コード例 #2
0
ファイル: SingIN.py プロジェクト: synodriver/ATRI
async def _(session: CommandSession):
    group = session.event.group_id
    user = session.event.user_id
    if sleepTime():
        await session.send(sleepTime())
    else:
        if checkNoob(user, group):
            try:
                with open(Path('.') / 'ATRI' / 'modules' / 'favoIMP' / 'user.json', 'r') as f:
                        data = json.load(f)
            except:
                data = {}

            try:
                if data[f"{user}"][1] == datetime.date.today().strftime('%y%m%d'):
                    await session.send('咱今天签到过啦~明天再来吧!')
                    return
            except:
                pass
            
            favoIMP = randint(1,5)

            try:
                with open(Path('.') / 'ATRI' / 'modules' / 'favoIMP' / 'user.json', 'r') as f:
                    data = json.load(f)
                data[f"{user}"] = [f"{int(data[f'{user}'][0]) + favoIMP}", f"{datetime.date.today().strftime('%y%m%d')}"]
                with open(Path('.') / 'ATRI' / 'modules' / 'favoIMP' / 'user.json', 'w') as f:
                    f.write(json.dumps(data))
                    f.close()
            except:
                data = {}
                data[f"{user}"] = [f"{favoIMP}", f"{datetime.date.today().strftime('%y%m%d')}"]
                with open(Path('.') / 'ATRI' / 'modules' / 'favoIMP' / 'user.json', 'w') as f:
                    f.write(json.dumps(data))
                    f.close()

            IMP = int(data[f"{user}"][0])

            msg0 = f'[CQ:at,qq={user}]\n'
            msg0 += '签到成功ヾ(≧∇≦*)ゝ\n'
            msg0 += f'+ 好感度 {favoIMP}|{IMP}\n'

            if 0 <= IMP < 100:
                msg0 += '今日もいい日ですよ!~頑張ってください!'

            elif 100 <= IMP < 250:
                msg0 += 'アトリが心から応援します!'
            
            elif 250 <= IMP < 350:
                msg0 += 'アトリはあなたを待ちます'
            
            elif 350 <= IMP < 400:
                msg0 += 'わ...わたし...えと...す...'
            
            elif 400 <= IMP:
                msg0 += '好きだあなた好きだ!永遠!'
            
            await session.send(msg0)
コード例 #3
0
async def SaucenaoSearch(session: CommandSession):
    user = session.event.user_id
    group = session.event.group_id
    msg = session.current_arg.strip()

    if checkNoob(user, group):
        if sleepTime():
            await session.send(sleepTime())
        else:
            if checkSwitch(__plugin_name__, group):
                if not msg:
                    msg = session.get('message', prompt="请发送一张图片")

                await session.send("开始以图识图")

                try:
                    p = '\\[CQ\\:image\\,file\\=.*?\\,url\\=(.*?)\\]'

                    img = re.findall(p, msg)

                    task = SauceNAO(api_key=API_KEY)
                    data = task.search(url=img)
                    msg0 = ''

                    try:
                        data = json.loads(data)['results'][0]
                        title = data['data']['title']
                        pixiv_id = data['data']['pixiv_id']
                        member_name = data['data']['member_name']
                        member_id = data['data']['member_id']
                        similarity = data['header']['similarity']
                        mini_url = data['header']['thumbnail']
                        msg0 = f'[CQ:at,qq={user}]'
                        msg0 += f'SauceNAO结果:'
                        msg0 += f'[CQ:image,file={mini_url}]\n'
                        msg0 += f'相似度:{similarity}%\n'
                        msg0 += f'标题:{title}\n'
                        msg0 += f'插画ID:{pixiv_id}\n'
                        msg0 += f'画师:{member_name}\n'
                        msg0 += f'画师ID:{member_id}\n'
                        msg0 += f'直链:https://pixiv.cat/{pixiv_id}.jpg'
                    except:
                        msg = '数据处理失败'

                    if float(similarity) > 70:
                        await session.send(msg0)
                    else:
                        await session.send("找不到相似的图呢...")

                except Exception:
                    session.finish(errorBack(msg))
            else:
                session.finish('该功能已关闭...')
コード例 #4
0
async def _(session: CommandSession):
    user = session.event.user_id
    group = session.event.group_id
    if checkNoob(user, group):
        if sleepTime():
            await session.send(sleepTime())
        else:
            await session.send(
                str(
                    random.choice([
                        '大凶', '大胸', '小凶', '小胸', '凶', '吉', '中吉', '大吉', '特大吉',
                        '超特大吉'
                    ])))
コード例 #5
0
ファイル: onMessage.py プロジェクト: synodriver/ATRI
async def _(context):
    user = context["user_id"]
    group = context["group_id"]
    if checkNoob(user, group):
        if sleepTime():
            pass
        else:
            if randint(1, 20) == 4:
                img = choice(['11.jpg', '12.jpg', '23.jpg'])
                img = os.path.abspath(
                    Path('.') / 'ATRI' / 'data' / 'emoji' / 'senren' /
                    f'{img}')
                await bot.send_msg(message=f'[CQ:image,file=file:///{img}]',
                                   auto_escape=False)  # type: ignore

            else:
                pass
コード例 #6
0
ファイル: onMessage.py プロジェクト: synodriver/ATRI
async def _(context):
    group = context["group_id"]
    user = context["user_id"]
    if sleepTime():
        pass
    else:
        if checkNoob(user, group):
            msg = str(context["message"])
            print(msg)
            if "搜图" in msg or "识图" in msg:
                if checkSwitch("saucenao_search", group):
                    try:
                        pattern = r"CQ:reply,id=(.*?)]"
                        info = re.findall(pattern, msg)
                        msgID = info[0]
                        print(msgID)
                    except:
                        print('ERROR-onMessage')
                        return

                    try:
                        with open(
                                Path('.') / 'ATRI' / 'data' / 'groupData' /
                                f'{group}' / 'msgData.json', 'r') as f:
                            data = json.load(f)
                    except:
                        data = {}

                    if msgID in data.keys():
                        msgR = data[f"{msgID}"]["msg"]

                        pattern = r"url=(.*?)]"
                        info = re.findall(pattern, msgR)
                        picURL = info[0]

                        try:
                            task = SauceNAO(api_key=API_KEY)
                            data = task.search(url=picURL)
                            msg0 = ''
                        except:
                            await bot.send_msg(group_id=group,
                                               message=errorBack('请求数据失败')
                                               )  # type: ignore
                            return

                        print(data)
                        try:
                            data = json.loads(data)['results'][0]
                            title = data['data']['title']
                            pixiv_id = data['data']['pixiv_id']
                            member_name = data['data']['member_name']
                            member_id = data['data']['member_id']
                            similarity = data['header']['similarity']
                            mini_url = data['header']['thumbnail']
                            msg0 = f'[CQ:at,qq={user}]'
                            msg0 += f'SauceNAO结果:'
                            msg0 += f'[CQ:image,file={mini_url}]\n'
                            msg0 += f'相似度:{similarity}%\n'
                            msg0 += f'标题:{title}\n'
                            msg0 += f'插画ID:{pixiv_id}\n'
                            msg0 += f'画师:{member_name}\n'
                            msg0 += f'画师ID:{member_id}\n'
                            msg0 += f'直链:https://pixiv.cat/{pixiv_id}.jpg'
                        except:
                            await bot.send_msg(group_id=group,
                                               message=errorBack('处理数据失败')
                                               )  # type: ignore
                            return
                        if msg0:
                            if float(similarity) > 70:
                                await bot.send_msg(group_id=group,
                                                   message=msg0
                                                   )  # type: ignore
                            else:
                                await bot.send_msg(group_id=group,
                                                   message='ATRI无法找到相似的图呢...'
                                                   )  # type: ignore

                else:
                    await bot.send_msg(group_id=group,
                                       message='该功能已关闭...')  # type: ignore

            else:
                try:
                    with open(
                            Path('.') / 'ATRI' / 'plugins' / 'LearnRepo' /
                            'LearnRepo.json', 'r') as f:
                        data = json.load(f)
                except:
                    data = {}

                if str(msg) in data.keys():
                    lt = data[f"{msg}"]
                    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
コード例 #7
0
async def AnimeSearch(session: CommandSession):
    user = session.event.user_id
    group = session.event.group_id
    msg = session.current_arg.strip()

    if checkNoob(user, group):
        if sleepTime():
            await session.send(sleepTime())
        else:
            if checkSwitch(__plugin_name__, group):
                if not msg:
                    msg = session.get('message', prompt="请发送一张图片")

                await session.send("开始以图搜番\n(如搜索时间过长或无反应则为图片格式有问题)")

                p = '\\[CQ\\:image\\,file\\=.*?\\,url\\=(.*?)\\]'

                img = re.findall(p, msg)

                if img:
                    URL = f'https://trace.moe/api/search?url={img[0]}'

                    try:
                        req = await get_bytes(URL)
                    except:
                        session.finish(errorBack('请求数据失败'))

                    data = json.loads(req.decode())

                    try:
                        d = {}

                        for i in range(len(data['docs'])):
                            if data['docs'][i]['title_chinese'] in d.keys():
                                d[data['docs'][i]['title_chinese']][0] += data[
                                    'docs'][i]['similarity']

                            else:
                                m = data['docs'][i]['at'] / 60
                                s = data['docs'][i]['at'] % 60

                                if data['docs'][i]['episode'] == '':
                                    n = 1

                                else:
                                    n = data['docs'][i]['episode']

                                d[toSimpleString(
                                    data['docs'][i]['title_chinese'])] = [
                                        data['docs'][i]['similarity'],
                                        f'第{n}集', f'{int(m)}分{int(s)}秒处'
                                    ]
                    except:
                        session.finish(errorBack('处理数据失败'))

                    result = sorted(d.items(),
                                    key=lambda x: x[1],
                                    reverse=True)

                    t = 0

                    msg0 = f'[CQ:at,qq={user}]\n根据所提供的图片按照相似度找到{len(d)}个结果:'

                    for i in result:
                        t += 1
                        lk = ('%.2f%%' % (i[1][0] * 100))
                        msg = (
                            f'\n——————————\n({t})\n相似度:{lk}\n动漫名:《{i[0]}》\n时间点:{i[1][1]} {i[1][2]}'
                        )
                        msg0 += msg

                    await session.send(msg0)

            else:
                session.finish('该功能已关闭...')