async def voice(app: GraiaMiraiApplication, group: Group, message: MessageChain, member: Member): message_raw = message.asDisplay() if message_raw[:2] == "语音" and len(message_raw) > 4: sp_m = message_raw.split(" ") if not sp_m[1] in data.keys(): await app.sendGroupMessage( group, MessageChain.create([At(member.id), Plain(" 发音人选择错误!")])) return if len(message.asDisplay()) > 200: await app.sendGroupMessage( group, MessageChain.create([At(member.id), Plain(" 字数过多!")])) return if len(sp_m) < 3: await app.sendGroupMessage( group, MessageChain.create( [At(member.id), Plain(" 请按照格式发送!格式如下:\n语音 发音人 文本")]), ) return await app.sendGroupMessage(group, MessageChain.create([Plain("请稍后")])) text = "".join(sp_m[2:]) # text为文本,sp_m[1]为发音人的名字 informant = data[sp_m[1]] voice_raw = await azure.get_speech(text, informant) # 转码 silk: bytes = await silkcoder.encode(voice_raw) voice_m = await app.uploadVoice(silk) await app.sendGroupMessage(group, MessageChain.create([voice_m]))
async def shutTheFuckUp(self, app: Slave, message: GroupMessage): rands = [random.randint(0, 999) for _ in range(0, 4)] if rands[0] < 12: plain: Plain = message.messageChain.get(Plain) if plain: await app.sendGroupMessage(message.sender.group.id, MeCh.create(plain)) if rands[1] < 12: await app.sendGroupMessage(message.sender.group.id, MeCh.create([Plain('确实')])) if rands[2] < 12: if random.randint(1, 3) < 2: msg = MeCh.create([At(message.sender.id), Plain('我爱你')]) await app.sendGroupMessage(message.sender.group.id, msg) else: if message.messageChain.has(Plain): plain: Plain = message.messageChain.get(Plain)[0] sent = await self.trySentiment(plain.text) if sent[0] == 0: url = self.nm_api if sent[1] > 0.7 else self.nm_api else: return love = await requestText(url) msg = [At(message.sender.id), Plain(love[0])] await app.sendGroupMessage(message.sender.group, MeCh.create(msg)) if rands[3] < 12: await self.sendPhilosophy(app, message)
async def group_message_handler(app: GraiaMiraiApplication, msgchain: MessageChain, group: Group, member: Member): if msgchain.asDisplay().startswith("#G"): await app.sendGroupMessage(group, MessageChain.create( [At(member.id), Plain(await getRepositoryInfo(msgchain.asDisplay().replace('#G','').lstrip().rstrip()))])) elif msgchain.asDisplay().startswith("#I"): repository = msgchain.asDisplay().replace('#I', '').lstrip().rstrip().split(' ')[0] issue_number = int(msgchain.asDisplay().replace('#I', '').lstrip().rstrip().split(' ')[1].replace('#','')) await app.sendGroupMessage(group, MessageChain.create( [At(member.id), Plain(await getIssueInfo(repository,issue_number))]))
async def get_bangumi_info(sender: int, keyword: str) -> list: headers = { "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36" } url = "https://api.bgm.tv/search/subject/%s?type=2&responseGroup=Large&max_results=1" % parse.quote(keyword) print(url) async with aiohttp.ClientSession() as session: async with session.post(url=url, headers=headers) as resp: data = await resp.json() if "code" in data.keys() and data["code"] == 404: return [ "None", MessageChain.create([ At(target=sender), Plain(text="番剧 %s 未搜索到结果!" % keyword) ]) ] print(data) bangumi_id = data["list"][0]["id"] url = "https://api.bgm.tv/subject/%s?responseGroup=medium" % bangumi_id print(url) async with aiohttp.ClientSession() as session: async with session.post(url=url, headers=headers) as resp: data = await resp.json() name = data["name"] cn_name = data["name_cn"] summary = data["summary"] img_url = data["images"]["large"] score = data["rating"]["score"] rank = data["rank"] rating_total = data["rating"]["total"] save_base_path = await get_config("imgSavePath") path = save_base_path + "%s.jpg" % name if not os.path.exists(path): async with aiohttp.ClientSession() as session: async with session.get(url=img_url) as resp: img_content = await resp.read() image = IMG.open(BytesIO(img_content)) image.save(path) return [ "None", MessageChain.create([ At(target=sender), Plain(text="查询到以下信息:\n"), Image.fromLocalFile(path), Plain(text="名字:%s\n\n中文名字:%s\n\n" % (name, cn_name)), Plain(text="简介:%s\n\n" % summary), Plain(text="bangumi评分:%s(参与评分%s人)\n\n" % (score, rating_total)), Plain(text="bangumi排名:%s" % rank) ]) ]
async def group_message_handler( message: MessageChain, app: GraiaMiraiApplication, group: Group, member: Member, ): msgText = message.asDisplay() if msgText.startswith('/云图'): cloud = qunCloud(group.id) if msgText == '/云图': data = cloud.selectLastTime(dayCnt=0, timeType=2) cloud.solve(data) await app.sendGroupMessage( group, MessageChain.create( [At(member.id), Image.fromLocalFile('./res/1.png')])) elif msgText.split()[1] != '屏蔽词': data = cloud.getData(msgText) cloud.solve(data) await app.sendGroupMessage( group, MessageChain.create( [At(member.id), Image.fromLocalFile('./res/1.png')])) else: print(1) words = msgText.split()[2:] if msgText.split()[1] == '屏蔽词': if member.id == adminId: if words[0] == '全局': cloud.addGlobalStopWords(words[1:]) await app.sendGroupMessage( group, MessageChain.create([ At(member.id), Plain('\n全局屏蔽词添加成功\n' + str(words[1:])) ])) else: cloud.addQunStopWords(words) await app.sendGroupMessage( group, MessageChain.create([ At(member.id), Plain('\n屏蔽词添加成功\n' + str(words)) ])) else: await app.sendGroupMessage( group, MessageChain.create([At(member.id), Plain('\n权限不足\n')])) else: qqid = member.id qunid = group.id sendtime = int(time.time()) wordDB().insertvalue(msgText, qqid, qunid, sendtime)
async def group_message_handler(app: GraiaMiraiApplication, message: MessageChain, group: Group, member: Member): if group.id == Global_group: for i in ['状态', '查', '绑定', '预约', '总查刀']: if message.asDisplay().startswith(i): result, type = Bot.run(message.asDisplay() + ' ' + str(member.name) + ' ' + str(member.id)) if type == 'STR': await app.sendGroupMessage(group, MessageChain.create([At(target=member.id), Plain('\n' + result)])) elif type == 'IMG': await app.sendGroupMessage(group, MessageChain.create([At(target=member.id), Image.fromLocalFile(result)]))
async def PicDeaHandler(self, app: Slave, message: GroupMessage): plains = message.messageChain.get(Plain) quote: Quote = message.messageChain.get(Quote)[0] plain: Plain = quote.origin.get(Plain)[0] if any(text.__dict__['text'].strip() == '好' for text in plains): if not self.Permitted(message): # await app.sendGroupMessage(message.sender.group, [At(message.sender.id), Plain('权限不足')]) pass else: if plain.text == '[图片]': if (message.sender.group.id << 32) + quote.id in self.GCache.keys(): cache = self.GCache[(message.sender.group.id << 32) + quote.id] image: Image = cache[0] ext = cache[1] else: try: quote_source: GroupMessage = await app.messageFromId(quote.id) image: Image = quote_source.messageChain.get(Image)[0] ext = 'jpg' except UnknownTarget: mec = MeCh.create([At(message.sender.id), Plain('不在本地与消息缓存中,无法保存')]) await app.sendGroupMessage(message.sender.group, mec) return te = await saveUrlPicture(image.url, image.imageId, 'application/YummyPicture/save/pic', ext) msg = [At(message.sender.id), Plain(te)] await app.sendGroupMessage(message.sender.group, MeCh.create(msg)) elif any(text.__dict__['text'].strip() == '图源' for text in plains): if plain and plain.text in ['[图片]', '[动画表情]']: try: if (k := (message.sender.group.id << 32) + quote.id) in self.GCache.keys(): url = self.GCache[k][0].url else: quote_source: GroupMessage = await app.messageFromId(quote.id) image: Image = quote_source.messageChain.get(Image)[0] url = image.url searcher: Searcher = Searcher() result = await searcher.useApiKey().setUrl(url).get() msg = [] connector: ProxyConnector = ProxyConnector() if proxy := ymConfig.getConfig('setting').get('proxy'): connector = ProxyConnector.from_url(proxy) for one in result: if float(sim := one['header']['similarity']) < 50: continue img_byte = await request(url=one['header']['thumbnail'], connector=connector, close=False) img = Image.fromUnsafeBytes(img_byte) msg.append(img) if 'ext_urls' in one['data']: ext = one['data']['ext_urls'] else: ext = one['header']['thumbnail'] msg.append(Plain(f"相似度{sim}%,链接{ext}"))
async def jy(app: GraiaMiraiApplication, group: Group, member: Member): randint = random.randint(1, 60) await app.sendGroupMessage( group, MessageChain.create( [At(member.id), Plain(f" 恭喜{member.name}获得{randint}秒的禁言时间!")]), ) try: await app.mute(group, member, randint) except PermissionError: await app.sendGroupMessage( group, MessageChain.create([At(member.id), Plain(" 没管理禁nm")]))
async def genshin( app: GraiaMiraiApplication, group: Group, message: MessageChain, member: Member ): if message.asDisplay().startswith("!genshin "): uid = message.asDisplay().split(" ")[1] if len(uid) != 9: await app.sendGroupMessage( group, MessageChain.create([At(member.id), Plain(" Invalid uid!")]) ) return _s = await query(config["cookie"], uid) await app.sendGroupMessage( group, MessageChain.create([At(member.id), Plain(f" {_s}")]) )
async def MSGDeaHandler(self, app: Slave, message: GroupMessage, commands): cmd = commands[0].upper() if not self.Permitted(message): return msg = [At(message.sender.id)] try: if cmd == self.APP_COMMANDS[0]: # ym ymConfig.getConfig(commands[1]).set(commands[2], commands[3]) await ymConfig.save(commands[1]) await self.initYummyPicture() msg.append(Plain('Success')) if cmd == self.APP_COMMANDS[1]: # aa if commands[1].isnumeric(): ymConfig.getConfig('setting').addList('admins', int(commands[1])) await ymConfig.save('setting') msg.append(Plain('Added')) else: msg.append(Plain('Wrong param')) if cmd == self.APP_COMMANDS[2]: # ra if commands[1].isnumeric(): ymConfig.getConfig('setting').rmList('admins', int(commands[1])) await ymConfig.save('setting') msg.append(Plain('Removed')) else: msg.append(Plain('Wrong param')) if cmd == self.APP_COMMANDS[3]: # gr if commands[1].isnumeric() and commands[2].isnumeric(): ymConfig.getConfig('setting').addDict('group_rate', str(commands[1]), int(commands[2])) self.getRating(self.ym, message.sender.group.id, True) await ymConfig.save('setting') msg.append(Plain('Success')) except IndexError: msg.append(Plain('Wrong param')) if len(msg) > 1: await app.sendGroupMessage(message.sender.group, MeCh.create(msg))
async def register(group_id: int, member_id: int) -> list: now = datetime.datetime.now() today_date = now.strftime("%Y-%m-%d") today = datetime.datetime.strptime(today_date, "%Y-%m-%d") print(today) sql = f"SELECT `date` FROM registerRecord WHERE groupId={group_id} AND memberId={member_id} AND `date`>='{today}'" res = await execute_sql(sql) print(res) if len(res) != 0: return [ "None", MessageChain.create( [At(target=member_id), Plain(text="你今天已经签过到了呢~请不要重复签到哦~")]) ] else: sql = f"SELECT count(*) FROM registerRecord WHERE groupId={group_id} AND `date`>='{today}'" res = await execute_sql(sql) rank = res[0][0] + 1 sql = f"INSERT IGNORE INTO registerRecord (groupId,memberId,`date`) VALUES ({group_id},{member_id},'{now}')" await execute_sql(sql) return [ "quoteSource", MessageChain.create([Plain(text=f"签到成功!你是本群今日第{rank}个签到的哦~")]) ]
async def handle(app: GraiaMiraiApplication, message: MessageChain, group: Group, member: Member): if message.asDisplay() == "搜番": await update_user_call_count_plus1(group, member, UserCalledCount.search, "search") if not await get_setting(group.id, Setting.bangumi_search): return MessageItem( MessageChain.create([Plain(text="搜番功能未开启呐~请联系管理员哦~")]), Normal(GroupStrategy())) try: await app.sendGroupMessage( group, MessageChain.create( [At(member.id), Plain("请在30秒内发送要搜索的图片呐~")])) except AccountMuted: logger.error(f"Bot 在群 <{group.name}> 被禁言,无法发送!") return None image_get = None message_received = None @Waiter.create_using_function([GroupMessage]) def waiter(event: GroupMessage, waiter_group: Group, waiter_member: Member, waiter_message: MessageChain): nonlocal image_get nonlocal message_received if time.time() - start_time < 30: if all([ waiter_group.id == group.id, waiter_member.id == member.id, len(waiter_message[Image]) == len( waiter_message.__root__) - 1 ]): image_get = True message_received = waiter_message return event else: logger.warning("等待用户超时!BangumiSearchHandler进程推出!") return event bcc = AppCore.get_core_instance().get_bcc() inc = InterruptControl(bcc) start_time = time.time() await inc.wait(waiter) if image_get: logger.success("收到用户图片,启动搜索进程!") try: await app.sendGroupMessage( group, await BangumiSearchHandler.search_bangumi( message_received[Image][0]), quote=message_received[Source][0]) except AccountMuted: logger.error(f"Bot 在群 <{group.name}> 被禁言,无法发送!") pass return None else: return None
async def Monitor(nickname: str, app: GraiaMiraiApplication, QQ_id: int, Group_id: int, blog_id_set: Set) -> List: ''' 每隔一段时间监控一次, 如有新微博,发送给指定群组, 并@指定人 ''' try: tempList = await raw_monitor(nickname, blog_id_set) except: tempList = [False, []] if tempList[0] is True: new_blog_list = tempList[1] msg_to_send = MessageChain.create([At(QQ_id)]) msg_st = "\n" msg_st += f"您关注的[ {nickname} ]有新动态哦, 请注意查收~~\n" msg_to_send.plus(MessageChain.create([Plain(msg_st)])) for blog in new_blog_list: try: msg_end = "" msg_end += "[Content] : \n{}\n".format(blog["blog_text"]) msg_end += "[Time] : {}\n".format(blog["blog_time"]) msg_end += "[Source] : {}\n".format(blog["source"]) msg_end += "[Likes] : {}\n".format(blog["attitudes_count"]) msg_end += "[Comments] : {}\n".format(blog["comments_count"]) msg_end += "[Reposts] : {}\n".format(blog["reposts_count"]) if blog["blog_imgs"].__len__() > 0: msg_to_send.plus( MessageChain.create([ Image.fromNetworkAddress(img) for img in blog["blog_imgs"] ])) msg_to_send.plus(MessageChain.create([Plain(msg_end)])) except: print("[发送错误, pos = 1]") await app.sendGroupMessage(Group_id, msg_to_send)
async def Lunar(some,*member): send_message = MessageChain.create([Plain(huangli.get())]) if member[0] == (): await app.sendFriendMessage(some,send_message) else: at = MessageChain.create([At(member[0][0].id)]) await app.sendGroupMessage(some,MessageChain.join(at,send_message))
async def netease_cloud_music_hot(some,*member): send_message = MessageChain.create([Plain(wangyiyun.reping())]) if member[0] == (): await app.sendFriendMessage(some, send_message) else: at = MessageChain.create([At(member[0][0].id)]) await app.sendGroupMessage(some,MessageChain.join(at,send_message))
async def hot_weibo(some,rmsg,*member): m = rmsg.split(' ') if len(m) == 2: serial = int(m[1]) - 1 reso_data = weibo.reso()[1] if serial >= len(reso_data): send_message = MessageChain.create([Plain("查找数值不正确,数值应为1~{}".format(len(reso_data)))]) else: send_message = MessageChain.create([ Plain("序号:{}\n" "标题:{}\n" "链接:{}" .format( reso_data[serial]['id'] + 1, reso_data[serial]['name'], reso_data[serial]['url']))]) elif len(m) == 1: send_message = MessageChain.create([Plain('\n{}\n输入 微博热搜 [序号] 来获取访问链接'.format(weibo.reso()[0]))]) else: send_message = MessageChain.create([Plain("你输入的参数有误")]) if member[0] == (): await app.sendFriendMessage(some, send_message) else: at = MessageChain.create([At(member[0][0].id)]) await app.sendGroupMessage(some,MessageChain.join(at,send_message))
async def Admin_Group_Test(message: MessageChain, app: GraiaMiraiApplication, group: Group, member: Member): if group.id in TestGroup: if message.asDisplay().startswith("/test_need_confirm"): await app.sendGroupMessage( group, MessageChain.create( [At(member.id), Plain("发送 /confirm 以继续运行")])) @Waiter.create_using_function([GroupMessage]) async def waiter(event: GroupMessage, waiter_group: Group, waiter_member: Member, waiter_message: MessageChain): if all([ waiter_group.id == group.id, waiter_member.id == member.id, waiter_message.asDisplay().startswith("/confirm") ]): await app.sendGroupMessage( group, MessageChain.create([Plain("开始执行.")])) return event # await asyncio.wait_for(waiter, 60) try: await asyncio.wait_for(inc.wait(waiter), timeout=10) except asyncio.TimeoutError: await app.sendGroupMessage( group, MessageChain.create([Plain("命令超时")])) await app.sendGroupMessage(group, MessageChain.create([Plain("执行完毕.")]))
async def portune(app, group: int, member: int, var, model=''): ''' uid = ev.user_id if not lmt.check(uid): await bot.finish(ev, f'你今天已经抽过签了,欢迎明天再来~', at_sender=True) lmt.increase(uid) model = 'DEFAULT' pic = drawing_pic(model) await bot.send(ev, pic, at_sender=True) ''' t = datetime.datetime.now() - datetime.timedelta(hours=4) if var[0].date() != t.date(): var = [t, '', {}] p = Plain('') if var[1] and var[2]: p = Plain('\n你今天已经抽过签了,这是你今天抽到的签,欢迎明天再来~\n') img = drawing_pic(var, model) img.save("./source/bak1.png") m = MessageChain.create( [At(member), p, Img.fromLocalFile("./source/bak1.png")]) m.__root__[0].display = '' await app.sendGroupMessage(group, m)
async def Member_join(app: GraiaMiraiApplication, group: Group, member: Member): await app.sendGroupMessage( group, MessageChain.create([ At(member.id), Plain("欢迎加入" + str(group.name) + "\n请将群昵称改为游戏ID!") ]))
async def reminder(): global Global_group while True: await asyncio.sleep(3) result = Bot.need_at() if result is not None: await app.sendGroupMessage(Global_group, MessageChain.join([Plain(result[1])], [At(target=int(m[0])) for m in result[0]]))
async def group_welcome_join_handler(group: Group, member: Member): # 欢迎新成员加入 logger.info(f"[{group.id}] {member.id} 加入了 {group.id}") if fetch_config(group.id, "welcomeNewMemberJoin") == 1: await app.sendGroupMessage( group, MessageChain.create( [At(target=member.id), Plain(f' 欢迎加入{group.name}!')]))
async def groupMessage(app: GraiaMiraiApplication, group: Group, member: Member, message: MessageChain): if message.has(At): if message.get(At)[0].target == 993422335: str_reply = reply(message[Plain][0].text.strip()) await app.sendGroupMessage( group, MessageChain.create([Plain(str_reply + ' '), At(member.id)]))
async def githubot(app: GraiaMiraiApplication, member: Member, messageChain: MessageChain, group: Group): """ 使用方法:发送github 用户名/仓库名 获取信息 插件来源:https://github.com/umauc/githubot """ if messageChain.asDisplay().startswith("github "): keyword = messageChain.asDisplay()[7:] try: url = f'https://api.github.com/search/repositories?q={keyword}' headers = {'accept': 'application/vnd.github.v3+json'} async with aiohttp.ClientSession() as session: async with session.get(url=url, headers=headers) as resp: search = await resp.json() if search.get('total_count') != 0: repo_data = search.get('items')[0] full_name = repo_data.get('full_name') owner = repo_data.get('owner').get('login') description = repo_data.get('description') watch = repo_data.get('watchers') star = repo_data.get('stargazers_count') fork = repo_data.get('forks_count') language = repo_data.get('language') open_issues = repo_data.get('open_issues') try: license = repo_data.get('license').get('spdx_id') except Exception: license = 'None' last_pushed = repo_data.get('pushed_at') jump = repo_data.get('html_url') mc = MessageChain.create([ At(target=member.id), Plain( text= f'\n{full_name}:\nOwner:{owner}\nDescription:{description}\nWatch/Star/Fork:{watch}/{star}/{fork}\nLanguage:{language}\nLicense:{license}\nLast pushed:{last_pushed}\nJump:{jump}' ) ]).asSendable() await app.sendGroupMessage(group, mc) except Exception: await app.sendGroupMessage( group, MessageChain.create( [At(target=member.id), Plain(text='无此存储库')]))
async def send( self, app: GraiaMiraiApplication, message: MessageChain, origin_message: MessageChain, target_field: BaseModel, sender: BaseModel ): message = MessageChain.create([At(target=sender.id)]).plusWith(message) await (await self.__strategy_type.send_method(app))(target_field, message)
async def speech_list(app: GraiaMiraiApplication, group: Group, message: MessageChain, member: Member): if message.asDisplay().startswith("语音列表"): await app.sendGroupMessage( group, MessageChain.create( [At(member.id), Plain(" 发音人列表如下:{}".format(data))]), )
async def monitor(app: GraiaMiraiApplication, group: Group, member: Member, message: MessageChain): if not group.id == config["group"]: return if message.asDisplay() == "开始监控": saya.broadcast.loop.create_task(monitor_loop(app, group), name="monitor") await app.sendGroupMessage( group, MessageChain.create([At(member.id), Plain(" 已开启")])) if message.asDisplay() == "在线人数": status = await server.async_status() print(asyncio.current_task(loop=saya.broadcast.loop)) await app.sendGroupMessage( group, MessageChain.create( [At(member.id), Plain(f" 目前在线人数:{status.players_online}")]), )
async def get_dragon_king(group_id: int, app: GraiaMiraiApplication) -> MessageChain: sql = "select * from dragon where groupId=%d order by count desc" % group_id lsp_rank = await execute_sql(sql) print(lsp_rank) msg = [] text = "啊嘞嘞,从启动到现在都没有人要过涩图的嘛!呜呜呜~\n人家。。。人家好寂寞的,快来找我玩嘛~" if lsp_rank == (): return MessageChain.create([Plain(text=text)]) else: time_now = datetime.datetime.now().strftime("%Y-%m-%d") lsp_champion_count = lsp_rank[0][3] if lsp_champion_count == 0: return MessageChain.create([Plain(text=text)]) text = "今天是%s\n" % time_now text += "今日获得老色批龙王称号的是:\n" msg.append(Plain(text=text)) lsp_champion_count = lsp_rank[0][3] if lsp_champion_count == 0: text = "啊嘞嘞,从启动到现在都没有人要过涩图的嘛!呜呜呜~\n人家。。。人家好寂寞的,快来找我玩嘛~" return MessageChain.create([Plain(text=text)]) for i in lsp_rank: if i[3] == lsp_champion_count: if i[2] != 80000000: msg.append(At(target=i[2])) msg.append(Plain(text="\n")) else: msg.append(Plain(text="@匿名LSP\n")) else: break text = "让我们恭喜他!\n今日lsp排行榜:" msg.append(Plain(text=text)) text = "" index = 0 add_bool = False add = 0 last = -1 for i in lsp_rank: if i[3] == 0: break if i[3] == last: add += 1 add_bool = True else: if add_bool: index += add index += 1 add = 0 add_bool = False last = i[3] member = await app.getMember(group_id, i[2]) text += "\n%i.%-20s %3d" % (index, member.name, i[3]) msg.append(Plain(text=text)) return MessageChain.create(msg)
async def GroupMessageHandler(group: Group, member: Member, msgchain: MessageChain): Record.addMessage(ChatRecord(messagechain=msgchain, group=group, member=member)) if msgchain.has(Plain): text = msgchain.get(Plain)[0].text if text == '#词云生成': await app.sendGroupMessage(group, MessageChain.create( [At(member.id), Plain('生成中...')] )) await app.sendGroupMessage(group, MessageChain.create( [At(member.id), Image.fromLocalFile(wordCloudGenerator(Record.getAGroupMessageList(group.id)))] )) elif text == '#今日消息图表': await app.sendGroupMessage(group, MessageChain.create( [At(member.id), Plain('生成中...')] )) await app.sendGroupMessage(group, MessageChain.create( [At(member.id), Image.fromLocalFile(summaryGraphGenerator("today", Record.getAGroupMessageList(group.id)))] )) elif text == '#总消息图表': await app.sendGroupMessage(group, MessageChain.create( [At(member.id), Plain('生成中...')] )) await app.sendGroupMessage(group, MessageChain.create( [At(member.id), Image.fromLocalFile(summaryGraphGenerator("total", Record.getAGroupMessageList(group.id)))] ))
async def coolapk(app: GraiaMiraiApplication, group: Group, member: Member): await app.sendGroupMessage( group, MessageChain.create([At(member.id), Plain(" 图片发送较慢,请稍等...")])) n = await request( "https://api.coolapk.com/v6/page/dataList?url=%2Ffeed%2FcoolPictureList%3FfragmentTemplate%3Dflex&title=&subTitle=&page=1" ) choice_dict = random.choice(n) url = choice_dict["pic"] username = choice_dict["username"] tag = choice_dict["tags"] device = choice_dict["device_title"] msg = [ At(member.id), Plain(" 用户名:{}\n使用设备:{}\n标签:{}".format(username, device, tag)), Image.fromNetworkAddress(url), ] await app.sendGroupMessage(group, MessageChain.create(msg))
async def group_message_handler_yf( message: MessageChain, app: GraiaMiraiApplication, group: Group, member: Member, saying: MessageChain ): print("Truth or Dare") await app.sendGroupMessage(group, MessageChain.create([ At(member.id), Plain("\n"), Plain(tord.tord()) ]))