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
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()
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()