skip to Main Content

I’m developing a telegram bot. I do this on my code and the question is, why my bot repeat the same first phrase when I put the second command?

TOKEN_BOT = "secret token"
bot = telebot.TeleBot(TOKEN_BOT)

@bot.message_handler(commands=["hello", "start"])
def send(message):
    bot.reply_to(message, "Welcome, I am RIOPy! BOT designed to organize your SME to your liking. To start write / start and we will get to work.")

bot.polling()

def enviar_start (message):
    bot.reply_to(message, "Great! wait 5 seconds.")

#HERE DATABASE CODE

time.sleep(5)
bot.reply_to, "DATABASE CREATED"

bot.polling()

PS: The code is working now. I deleted bot.pulling() under the if, and i put the /hello and /start commands in 2 differents lines.

@bot.message_handler(commands=["hello"])
def send(message):
    bot.reply_to(message, "Welcome, I am RIOPy! BOT designed to organize your SME to your liking. To start write / start and we will get to work.")

@bot.message_handler(commands=["start"])
def enviar_start (message):
    bot.reply_to(message, "Great! wait 5 seconds.")

2

Answers


  1. The first thing your bot says when you send the /start command is also the first thing it says when you send the /hello command, because your bot’s message handler for the /hello command is also the message handler for the /start command. To fix this, you need to create two separate message handlers, one for the /hello command and one for the /start command.

    Login or Signup to reply.
  2. I think the following lines of code are not needed, you can delete them

    if message == "start":
        enviar_start(message)```
    
    The edited code should work.
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search