Top.Mail.Ru
Ответы
Аватар пользователя
1нед
Изменено
Аватар пользователя
Аватар пользователя
Программирование
+1

Python тг бот Исправьте код пожалуйста

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
import telebot
import time

bot = telebot.TeleBot('8023659916:AAEzvskYagUQPfCG21YY8b_ip8t-h-J0t1U')

stats = {}

admins = ['1672940136', '5625774826']

@bot.message_handler(commands=['Бот'])
def start(message):
    bot.reply_to(message, "✅На месте.")

@bot.message_handler(commands=['Команды'])
def start(message):
    bot.reply_to(message, "1) /Кик - исключает из чата пользователя - Для использование нужны Админ права \n"
                          "2) /Мут - мутит пользователя на определенный срок - Для использование нужны Админ права \n"
                          "3) /Размут - снимает мут с пользователя - Для использование нужны Админ права")


@bot.message_handler(commands=['Мут'])
def mute_user(message):
    if message.from_user.id in admins:
        if message.reply_to_message:
            chat_id = message.chat.id
            user_id = message.reply_to_message.from_user.id
            user_status = bot.get_chat_member(chat_id, user_id).status
            if user_status == 'administrator' or user_status == 'creator':
                bot.reply_to(message, "💔 Замутить модератора нельзя брат.")
            else:
                duration = 3 # Значение по умолчанию - 1 минута
                args = message.text.split()[1:]
                if args:
                    try:
                        duration = int(args[0])
                    except ValueError:
                        bot.reply_to(message, "*Неправильный формат времени*", parse_mode= 'Markdown')
                        return
                    if duration < 1:
                        bot.reply_to(message, "Время должно быть положительным числом.", parse_mode= 'Markdown')
                        return
                    if duration > 24:
                        bot.reply_to(message, "Максимальное время - 1 день.")
                        return
                bot.restrict_chat_member(chat_id, user_id, until_date=time.time()+duration*3600)
                bot.reply_to(message, f"🫡 Пользователь _@{message.reply_to_message.from_user.username}_ замучен на *{duration} часа(-ов)*.\n\n_По вопросам мута обращайтесь к одному из модераторов_", parse_mode= 'Markdown')
        else:
            bot.reply_to(message, "🫥 Эта команда работает только в ответ на сообщение.")
    else:
        bot.reply_to(message, "🫥 *Ты не являешься модератором.*", parse_mode='Markdown')

@bot.message_handler(commands=['Размут'])
def unmute_user(message):
    if message.from_user.id in admins:
        if message.reply_to_message:
            chat_id = message.chat.id
            user_id = message.reply_to_message.from_user.id
            bot.restrict_chat_member(chat_id, user_id, can_send_messages=True, can_send_media_messages=True, can_send_other_messages=True, can_add_web_page_previews=True)
            bot.reply_to(message, f"Пользователь _@{message.reply_to_message.from_user.username}_ *размучен.*", parse_mode= 'Markdown')
        else:
            bot.reply_to(message, "🫥 Эта команда должна быть использована в ответ на сообщение пользователя, которого вы хотите размутить.")
    else:
        bot.reply_to(message,"🫥 *Ты не являешься модератором.*", parse_mode='Markdown')


@bot.message_handler(commands=['Кик'])
def kick_user(message):
    if str(message.from_user.id) in admins:
        if message.reply_to_message:
            chat_id = message.chat.id
            user_id = message.reply_to_message.from_user.id
            user_status = bot.get_chat_member(chat_id, user_id).status
            if user_status == 'administrator' or user_status == 'creator':
                bot.reply_to(message, "💔 Невозможно кикнуть администратора.")
            else:
                bot.kick_chat_member(chat_id, user_id)
                bot.reply_to(message, f"🔒 *Пользователь* @{message.reply_to_message.from_user.username} _был послан_", parse_mode= 'Markdown')
        else:
            bot.reply_to(message, "Эта команда должна быть использована в ответ на сообщение пользователя, которого вы хотите послать")
    else:
     bot.reply_to(message,"🫥 *Ты не являешься модератором.*", parse_mode='Markdown')

