0.1.8-beta
This commit is contained in:
@ -104,24 +104,14 @@ def kick_first(queue: Queue) -> bool:
|
||||
|
||||
def proceed_queue_user(queue: Queue, user: User) -> Union[QueueUser, None]:
|
||||
first_queue_user = get_first_queue_user(queue)
|
||||
if user.id == first_queue_user.user_id:
|
||||
kick_first(queue)
|
||||
next_queue_user = get_first_queue_user(queue)
|
||||
return next_queue_user
|
||||
if first_queue_user:
|
||||
if user.id == first_queue_user.user_id:
|
||||
kick_first(queue)
|
||||
next_queue_user = get_first_queue_user(queue)
|
||||
return next_queue_user
|
||||
return None
|
||||
|
||||
|
||||
async def update_queue_users_message(msg: Message, queue: Queue):
|
||||
users_str = "\n".join([f"{qu.position}. {qu.user.name}" for qu in queue.users])
|
||||
await bot.edit_message_text(
|
||||
chat_id=msg.chat.id,
|
||||
message_id=msg.id,
|
||||
text=textbook.queue_users_list.format(name=queue.name, users_str=users_str),
|
||||
reply_markup=keyboards.queue_users(queue.id),
|
||||
parse_mode="html",
|
||||
)
|
||||
|
||||
|
||||
def normalize_queue(queue: Queue) -> Queue:
|
||||
# first_user = get_first_queue_user(queue)
|
||||
# if first_user.position != 0:
|
||||
@ -131,6 +121,19 @@ def normalize_queue(queue: Queue) -> Queue:
|
||||
for i, qu in enumerate(sorted(queue.users, key=lambda qu: qu.position)):
|
||||
setattr(qu, "position", i)
|
||||
session.commit()
|
||||
return queue
|
||||
|
||||
|
||||
async def update_queue_users_message(msg: Message, queue: Queue):
|
||||
queue = normalize_queue(queue)
|
||||
users_str = "\n".join([f"{qu.position}. {qu.user.name}" for qu in queue.users])
|
||||
await bot.edit_message_text(
|
||||
chat_id=msg.chat.id,
|
||||
message_id=msg.id,
|
||||
text=textbook.queue_users_list.format(name=queue.name, users_str=users_str),
|
||||
reply_markup=keyboards.queue_users(queue.id),
|
||||
parse_mode="html",
|
||||
)
|
||||
|
||||
|
||||
# Basic
|
||||
@ -229,6 +232,15 @@ async def proceed_user_handler(call: types.CallbackQuery):
|
||||
reply_markup=keyboards.your_turn(queue.id),
|
||||
parse_mode="html",
|
||||
)
|
||||
else:
|
||||
try:
|
||||
await bot.send_message(
|
||||
chat_id=queue.owner.id,
|
||||
text=textbook.queue_finished.format(name=queue.name),
|
||||
parse_mode="html",
|
||||
)
|
||||
except:
|
||||
pass
|
||||
await bot.edit_message_text(
|
||||
chat_id=call.message.chat.id,
|
||||
message_id=call.message.id,
|
||||
@ -249,10 +261,11 @@ async def new_queue_handler(call: types.CallbackQuery):
|
||||
queue = Queue(owner_id=call.from_user.id)
|
||||
session.add(queue)
|
||||
session.commit()
|
||||
await bot.answer_callback_query(
|
||||
callback_query_id=call.id,
|
||||
await bot.edit_message_text(
|
||||
chat_id=call.message.chat.id,
|
||||
message_id=call.message.id,
|
||||
text=textbook.new_queue_created.format(id=queue.id),
|
||||
show_alert=True,
|
||||
reply_markup=keyboards.to_menu_keyboard(),
|
||||
)
|
||||
else:
|
||||
await bot.answer_callback_query(
|
||||
@ -440,11 +453,23 @@ async def queue_settings_handler(call: types.CallbackQuery):
|
||||
async def start_queue_handler(call: types.CallbackQuery):
|
||||
if queue := await get_queue_from_state_data(call):
|
||||
if first_queue_user := get_first_queue_user(queue):
|
||||
await bot.send_message(
|
||||
chat_id=first_queue_user.user_id,
|
||||
text=textbook.your_turn.format(name=queue.name),
|
||||
reply_markup=keyboards.your_turn(queue.id),
|
||||
parse_mode="html",
|
||||
try:
|
||||
await bot.send_message(
|
||||
chat_id=first_queue_user.user_id,
|
||||
text=textbook.your_turn.format(name=queue.name),
|
||||
reply_markup=keyboards.your_turn(queue.id),
|
||||
parse_mode="html",
|
||||
)
|
||||
except:
|
||||
await bot.send_message(
|
||||
chat_id=queue.owner_id,
|
||||
text=textbook.error_turn.format(name=first_queue_user.user.name),
|
||||
parse_mode="html",
|
||||
)
|
||||
await bot.answer_callback_query(
|
||||
callback_query_id=call.id,
|
||||
text=textbook.queue_started.format(name=queue.name),
|
||||
show_alert=True,
|
||||
)
|
||||
else:
|
||||
await bot.answer_callback_query(
|
||||
|
||||
Reference in New Issue
Block a user