Beispiel #1
0
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)