async def description_guess_group_ranking(bot: KokkoroBot, ev: EventInterface): members = ev.get_members_in_group() card_winningcount_dict = {} winning_counter = WinningCounter(DB_PATH) for member in members: if member.get_id() != ev.get_author_id(): card_winningcount_dict[ member.get_nick_name()] = winning_counter._get_winning_number( ev.get_group_id(), member.get_id()) group_ranking = sorted(card_winningcount_dict.items(), key=lambda x: x[1], reverse=True) msg = '猜头像小游戏此群排行为:\n' for i in range(min(len(group_ranking), 10)): if group_ranking[i][1] != 0: msg += f'第{i+1}名: {group_ranking[i][0]}, 猜对次数: {group_ranking[i][1]}次\n' await bot.kkr_send(ev, msg.strip())
async def batch_add_member(bot: KokkoroBot, ev: EventInterface, args: ParseResult): bm = BattleMaster(ev.get_group_id()) clan = _check_clan(bm) _check_admin(ev) mlist = ev.get_members_in_group() if len(mlist) > 50: raise ClanBattleError('群员过多!一键入会仅限50人以内群使用') self_id = config.BOT_ID succ, fail = 0, 0 for m in mlist: if m.get_id() != self_id: try: bm.add_member(m.get_id(), m.get_nick_name() or m.get_name() or m.get_id()) succ += 1 except DatabaseError: fail += 1 msg = f'批量注册完成!成功{succ}/失败{fail}\n使用【{USAGE_LIST_MEMBER}】查看当前成员列表' await bot.kkr_send(ev, msg, at_sender=True)