def main(): """Start bot""" token = ParseConfig.get_token() port = int(os.environ.get('PORT', '5000')) updater = Updater(token) dpt = updater.dispatcher reg_conv_handler = ConversationHandler( entry_points=[CommandHandler('start', start)], states={ PHONE: [MessageHandler(Filters.contact, phone)], ROOM: [MessageHandler(Filters.text, room)] }, fallbacks=[CommandHandler('start', start)]) main_conv_handler = ConversationHandler( entry_points=[CommandHandler('main', main_menu)], states={ MAIN_MENU: [MessageHandler(Filters.text, main_menu_handler)], UPDATE_ROOM: [MessageHandler(Filters.text, main_menu_update_room)], COMPLAINT: [MessageHandler(Filters.text, add_complaint)], CHANGE_STATUS: [MessageHandler(Filters.text, change_room_status)] }, fallbacks=[CommandHandler('main', main_menu)]) dpt.add_handler(reg_conv_handler) dpt.add_handler(main_conv_handler) dpt.add_handler(CommandHandler('help', help)) dpt.add_error_handler(error) env = ParseConfig.get_env() if env == 'prod': LOGGER.info('------Production environment------') updater.start_webhook(listen="0.0.0.0", port=port, url_path=token) updater.bot.set_webhook('https://' + ParseConfig.get_url() + '.herokuapp.com/' + token) elif env == 'dev': LOGGER.info('------Development environment------') updater.start_polling() else: LOGGER.info('------Unkonwn environment------') updater.idle()