bot.infinity_polling(none_stop=True)



ПАЦАНЫ СДЕЛАЛ ПРОВЕРКУ ЧТОБЫ ТОЛЬКО АДМИНЫ ИЗ СПИСКА МОГЛИ ИСПОЛЬЗОВАТЬ ДАННЫЕ КОМАНДЫ НУ ПРИ ИСПОЛЬЗОВАНИЕ ВСЕ РАВНО ПИШЕТ ЧТО ВЫ НЕ МОДЕРАТОР ХОТЬ УКАЗАЛ СВОЙ ID

при использование команды ошибка

raceback (most recent call last):

File "C:\Users\User\PycharmProjects\PythonProject3\.venv\Lib\site-packages\telebot\__init__.py", line 1235, in __threaded_polling

self.worker_pool.raise_exceptions()

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^

File "C:\Users\User\PycharmProjects\PythonProject3\.venv\Lib\site-packages\telebot\util.py", line 150, in raise_exceptions

raise self.exception_info

File "C:\Users\User\PycharmProjects\PythonProject3\.venv\Lib\site-packages\telebot\util.py", line 93, in run

task(*args, **kwargs)

~~~~^^^^^^^^^^^^^^^^^

File "C:\Users\User\PycharmProjects\PythonProject3\.venv\Lib\site-packages\telebot\__init__.py", line 9759, in runmiddlewares_and_handler

result = handler['function'](message)

File "C:\Users\User\PycharmProjects\PythonProject3\BlackChathelper.py", line 46, in mute_user

bot.reply_to(message, f"🫡 Пользователь @{message.replyto_message.from_user.username}_ замучен на {duration} часа(-ов).\n\n_По вопросам мута обращайтесь к одному из модераторов_", parse_mode= 'Markdown')

~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "C:\Users\User\PycharmProjects\PythonProject3\.venv\Lib\site-packages\telebot\__init__.py", line 5972, in reply_to

return self.send_message(message.chat.id, text, reply_parameters=reply_parameters, **kwargs)

~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "C:\Users\User\PycharmProjects\PythonProject3\.venv\Lib\site-packages\telebot\__init__.py", line 1800, in send_message

apihelper.send_message(

~~~~~~~~~~~~~~~~~~~~~~^

self.token, chat_id, text,

^^^^^^^^^^^^^^^^^^^^^^^^^^

...<2 lines>...

reply_parameters=reply_parameters, link_preview_options=link_preview_options, business_connection_id=business_connection_id,

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

message_effect_id=message_effect_id, allow_paid_broadcast=allow_paid_broadcast))

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "C:\Users\User\PycharmProjects\PythonProject3\.venv\Lib\site-packages\telebot\apihelper.py", line 275, in send_message

return makerequest(token, method_url, params=payload, method='post')

File "C:\Users\User\PycharmProjects\PythonProject3\.venv\Lib\site-packages\telebot\apihelper.py", line 168, in makerequest

json_result = checkresult(method_name, result)

File "C:\Users\User\PycharmProjects\PythonProject3\.venv\Lib\site-packages\telebot\apihelper.py", line 195, in checkresult

raise ApiTelegramException(method_name, result, result_json)

telebot.apihelper.ApiTelegramException: A request to the Telegram API was unsuccessful. Error code: 400. Description: Bad Request: can't parse entities: Can't find end of the entity starting at byte offset 186

По дате
По рейтингу
Аватар пользователя
Знаток

А вы знали, что можете просто заказать создание чат-бота для своих целей? Такая услуга предоставляется этой фирмой, сделают качественного бота, работать будет как нужно и выполнять любые команды

Аватар пользователя
Оракул
1нед

У вас ошибка не в этом коде! В том и проблема