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]:
|
def proceed_queue_user(queue: Queue, user: User) -> Union[QueueUser, None]:
|
||||||
first_queue_user = get_first_queue_user(queue)
|
first_queue_user = get_first_queue_user(queue)
|
||||||
if user.id == first_queue_user.user_id:
|
if first_queue_user:
|
||||||
kick_first(queue)
|
if user.id == first_queue_user.user_id:
|
||||||
next_queue_user = get_first_queue_user(queue)
|
kick_first(queue)
|
||||||
return next_queue_user
|
next_queue_user = get_first_queue_user(queue)
|
||||||
|
return next_queue_user
|
||||||
return None
|
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:
|
def normalize_queue(queue: Queue) -> Queue:
|
||||||
# first_user = get_first_queue_user(queue)
|
# first_user = get_first_queue_user(queue)
|
||||||
# if first_user.position != 0:
|
# 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)):
|
for i, qu in enumerate(sorted(queue.users, key=lambda qu: qu.position)):
|
||||||
setattr(qu, "position", i)
|
setattr(qu, "position", i)
|
||||||
session.commit()
|
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
|
# Basic
|
||||||
@ -229,6 +232,15 @@ async def proceed_user_handler(call: types.CallbackQuery):
|
|||||||
reply_markup=keyboards.your_turn(queue.id),
|
reply_markup=keyboards.your_turn(queue.id),
|
||||||
parse_mode="html",
|
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(
|
await bot.edit_message_text(
|
||||||
chat_id=call.message.chat.id,
|
chat_id=call.message.chat.id,
|
||||||
message_id=call.message.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)
|
queue = Queue(owner_id=call.from_user.id)
|
||||||
session.add(queue)
|
session.add(queue)
|
||||||
session.commit()
|
session.commit()
|
||||||
await bot.answer_callback_query(
|
await bot.edit_message_text(
|
||||||
callback_query_id=call.id,
|
chat_id=call.message.chat.id,
|
||||||
|
message_id=call.message.id,
|
||||||
text=textbook.new_queue_created.format(id=queue.id),
|
text=textbook.new_queue_created.format(id=queue.id),
|
||||||
show_alert=True,
|
reply_markup=keyboards.to_menu_keyboard(),
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
await bot.answer_callback_query(
|
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):
|
async def start_queue_handler(call: types.CallbackQuery):
|
||||||
if queue := await get_queue_from_state_data(call):
|
if queue := await get_queue_from_state_data(call):
|
||||||
if first_queue_user := get_first_queue_user(queue):
|
if first_queue_user := get_first_queue_user(queue):
|
||||||
await bot.send_message(
|
try:
|
||||||
chat_id=first_queue_user.user_id,
|
await bot.send_message(
|
||||||
text=textbook.your_turn.format(name=queue.name),
|
chat_id=first_queue_user.user_id,
|
||||||
reply_markup=keyboards.your_turn(queue.id),
|
text=textbook.your_turn.format(name=queue.name),
|
||||||
parse_mode="html",
|
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:
|
else:
|
||||||
await bot.answer_callback_query(
|
await bot.answer_callback_query(
|
||||||
|
|||||||
@ -1,3 +1,10 @@
|
|||||||
|
<b>v0.1.8-beta</b>
|
||||||
|
- Исправлен баг, при котором после кика первого юзера очередь отображалась наоборот
|
||||||
|
- При создании очереди сразу генерится ссылка и создателю предлагается в нее вступить
|
||||||
|
- При невозможности отправить сообщение первому юзеру при старте очереди теперь создателю очереди придет уведомление
|
||||||
|
- По завершению очереди бот оповестит об этом создателя
|
||||||
|
- Попап при старте очереди
|
||||||
|
|
||||||
<b>v0.1.7-beta</b>
|
<b>v0.1.7-beta</b>
|
||||||
- Поправлен баг с киком первого вместо обновления списка
|
- Поправлен баг с киком первого вместо обновления списка
|
||||||
- Добавлены заглушки куда надо
|
- Добавлены заглушки куда надо
|
||||||
|
|||||||
@ -109,3 +109,11 @@ def your_turn(queue_id: str) -> keyboard:
|
|||||||
[button(text="Я закончил ⏩", callback_data=f"p:{queue_id}")],
|
[button(text="Я закончил ⏩", callback_data=f"p:{queue_id}")],
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def to_menu_keyboard() -> keyboard:
|
||||||
|
return keyboard(
|
||||||
|
keyboard=[
|
||||||
|
[button(text="⬅️ В меню", callback_data="to_menu")],
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|||||||
@ -1,9 +1,7 @@
|
|||||||
start = "Привет! Я помогу тебе вести очередность людей! Это бывает очень полезно для сдачи работ, к примеру, когда люди договариваются в разных чатах, а ближе к сдаче получается путаница. Ты можешь создавать очереди, отправлять ссылки на вступление, менять очередноcть, создавать очереди в групповых чатах и т.д.!"
|
start = "Привет! Я помогу тебе вести очередность людей! Это бывает очень полезно для сдачи работ, к примеру, когда люди договариваются в разных чатах, а ближе к сдаче получается путаница. Ты можешь создавать очереди, отправлять ссылки на вступление, менять очередноcть, создавать очереди в групповых чатах и т.д.!"
|
||||||
start_group = "Привет, я QUEUEBOT 2.0, помогаю создавать очереди в твоих групповых чатах!\n\nЧтобы пользоваться мной в этом чате, пользователь с правами админа должен настроить меня, комманда /settings, также не забудь выдать мне права администратора, чтобы я мог видеть список участников этой группы!"
|
start_group = "Привет, я QUEUEBOT 2.0, помогаю создавать очереди в твоих групповых чатах!\n\nЧтобы пользоваться мной в этом чате, пользователь с правами админа должен настроить меня, комманда /settings, также не забудь выдать мне права администратора, чтобы я мог видеть список участников этой группы!"
|
||||||
menu = "Привет, {name}! Ты в главном меню"
|
menu = "Привет, {name}! Ты в главном меню"
|
||||||
new_queue_created = (
|
new_queue_created = "Создана новая очередь! Вступить в нее и пригласить своих друзей ты можешь по ссылке:\nhttps://t.me/queue_senko_bot?start={id}\nИзменить настройки очереди и начать ее ты можешь в меню своих очередей."
|
||||||
"Создана новая очередь: {id}\n\nЗаходи в меню очередей и отправляй приглашения!"
|
|
||||||
)
|
|
||||||
queue_limit = "Ты достиг лимита очередей (4). Удали свои очереди, или воспользуйся другим аккаунтом!"
|
queue_limit = "Ты достиг лимита очередей (4). Удали свои очереди, или воспользуйся другим аккаунтом!"
|
||||||
my_queues_list = "У тебя {count} очередь/и/ей"
|
my_queues_list = "У тебя {count} очередь/и/ей"
|
||||||
queue_stats = "Название: <b>{name}</b>\nКоличество участников: <b>{count}</b>"
|
queue_stats = "Название: <b>{name}</b>\nКоличество участников: <b>{count}</b>"
|
||||||
@ -36,10 +34,12 @@ leaved_queue = "Ты вышел из очереди {name}"
|
|||||||
|
|
||||||
your_turn = "Наступил твой черед в одчереди <b>{name}</b>. Иди делай свои дела, а когда закончишь - нажми кнопку снизу ⤵️"
|
your_turn = "Наступил твой черед в одчереди <b>{name}</b>. Иди делай свои дела, а когда закончишь - нажми кнопку снизу ⤵️"
|
||||||
finished_turn = "Ты вышел из очереди {name}, удачи!"
|
finished_turn = "Ты вышел из очереди {name}, удачи!"
|
||||||
error_turn = "Внимание! Не удалось отправить сообщение следующему пользователю очереди {name}! По своему усмотрению ты можешь зайти и кикнуть его вручную"
|
error_turn = "Внимание! Наступила очередь пользователя <b>{name}</b>, но ему не удается отправить сообщение! По своему усмотрению ты можешь зайти и кикнуть его вручную"
|
||||||
|
queue_started = "Очередь {name} начата!"
|
||||||
|
queue_finished = "Очередь <b>{name}</b> подошла к концу!"
|
||||||
|
|
||||||
stats = "Количество пользователей: {users_count}\nКоличество очередей: {queues_count}"
|
stats = "Количество пользователей: {users_count}\nКоличество очередей: {queues_count}"
|
||||||
|
|
||||||
about = "Бот для очередей.\n\nРазработчик - ollyhearn.\nЯ всегда открыт для вопросов и предложений: @OllyHearn\n\nv0.1.7-beta"
|
about = "Бот для очередей.\n\nРазработчик - ollyhearn.\nЯ всегда открыт для вопросов и предложений: @OllyHearn\n\nv0.1.8-beta"
|
||||||
groups_plug = "Всем привет, я бот для очередей! В настоящее время идет активная разработка, так что я пока не могу полностью функционировать в группах, но вы всегда можете запустить меня в личном диалоге, создать очередь, и отправить ссылку на очередь сюда. Функционал будет доработан, а пока пользуйтесь мной в личке:\n\nhttps://t.me/queue_senko_bot"
|
groups_plug = "Всем привет, я бот для очередей! В настоящее время идет активная разработка, так что я пока не могу полностью функционировать в группах, но вы всегда можете запустить меня в личном диалоге, создать очередь, и отправить ссылку на очередь сюда. Функционал будет доработан, а пока пользуйтесь мной в личке:\n\nhttps://t.me/queue_senko_bot"
|
||||||
in_development_plug = "Функция в разработке ¯\_(ツ)_/¯"
|
in_development_plug = "Функция в разработке ¯\_(ツ)_/¯"
|
||||||
|
|||||||
Reference in New Issue
Block a user