コード例 #1
0
def run():
    # create tables
    db = DB()
    db.create_tables()
    data = None

    # loop
    while True:

        # display menu
        Menu.display(Menu.menu_options)

        # get user input
        selection = Menu.get_user_input(Menu.menu_options)

        if selection == 1:
            # returns a tuple with  ( name, country, number of catches )
            data = Dialogs.show_create()

            db.insert(data)

        if selection == 2:
            Menu.display(Menu.find_options)

            # get user input
            selection = Menu.get_user_input(Menu.find_options)
            if selection == 1:

                name = Dialogs.get_string_input('Enter name\n')

                data = db.find_by_name(name)

            elif selection == 2:

                country = Dialogs.get_string_input('Enter country\n')

                data = db.find_by_country(country)

            elif selection == 3:

                catches = Dialogs.get_int_input('Enter number of catches\n')

                data = db.find_by_catches(str(catches))

            else:

                data = db.get_all()

            Menu.print_results(data)

        # update a record
        if selection == 3:

            data = db.get_all()

            Menu.print_results_with_id(data)

            new_data = Dialogs.show_update()

            db.update_prepare(new_data)

        # delete a record
        if selection == 4:

            data = db.get_all()

            Menu.print_results_with_id(data)

            id_to_delete = Dialogs.show_delete()

            db.delete_prepare(id_to_delete)

            data = db.get_all()

            Menu.print_results_with_id(data)
        # exit program
        if selection == 5:
            db.close_connection()
            exit()
コード例 #2
0
ファイル: regetbot.py プロジェクト: elmsec/regetbot
def main():
    # Create the database and its necessary tables at startup
    DB.connect()
    DB.create_tables([User])

    # Create the Updater and pass it your bot's token.
    updater = Updater(os.getenv('BOT_TOKEN'))

    # Get the dispatcher to register handlers
    dp = updater.dispatcher

    def stop_and_restart():
        updater.stop()
        os.execl(sys.executable, sys.executable, *sys.argv)

    @restricted
    def restart(bot, update):
        update.message.reply_text('Bot is restarting...')
        Thread(target=stop_and_restart).start()

    dp.add_handler(CommandHandler('start', start, pass_args=True))
    dp.add_handler(CommandHandler('help', help_me))
    dp.add_handler(CommandHandler('issues', issues_comm))
    dp.add_handler(CommandHandler('tips', tips))

    dp.add_handler(
        CommandHandler('settings', get_settings, pass_user_data=True))

    dp.add_handler(
        MessageHandler(Filters.text,
                       text_messages,
                       pass_job_queue=True,
                       pass_user_data=True))

    dp.add_handler(
        CallbackQueryHandler(search_callback,
                             pattern='^search:',
                             pass_user_data=True,
                             pass_job_queue=True))

    dp.add_handler(
        CallbackQueryHandler(setting_callbacks,
                             pattern='^set:',
                             pass_job_queue=True))

    dp.add_handler(CallbackQueryHandler(change_settings, pattern='^_set:'))

    dp.add_handler(
        CallbackQueryHandler(callbacks,
                             pass_job_queue=True,
                             pass_user_data=True))

    dp.add_handler(
        CommandHandler('jobs',
                       manage_jobs,
                       pass_job_queue=True,
                       pass_args=True))

    dp.add_handler(CommandHandler('r', restart))

    # log all errors
    dp.add_error_handler(error)

    updater.start_polling()
    updater.idle()