Exemple #1
0
    async def messageEvent(friend: Friend, message: MessageChain):
        _msg_text = "".join([msg.text.strip() for msg in message[Plain]
                             ]) if message.has(Plain) else ''
        if message.has(Plain):
            _chat_response = await ChatBot.chat(_msg_text)
            _chain = MessageChain.create([
                Plain(_chat_response["message"] if _chat_response['status'] ==
                      'success' else atri.chatBot['badRequest'])
            ])

        if _chain:
            await atri.app.sendFriendMessage(friend, _chain)
 def _getPlainMessage(_messagechain: MessageChain) -> Optional[str]:
     if _messagechain.has(Plain):
         _text = str()
         for _i in _messagechain[Plain]:
             i_text: str = _i.text
             if not i_text.strip().isspace():
                 _text = f'{_text} {i_text}'
         return _text.strip()
     else:
         return None
Exemple #3
0
async def friend_message_listener(app: GraiaMiraiApplication,
                                  message: MessageChain, friend: Friend):
    if friend.id in _MANAGER:
        if message.asDisplay() == "UpdateToday":
            await app.sendFriendMessage(
                friend, message.create([Plain("开始更新今日色图......")]))
            thread = threading.Thread(target=extraEvent.DayilyMission,
                                      args=(friend, 0))
            thread.start()
        elif message.asDisplay() == "Init":
            await app.sendFriendMessage(friend,
                                        message.create([Plain("初始化......")]))
            extraEvent.initNow(app, message, friend, loop)
        elif message.asDisplay() == "图裂了":
            await app.sendFriendMessage(
                friend, message.create([Plain("正在想办法处理......")]))
            extraEvent.fixPics(app, message, friend, loop)
        '''if message.asDisplay() == "今日色图":
            try:
                print(Universe.get_value("setuScan"))
                print(os.path.abspath(Universe.get_value("setuScan")))
                await app.sendFriendMessage(friend,
                                            message.create([Image.fromUnsafePath("Pixiv/2020-09-12/day_r18_scan.jpg")]))
            except:
                extraEvent.initNow(app, message, friend, loop)
                await app.sendFriendMessage(friend,
                                            message.create([Image.fromUnsafePath("Pixiv/2020-09-12/day_r18_scan.jpg")]))
        elif message.asDisplay() == "今日好图":
            try:
                await app.sendFriendMessage(friend,
                                            message.create([Image.fromLocalFile(Universe.get_value("haotuScan"))]))
            except:
                extraEvent.initNow(app, message, friend, loop)
                await app.sendFriendMessage(friend,
                                            message.create([Image.fromLocalFile(Universe.get_value("haotuScan"))]))'''  # 错误待解决
        if re.search("色图$", message.asDisplay()):
            setuInd = Universe.get_value("setuInd")
            imgid = await app.sendFriendMessage(
                friend,
                message.create([
                    Image.fromLocalFile(
                        extraEvent.setuList[setuInd %
                                            len(extraEvent.setuList)])
                ]))
            print(imgid)
            await app.sendFriendMessage(
                friend, message.create([Plain("今日发送的第{}份色图".format(setuInd))]))
            setuInd += 1
            Universe.set_value("setuInd", setuInd)
        elif re.search("好图$", message.asDisplay()):
            haotuInd = Universe.get_value("haotuInd")
            await app.sendFriendMessage(
                friend,
                message.create([
                    Image.fromLocalFile(
                        extraEvent.haotuList[haotuInd %
                                             len(extraEvent.haotuList)])
                ]))
            await app.sendFriendMessage(
                friend,
                message.create([Plain("今日发送的第{}份好图".format(haotuInd))]))
            print(extraEvent.haotuList[haotuInd % len(extraEvent.haotuList)])
            haotuInd += 1
            Universe.set_value("haotuInd", haotuInd)
        if message.has(Image):
            savePicLs = message[Image]
            counter = len(savePicLs)
            await app.sendFriendMessage(
                friend, message.create([Plain("{}张".format(counter))]))
            threadPic = threading.Thread(target=extraEvent.savePic,
                                         args=(savePicLs, 3))
            threadPic.start()
Exemple #4
0
async def group_message_handler(app: GraiaMiraiApplication,
                                message: MessageChain, group: Group,
                                member: Member):
    if message.asDisplay().startswith("复读"):
        await app.sendGroupMessage(
            group,
            message.create(
                [At(member.id),
                 Plain(message.exclude(Image).asDisplay())]),
            quote=message.__root__[0].id)

    if re.search(r"色图 \d", message.asDisplay()) and (group.id
                                                     in schedulepermission):
        setuInd = Universe.get_value("setuInd")
        setuId = message.asDisplay().split(" ")[1]
        setuId = eval(setuId) - 1
        await app.sendGroupMessage(
            group,
            message.create([
                Image.fromLocalFile(
                    extraEvent.setuList[setuId % len(extraEvent.setuList)])
            ]))
        await app.sendGroupMessage(
            group, message.create([Plain("今日发送的第{}份色图".format(setuInd))]))
        print(extraEvent.setuList[setuInd % len(extraEvent.setuList)])
        setuInd += 1
        Universe.set_value("setuInd", setuInd)
    elif re.search(r"好图 \d", message.asDisplay()) and (group.id
                                                       in schedulepermission):
        haotuInd = Universe.get_value("haotuInd")
        haotuId = message.asDisplay().split(" ")[1]
        haotuId = eval(haotuId) - 1
        await app.sendGroupMessage(
            group,
            message.create([
                Image.fromLocalFile(
                    extraEvent.haotuList[haotuId % len(extraEvent.haotuList)])
            ]))
        await app.sendGroupMessage(
            group, message.create([Plain("今日发送的第{}份好图".format(haotuInd))]))
        print(extraEvent.haotuList[haotuInd % len(extraEvent.haotuList)])
        haotuInd += 1
        Universe.set_value("haotuInd", haotuInd)

    if message.asDisplay() == "色图一览":
        print(Universe.get_value("setuScan"))
        print(os.path.abspath(Universe.get_value("setuScan")))
        await app.sendGroupMessage(
            group,
            message.create(
                [Image.fromLocalFile(Universe.get_value("setuScan"))]))
    elif message.asDisplay() == "好图一览":
        await app.sendGroupMessage(
            group,
            message.create(
                [Image.fromLocalFile(Universe.get_value("haotuScan"))]))

    if member.permission is MemberPerm.Owner:
        if message.asDisplay().startswith("Update"):
            await app.sendGroupMessage(
                group, message.create([Plain("开始更新今日色图......")]))
            threadDaily = threading.Thread(target=extraEvent.DayilyMission,
                                           args=(group, 0))
            threadDaily.start()
        elif message.asDisplay().startswith("Init"):
            await app.sendGroupMessage(group,
                                       message.create([Plain("初始化......")]))
            extraEvent.initNow(app, message, group, loop)
        elif message.asDisplay() == "图裂了":
            await app.sendFriendMessage(
                group, message.create([Plain("正在想办法处理......")]))
            extraEvent.fixPics(app, message, group, loop)

    if message.has(Image):  #图片保存
        # 日常收集图片
        savePicLs = message[Image]
        counter = len(savePicLs)
        sourceid = message.__root__[0].id
        #await app.sendGroupMessage(group, message.create([Plain("{}张".format(counter))]))
        threadPic = threading.Thread(target=extraEvent.savePic,
                                     args=(savePicLs, counter, app, sourceid,
                                           group, loop))
        threadPic.start()