Esempio n. 1
0
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()