import telebot
import time
import re
from threading import Thread
BOT_TOKEN = 'YOUR_BOT_TOKEN' # Замените на ваш токен бота
bot = telebot.TeleBot(BOT_TOKEN)
MUTED_USERS = {}
def unmute_user(user_id):
time.sleep(MUTED_USERS[user_id] - time.time())
del MUTED_USERS[user_id]
def mute_user(message, user_id, duration_str):
try:
# Обновленное регулярное выражение
duration_parts = re.match(r"(\d+)\s*(минут(?:а|ы)?|час(?:ов|а)?|дней)", duration_str.lower())
if not duration_parts:
raise ValueError("Неверный формат времени.")
duration_value = int(duration_parts.group(1))
duration_unit = duration_parts.group(2).lower()
# Преобразование единиц времени в секунды
if "минут" in duration_unit:
duration_seconds = duration_value * 60
elif "час" in duration_unit:
duration_seconds = duration_value * 60 * 60
elif "дней" in duration_unit:
duration_seconds = duration_value * 60 * 60 * 24
else:
raise ValueError("Неверная единица времени.")
unmute_time = time.time() + duration_seconds
MUTED_USERS[user_id] = unmute_time
# Запуск потока для автоматического размутирования
Thread(target=unmute_user, args=(user_id,)).start()
try:
replied_user = message.reply_to_message.from_user
username = replied_user.username
if not username:
raise ValueError("Username не найден для отвеченного пользователя.")
bot.reply_to(message, f"Пользователь @{username} замучен на {duration_value} {duration_unit}.")
except AttributeError:
bot.reply_to(message, "Ошибка: Не удалось определить пользователя для мута. Убедитесь, что вы отвечаете на сообщение.")
except ValueError as e:
bot.reply_to(message, f"Ошибка: {e}")
except telebot.apihelper.ApiException as e:
bot.reply_to(message, f"Ошибка Telegram API: {e.description}")
except Exception as e:
bot.reply_to(message, "Произошла неизвестная ошибка при отправке сообщения.")
except ValueError as e:
bot.reply_to(message, f"Ошибка: {e}")
except Exception as e:
bot.reply_to(message, "Произошла неизвестная ошибка.")
@bot.message_handler(func=lambda message: True)
def handle_message(message):
if message.reply_to_message and message.text.lower().startswith("мут"):
try:
duration_str = message.text.lower().replace("мут", "").strip()
mute_user(message, message.reply_to_message.from_user.id, duration_str)
except Exception as e:
bot.reply_to(message, f"Ошибка: {e}")
@bot.message_handler(content_types=['text'])
def handle_muted_message(message):
if message.from_user.id in MUTED_USERS and time.time() < MUTED_USERS[message.from_user.id]:
try:
bot.delete_message(message.chat.id, message.message_id)
bot.reply_to(message, "Ты замучен!")
except telebot.apihelper.ApiException as e:
print(f"Ошибка при удалении сообщения: {e}")
bot.infinity_polling()
import telebot
import time
import re
BOT_TOKEN = 'YOUR_BOT_TOKEN' # Replace with your bot token
bot = telebot.TeleBot(BOT_TOKEN)
MUTED_USERS = {}
def mute_user(message, user_id, duration_str):
try:
# ... (Эта часть кода остается без изменений) ...
try:
replied_user = message.reply_to_message.from_user
username = replied_user.username
if not username:
raise ValueError("Username not found for the replied user.")
bot.reply_to(message, f"Пользователь @{username} замучен на {duration_value} {duration_unit}.")
except AttributeError:
bot.reply_to(message, "Ошибка: Не удалось определить пользователя для мута. Убедитесь, что вы отвечаете на сообщение.")
except ValueError as e:
bot.reply_to(message, f"Ошибка: {e}")
except telebot.apihelper.ApiException as e:
bot.reply_to(message, f"Ошибка Telegram API: {e.description}")
except Exception as e:
bot.reply_to(message, f"Произошла неизвестная ошибка при отправке сообщения: {e}")
except ValueError as e:
bot.reply_to(message, f"Ошибка: {e}")
except Exception as e:
bot.reply_to(message, f"Произошла неизвестная ошибка: {e}")
@bot.message_handler(func=lambda message: True)
def handle_message(message):
if message.reply_to_message and message.text.lower().startswith("мут"):
try:
duration_str = message.text.lower().replace("мут", "").strip()
mute_user(message, message.reply_to_message.from_user.id, duration_str)
except Exception as e:
bot.reply_to(message, f"Ошибка: {e}")
@bot.message_handler(content_types=['text'])
def handle_muted_message(message):
if message.from_user.id in MUTED_USERS and time.time() < MUTED_USERS[message.from_user.id]:
try:
chat_member = bot.get_chat_member(message.chat.id, bot.get_me().id)
if chat_member.can_delete_messages:
bot.delete_message(message.chat.id, message.message_id)
bot.reply_to(message, "Ты замучен!")
else:
bot.reply_to(message, "Ты замучен! У меня нет прав на удаление сообщений в этом чате.")
except telebot.apihelper.ApiException as e:
bot.reply_to(message, f"Ошибка Telegram API: {e.description}")
except Exception as e:
bot.reply_to(message, f"Произошла неизвестная ошибка: {e}")
bot.infinity_polling()
когда пишу мут в журнале пишеться это после этого ничего не происходит