I have this working code:
from telegram import Update
from telegram.ext import Updater, CommandHandler, CallbackContext
updater = Updater('token')
def hello(update: Update, context: CallbackContext) -> None:
update.message.reply_text('Hello!')
updater.dispatcher.add_handler(CommandHandler('hello', hello))
updater.start_polling()
updater.idle()
I wish to have a separate file for each function and have a main.py where I import them.
So I head to create a f1.py with just this:
def hello(update: Update, context: CallbackContext) -> None:
update.message.reply_text('Hello!')
Then import it into a main.py with
from f1 import hello
hello()
Obviously, this is not working (missing arguments). How do I do it correctly?
Your main.py
and f1.py
are fine, but on updater.dispatcher
of your main.py
something is missing. Try this:
from telegram import Update
from telegram.ext import Updater, CommandHandler, CallbackContext
#On my bots I preffer to import the entire module than a function from a module,
#because I usually have users.py (all functions for users), clients.py (all
#functions for clients), devs.py (all functions for developer's team) and so on
import f1
updater = Updater('token')
#Calling a function from a module must have a callback, as shown bellow
updater.dispatcher.add_handler(CommandHandler('hello', callback = f1.hello))
updater.start_polling()
updater.idle()
Try this and let me know if it worked for you!
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments