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()
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()