Задать вопрос
Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (5)

Лучшие ответы пользователя

Все ответы (13)
  • Может ли бот телеграма писать в чат между пользователями?

    @HXNDY
    Да, вот пример кода:

    import time
    user_ids = []
    for id in user_ids:
        try:
            bot.send_message(id, "привет")
            user_ids.remove(id)
        except:
            time.sleep(30)

    Но всё же рассылать сообщения пользователям - не хорошо, особенно в целях пиара
    Ответ написан
    4 комментария
  • Как сделать кнопку неактивной на 10 сек, после ее нажатия?

    @HXNDY
    import telebot
    from telebot import types
    import threading
    import time
    
    bot = telebot.TeleBot("token")
    
    clicked = False
    timeout = 10  # Секунд
    
    def run_in_thread(func):
        def wrapper(*args, **kwargs):
            thread = threading.Thread(target=func, args=args, kwargs=kwargs)
            thread.start()
        return wrapper
    
    
    @run_in_thread
    def asynchronous():
        global clicked
        while True:
            if clicked:
                time.sleep(timeout)
                clicked = False
    
    
    @bot.message_handler(commands=["start"])
    def start(message):
        markup = types.InlineKeyboardMarkup()
        hello_button = types.InlineKeyboardButton(text="Показать процессоры", callback_data="cpu")
        markup.add(hello_button)
        bot.send_message(message.chat.id, "Здравствуйте, %s!" % (f"[{message.from_user.first_name}](tg://user?id={message.from_user.id})"), parse_mode="markdown", reply_markup=markup)
    
    
    @bot.callback_query_handler(func=lambda call: True)
    def callback_worker(call):
        global clicked
        if clicked:
            bot.answer_callback_query(call.id, "Попробуйте снова через 10 секунд!", show_alert=True)
            return
        
        if call.data == "cpu":
            clicked = True
            bot.send_message(call.from_user.id, "Процессоры..")
    
    
    if __name__ == "__main__":
        asynchronous()
        bot.polling(none_stop=True, interval=0)


    в идеале конечно завести словарь формата ID: [True/False] и не использовать global
    Ответ написан
    2 комментария
  • Ошибка Response [404]> no json, что делать?

    @HXNDY
    проблема на вашей стороне (4хх), попробуйте проверить интернет соединение или убедитесь, что вы ввели правильный URL-адрес
    Ответ написан
    Комментировать
  • Как сделать так, чтобы бот отправлял фото, который я ему отправил?

    @HXNDY
    import telebot
    import config
    
    bot = telebot.TeleBot(
        token=config.token
    )
    
    @bot.message_handler(content_types=["photo"])
    def get_photo(message):
        bot.send_photo(message.from_user.id, message.photo[0].file_id, message.caption)
    
    
    if __name__ == "__main__":
        bot.infinity_polling()


    С помощью send_photo() мы можем отправлять фото. Требуется ввести айди чата, в моем случае это message.from_user.id и айди фото message.photo[0].file_id)

    Если к фото был приложен текст и нужно, чтобы бот тоже его приложил, то необходимо дописать message.caption
    Но можно и не писать!
    Ответ написан
    1 комментарий
  • Почему datetime отматывает время на 3 часа назад?

    @HXNDY
    если вы запускаете на сервере, то посмотрите в каком городе он стоит(к примеру если Екатеринбург, то время будет показывать МСК+2.

    Если вам нужно время определенного региона/города, то используйте datetime.timezone
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (2)