Ответы пользователя по тегу Telegram
  • Telebot python как сделать функцию input?

    donko1
    @donko1
    Изучаю python
    @bot.message_handler(content_types=['text'])
    def func1(message):
     bot.send_message(message.from_user.id, 'Введите текст')
     bot.register_next_step_handler(message, func2)
    
    def func2(message):
     var = message.text # Текст сообщения от пользователя
     bot.send_message(message.from_user.id, var) # Вернет сообщение пользователя обартно
    Ответ написан
    Комментировать
  • Как задать Индивидуальные переменные для каждого пользователя в боте?

    donko1
    @donko1
    Изучаю python
    Открываешь бд и там создаешь. Самый простой - sqlite3. Стыдно говорить, но сначала я просто использовал .txt файлы. Если не умейте работать с бд, Можете попробовать мой метод и вы! Вот шаблон
    with open(f'DataBase\\{message.from_user.id}') as f:
     f.write('some_text')
    Ответ написан
    Комментировать
  • Как добавить реакции к сообщению telegram pthon?

    donko1
    @donko1
    Изучаю python
    На данный момент это невозможно.
    Ответ написан
    Комментировать
  • Бот не реагирует на команду, как исправить?

    donko1
    @donko1
    Изучаю python
    Вы не вызывайте функцию. Попробуйте это:
    import telebot
    from telebot import types
    import time
    import random
    from random import randint
    from datetime import datetime, date
    bot = telebot.TeleBot('TOKEN')
    x = ""
    @bot.message_handler(content_types=['text'])
    def get_text_messages(message):
        if message.text == "/otchim@OtchimimBot":
        	otchim()
        if message.text == "/start@OtchimimBot":
        	bot.reply_to(message, "Привет! Я отчим бот\nМоя суть заключается именно в развлекательных целях\nпропиши команду /otchim@OtchimimBot\n что бы рандомно выбить число от 0 до 15\nэто число обозначает количество ваших отчимов!")
    def otchim():
      global counter
      counter == 0
      while 1:
          x = random.randint(0, 15)
          counter = counter + x
          bot.send_message(from_user.id,"Тебе выпало " + x + " теперь у тебя " + counter + " отчимов")
          time.sleep(86400)
          
    
    bot.remove_webhook()
    if __name__ == "__main__":
        bot.polling(none_stop=True)
    Ответ написан
    Комментировать
  • Деление сообщения на части?

    donko1
    @donko1
    Изучаю python
    Так через ваши умения и выполните
    Например, пользователь отправил /change_nick old_nick new_nick
    def some_name(message):
     words = message.text.split()
     words.remove('/change_nick')
     # Соединяемся с базой но для простоты примера давайте представим что сохраняли это в словарик
     if nick_names[message.from_user.id] == words[0]:
      nick_names[message.from_user.id] = words[-1] # nick_names - хэш-таблица в которую мы сохраняли никнеймы в формате {id пользователя:его ник}
    Ответ написан
    Комментировать
  • Как вытащить значение из сообщения telebot?

    donko1
    @donko1
    Изучаю python
    Я делаю так
    for i, word in enumerate(message.text.lower().split()):
     if word in ['создать', 'сделать']:
      some_make_func(message.text.split()[i+1])
     elif word in ['удалить', 'закончить']:
      some_delete_func(message.text.split()[i+1])

    Здесь мы разбиваем сообщение на слова и проверяем на нахождение в списке. Если он там, то выполняем функцию
    Можно еще использовать fuzz, но об этом вы узнайте потом
    Ответ написан
    Комментировать
  • Не работает телеграм бот на Python?

    donko1
    @donko1
    Изучаю python
    Код ошибки пришлите пожалуйста
    Ответ написан
    7 комментариев
  • NameError: name 'message' is not defined как решить?

    donko1
    @donko1
    Изучаю python
    Попробуй так, но если не поможет-то в какой строчке ошибка?
    import os
    import telebot  
    import config
    from telebot import types
    
    if os.name == "nt":
      os.system("cls")
    else:
      os.system("clear")
    
    bot = telebot.TeleBot(config.TOKEN)
    
    
    @bot.message_handler(commands=['start'])
    def start(message):
    
      sub = telebot.types.InlineKeyboardMarkup()
    
      sub.add(telebot.types.InlineKeyboardButton("Подписаться - 1", callback_data="Sub1", url=config.URL_CHANNEL))
      sub.add(telebot.types.InlineKeyboardButton("Проверить", callback_data="check_sub"))
    
      bot.send_message(message.chat.id, text="Приветствую тебя <b>{0.first_name}</b>!\nПеред началом нужно подписаться на канал что-бы получить доступ!".format(message.from_user, bot.get_me()), reply_markup=sub ,
      		parse_mode="html")
    
    @bot.callback_query_handler(func=lambda call: True)
    def check(call):
      if call.data == "check_sub":
        
          status = ['creator', 'administrator', 'member']
          
          for i in status:
            if i == bot.get_chat_member(chat_id=config.ID_CHANNEL, user_id=message.from_user.id).status:
              chat_id = call.message.chat.id
              bot.send_message(chat_id, "Проверка прошла успешно")
              break
    
      else:
        chat_id = call.message.chat.id
        bot.send_message(chat_id, text = "Проверка не пройдена")
    
    bot.polling(none_stop=True)
    Ответ написан
    Комментировать
  • Как опубликовать 10 фото, от имени бота?

    donko1
    @donko1
    Изучаю python
    В начале импортировать InputMediaPhotofrom telebot.types import InputMediaPhoto
    Примерно так
    with open('files/1.jpg', 'rb') as f1, open('files/2.jpg', 'rb') as f2:
                bot.send_media_group(chat.id, [InputMediaPhoto(f1),InputMediaPhoto(f2)])
    Ответ написан
  • Как исправить ошибку pyTelegramBotApi?

    donko1
    @donko1
    Изучаю python
    Сначала выполните импорт sleep from time import sleep
    Далее сделайте bot.polling в цикл
    while True:
        try:
            bot.polling(none_stop=True)
        except Exception as _ex:
            print(_ex)
            sleep(15)

    Теперь он будет просто выводит эту ошибку
    Ответ написан
    2 комментария