diff --git a/bot/app/bot.py b/bot/app/bot.py index 4a83cf8..713b025 100644 --- a/bot/app/bot.py +++ b/bot/app/bot.py @@ -108,12 +108,35 @@ async def start(msg: Message): await bot.send_message(chat_id=msg.chat.id, text=textbook.start_group) +# @bot.message_handler(commands=["setup_list"]) +# async def setup_list(msg: Message): +# if msg.chat.type in ("group", "supergroup"): +# group = get_group(msg.chat) +# members = group.group_members +# await bot.send_message( +# chat_id=msg.chat.id, +# text=textbook.setup_list.format( +# count=members.count(), +# members=", ".join(m.user.name for m in members.all()), +# ), +# parse_mode="html", +# ) + + +def get_setup_text(group): + members = group.group_members + return textbook.setup + textbook.setup_list.format(count=members.count(), members=", ".join('{m.user.name}\n' for m in members.all())) + + @bot.message_handler(commands=["setup"]) async def setup(msg: Message): - get_group(msg.chat) + group = get_group(msg.chat) if msg.chat.type in ("group", "supergroup"): + members = group.group_members await bot.send_message( - chat_id=msg.chat.id, text=textbook.setup, reply_markup=keyboards.setup() + chat_id=msg.chat.id, + text=get_setup_text(group), + reply_markup=keyboards.setup() ) @@ -121,6 +144,7 @@ async def setup(msg: Message): async def register_group_member(call: types.CallbackQuery): new = False get_user(call.from_user) + group = get_group(msg.chat) if ( group_member := session.query(GroupMember) .filter( @@ -138,6 +162,12 @@ async def register_group_member(call: types.CallbackQuery): session.add(group_member) new = True session.commit() + await bot.edit_message_text( + chat_id=msg.chat.id, + text=get_setup_text(group), + reply_markup=keyboards.setup(), + message_id=msg.id, + ) await bot.answer_callback_query( callback_query_id=call.id, text=textbook.user_parted if new else textbook.user_left, @@ -515,21 +545,6 @@ async def dmremind(msg: Message): ) -@bot.message_handler(commands=["setup_list"]) -async def setup_list(msg: Message): - if msg.chat.type in ("group", "supergroup"): - group = get_group(msg.chat) - members = group.group_members - await bot.send_message( - chat_id=msg.chat.id, - text=textbook.setup_list.format( - count=members.count(), - members=", ".join(m.user.name for m in members.all()), - ), - parse_mode="html", - ) - - @bot.message_handler(commands=["mystate"]) async def mystate(msg: Message): state = await bot.get_state(user_id=msg.from_user.id)