async def group_message_handler(app: GraiaMiraiApplication, message: MessageChain, group: Group, member: Member): if message.asDisplay().startswith("对刀"): if group.id in GroupTokens: t = GroupTokens[group.id] bf = self.token_client[t] data = bf.fetch_clan_status() day_report = bf.fetch_day_report() total_number = sum([x['number'] for x in day_report]) est_number = len(day_report) * 3 msg = "今日出刀 (%s/%s)" % (total_number, est_number) for row in day_report: msg += "\n({}) {} [{:,}]".format( row['number'], row['name'], row['damage']) x = [ Plain("%s #%d\n进度:L%d-%s (%d/%d)\n" % ( data['clan_info']['name'], data['clan_info']['last_ranking'], data['boss_info']['lap_num'], data['boss_info']['name'], data['boss_info']['current_life'], data['boss_info']['total_life'], )), Plain(msg) ] await app.sendGroupMessage(group, MessageChain(__root__=x)) if message.asDisplay().startswith("进度"): if group.id in GroupTokens: t = GroupTokens[group.id] bf = self.token_client[t] data = bf.fetch_clan_status() day_report = bf.fetch_day_report() total_number = sum([x['number'] for x in day_report]) est_number = len(day_report) * 3 msg = "今日出刀 (%s/%s)" % (total_number, est_number) x = [ Plain("%s #%d\n进度:L%d-%s (%d/%d)\n" % ( data['clan_info']['name'], data['clan_info']['last_ranking'], data['boss_info']['lap_num'], data['boss_info']['name'], data['boss_info']['current_life'], data['boss_info']['total_life'], )), Plain(msg) ] await app.sendGroupMessage(group, MessageChain(__root__=x))
async def send_msg_listener(event: SendMsgEvent): print("send: id " + str(event.id) + ' ' + event.msg) if (event.is_group == True): group = await app.getGroup(event.id) await app.sendGroupMessage(group, MessageChain(__root__=[Plain(event.msg)])) else: friend = await app.getFriend(event.id) await app.sendFriendMessage(friend, MessageChain(__root__=[Plain(event.msg)]))
async def group_message_handler(app: GraiaMiraiApplication, message: MessageChain, group: Group): if message.asDisplay().startswith("hihi"): await app.sendGroupMessage( group, MessageChain(__root__=[ Plain("Hello, World!"), ])) time.sleep(1) await app.sendGroupMessage( group, MessageChain(__root__=[Plain("Hello, World2")]))
async def group_message_handler(app: GraiaMiraiApplication, message: MessageChain, group: Group, member: Member): if (group.id == 729054809 or group.id == 791894520 or group.id == 702968511): msg = message.asDisplay() rmsg = personal(msg) await app.sendGroupMessage(group, MessageChain(__root__=[Plain(rmsg)]))
async def switchPcr(app, group: Group, switch: str): msg = '' if switch == 'on': write_in_ini('data/switch.ini', str(group.id), 'pcrteam', '1') msg = 'PCR团队战功能开启' elif switch == 'off': write_in_ini('data/switch.ini', str(group.id), 'pcrteam', '0') msg = 'PCR团队战功能关闭' else: return await app.sendGroupMessage(group, MessageChain(__root__=[Plain(msg)]))
async def paraphrase(app, group: Group, msg: str, feedback=False) -> str: data = loadDefine() for i in data: if msg.find(data[i] == -1): continue if feedback == True: await app.sendGroupMessage( group, MessageChain(__root__=[Plain('发生转义:\n' + i + '->' + data[i])])) msg = msg.replace(i, data[i]) return msg
async def group_message_handler(app: GraiaMiraiApplication, message: MessageChain, group: Group, member: Member): msg = message.asDisplay() group_msg_database[str(group.id) + str(member.id)] = msg rmsg = '' for gid in interactive_group_list: if (gid == group.id): if (check_active(msg)): rmsg = r0se_main(msg, friend=None, group=group) await app.sendGroupMessage( group, MessageChain(__root__=[Plain(rmsg)]))
async def switchMain(app, group: Group, switch: str): msg = '' if switch == 'on': write_in_ini('data/switch.ini', str(group.id), 'on', '1') msg = '起床咯切噜!' elif switch == 'off': write_in_ini('data/switch.ini', str(group.id), 'on', '0') msg = '要睡咯切噜噜~...' elif switch == 'quit': await app.sendGroupMessage(group, MessageChain.create([Plain('切噜走啦,拜拜!~')])) await app.quit(group) else: return await app.sendGroupMessage(group, MessageChain(__root__=[Plain(msg)]))
async def fetch_battle_log(): for t in self.token_client: bf: BigFun = self.token_client[t] data = bf.fetch_incremental_battle_data() if len(data): msg = [] if len(data) >= 1: msg.append(Plain("获取到 %d 条出刀记录:" % len(data))) for row in data[-10:]: msg.append( Plain("\n%s %d-%s %s %s%s" % (convert_ts(row["datetime"]), row["lap_num"], row["boss_id"][-1], "{:,}".format( row["damage"]), row["name"], "(R)" if row["reimburse"] else "(K)" if row["kill"] else ""))) for group in self.token_group[t]: await self.mirai.sendGroupMessage( group, MessageChain(__root__=msg))
async def fetch_position(): for t in self.token_client: bf: BigFun = self.token_client[t] data = bf.fetch_clan_status() day_report = bf.fetch_day_report() total_number = sum([x['number'] for x in day_report]) est_number = len(day_report) * 3 msg = [ Plain("%s #%d\n进度:L%d-%s (%d/%d)\n出刀 %s/%d" % (data['clan_info']['name'], data['clan_info']['last_ranking'], data['boss_info']['lap_num'], data['boss_info']['name'], data['boss_info']['current_life'], data['boss_info']['total_life'], total_number, est_number)) ] for group in self.token_group[t]: await self.mirai.sendGroupMessage( group, MessageChain(__root__=msg))
async def group_push_msg_scheduler(): group_list = [ 729054809, # pwnsky ] rmsg = '' # 每日先知文章群推送 if (time.localtime().tm_hour == 8 and time.localtime().tm_min == 0): for group_n in group_list: group = await app.getGroup(group_n) rmsg = get_xz_article() await app.sendGroupMessage(group, MessageChain(__root__=[Plain(rmsg)])) # 每日看雪文二进制章群推送 if (time.localtime().tm_hour == 9 and time.localtime().tm_min == 0): rmsg = get_kx_binary_article() for group_n in group_list: group = await app.getGroup(group_n) await app.sendGroupMessage(group, MessageChain(__root__=[Plain(rmsg)])) # 每日看雪密码学文章群推送 if (time.localtime().tm_hour == 12 and time.localtime().tm_min == 0): rmsg = get_kx_crypto_article() for group_n in group_list: group = await app.getGroup(group_n) await app.sendGroupMessage(group, MessageChain(__root__=[Plain(rmsg)])) # 每日看雪逆向文章群推送 if (time.localtime().tm_hour == 22 and time.localtime().tm_min == 0): rmsg = get_kx_reverse_article() for group_n in group_list: group = await app.getGroup(group_n) await app.sendGroupMessage(group, MessageChain(__root__=[Plain(rmsg)])) ''' # 每日看雪区块链文章群推送 if(time.localtime().tm_hour == 12 and time.localtime().tm_min == 0): rmsg = get_kx_blockchain_article() for group_n in group_list: group = await app.getGroup(group_n) await app.sendGroupMessage(group, MessageChain(__root__=[Plain( rmsg )])) ''' # 每日看ctf赛事群推送 if (time.localtime().tm_hour == 20 and time.localtime().tm_min == 0): rmsg = get_ctf_comming_match() for group_n in group_list: group = await app.getGroup(group_n) await app.sendGroupMessage(group, MessageChain(__root__=[Plain(rmsg)])) # 每日好友推送 if (time.localtime().tm_hour == 7 and time.localtime().tm_min == 0): rmsg = '早安! 宝贝 \n' rmsg += daily_words[random.randint(0, len(daily_words) - 1)] friend_list = await app.friendList() for friend in friend_list: await app.sendFriendMessage(friend, MessageChain(__root__=[Plain(rmsg)])) # 每日好友推送 if (time.localtime().tm_hour == 23 and time.localtime().tm_min == 30): rmsg = '晚安!宝贝 \n' rmsg += daily_words[random.randint(0, len(daily_words) - 1)] friend_list = await app.friendList() for friend in friend_list: await app.sendFriendMessage(friend, MessageChain(__root__=[Plain(rmsg)]))
async def group_recall_event(event: GroupRecallEvent): rmsg = str(event.authorId) rmsg += ' 撤回消息啦!\n' rmsg += group_msg_database[str(event.group.id) + str(event.authorId)] await app.sendGroupMessage(event.group, MessageChain(__root__=[Plain(rmsg)]))
async def friend_message_listener(message: MessageChain, friend: Friend, app: GraiaMiraiApplication): print(str(friend.id) + " " + friend.nickname + " " + friend.remark) msg = message.asDisplay() rmsg = r0se_main(msg, friend=friend) await app.sendFriendMessage(friend, MessageChain(__root__=[Plain(rmsg)]))
async def friend_message_listener(app: GraiaMiraiApplication, friend: Friend): await app.sendFriendMessage( friend, MessageChain(__root__=[Plain("Hello, World!")]))