Merge pull request 'finalized the mute command' (#6) from updade/mute-command into master
Reviewed-on: #6
This commit is contained in:
@ -7,7 +7,7 @@
|
||||
|
||||
- [X] Команда /start
|
||||
- [ ] Команда /help
|
||||
- [ ] Команда /mute
|
||||
- [X] Команда /mute
|
||||
- [ ] Команда /unmute
|
||||
- [X] Команда /ban
|
||||
- [X] Команда /unban
|
||||
|
@ -39,14 +39,6 @@ def parse_mute_time(time_str: str) -> int:
|
||||
except:
|
||||
return None
|
||||
|
||||
# Число без указания единицы (по умолчанию минуты)
|
||||
elif time_str.isdigit():
|
||||
try:
|
||||
minutes = int(time_str)
|
||||
return abs(minutes) * 60
|
||||
except:
|
||||
return None
|
||||
|
||||
return None
|
||||
|
||||
# Возвращает причину мута
|
||||
@ -159,13 +151,19 @@ def register_handlers(bot: AsyncTeleBot): # Регистрирует все об
|
||||
|
||||
return
|
||||
|
||||
# Случай №1 - Команда используется в ответ на сообщение
|
||||
if len(parts_msg) >= 2:
|
||||
# Если одно слово, то удаляем сообщение. Ошибка
|
||||
if len(parts_msg) == 1:
|
||||
await asyncio.sleep(3)
|
||||
await bot.delete_message(message.chat.id, message.message_id)
|
||||
return
|
||||
|
||||
# Если мутят в теме
|
||||
# Если два слово, то ответом на сообщение
|
||||
elif len(parts_msg) == 2:
|
||||
|
||||
# Если это тема
|
||||
if message.is_topic_message:
|
||||
|
||||
# Если без ответа на сообщение
|
||||
# Если без ответа на сообщение, ошибка
|
||||
if message.message_thread_id == message.reply_to_message.message_id:
|
||||
await asyncio.sleep(3)
|
||||
await bot.delete_message(message.chat.id, message.message_id)
|
||||
@ -177,24 +175,27 @@ def register_handlers(bot: AsyncTeleBot): # Регистрирует все об
|
||||
time_arg = parts_msg[1]
|
||||
reason = extract_reason(parts_msg[2:])
|
||||
|
||||
# Если мутят в обычном чате
|
||||
# Если это обычный чат
|
||||
elif message.reply_to_message and message.is_topic_message is None:
|
||||
target_user = message.reply_to_message.from_user
|
||||
time_arg = parts_msg[1]
|
||||
reason = extract_reason(parts_msg[2:])
|
||||
|
||||
# Не выводим сообщение, что команда неправильная
|
||||
# Удаляем сообщение, если команда неправильная
|
||||
else:
|
||||
await asyncio.sleep(3)
|
||||
await bot.delete_message(message.chat.id, message.message_id)
|
||||
return
|
||||
|
||||
# Случай №2 - Команда через тег или ID
|
||||
elif len(parts_msg) >= 3:
|
||||
else:
|
||||
|
||||
# Если второе слово это тег или ID
|
||||
if parts_msg[1].strip().isdigit() or parts_msg[1].startswith('@'):
|
||||
|
||||
identifier = parts_msg[1].strip()
|
||||
time_arg = parts_msg[2]
|
||||
reason = extract_reason(parts_msg[3:])
|
||||
print(identifier)
|
||||
|
||||
# Поиск по ID
|
||||
if identifier.isdigit():
|
||||
@ -226,13 +227,34 @@ def register_handlers(bot: AsyncTeleBot): # Регистрирует все об
|
||||
is_bot=False
|
||||
)
|
||||
|
||||
# Если команда неправильная
|
||||
else:
|
||||
|
||||
# Если это тема
|
||||
if message.is_topic_message:
|
||||
|
||||
# Если без ответа на сообщение, ошибка
|
||||
if message.message_thread_id == message.reply_to_message.message_id:
|
||||
await asyncio.sleep(3)
|
||||
await bot.delete_message(message.chat.id, message.message_id)
|
||||
return
|
||||
|
||||
print(reason)
|
||||
# Если с ответом на сообщение
|
||||
else:
|
||||
target_user = message.reply_to_message.from_user
|
||||
time_arg = parts_msg[1]
|
||||
reason = extract_reason(parts_msg[2:])
|
||||
|
||||
# Если это обычный чат
|
||||
elif message.reply_to_message and message.is_topic_message is None:
|
||||
target_user = message.reply_to_message.from_user
|
||||
time_arg = parts_msg[1]
|
||||
reason = extract_reason(parts_msg[2:])
|
||||
|
||||
# Удаляем сообщение, если команда неправильная
|
||||
else:
|
||||
await asyncio.sleep(3)
|
||||
await bot.delete_message(message.chat.id, message.message_id)
|
||||
return
|
||||
|
||||
# Если пользователь не найден
|
||||
if not target_user:
|
||||
|
Reference in New Issue
Block a user