def main(guest_welcome_args=None, user_welcome_args=None): if account.account_is_logged_in(): if user_welcome_args is None: user_welcome_args = UserWelcomeArgs() return main_user_welcome(user_welcome_args) else: if guest_welcome_args is None: guest_welcome_args = GuestWelcomeArgs() return main_guest_welcome(guest_welcome_args)
def search_archive_by_exact_handler(): if not account.account_is_logged_in(): return redirect(url_for('main_handler')) exact_proper_url = request.args.get('proper_url') exact_datetime = request.args.get('datetime') print('exact_proper_url', exact_proper_url, 'exact_datetime', exact_datetime) return main.main(user_welcome_args=main.UserWelcomeArgs( url_archive_info=UrlArchiveInfo(proper_url=exact_proper_url, created_datetime=exact_datetime)))
def archive_url_handler(): print('archive_url_handler') if not account.account_is_logged_in(): return redirect(url_for('main_handler')) if request.method == 'POST': original_url = request.form.get('url_text') elif request.method == 'GET': original_url = request.args.get('url_text') if not url_util.precheck_url(original_url): return main.main(user_welcome_args=main.UserWelcomeArgs( error_message='Invalid URL: ' + (original_url if original_url else ''))) dynamodb.push_account_archive_request( list_name=dynamodb.ACCOUNT_TABLE_ARCHIVE_PENDING_REQUEST_LIST, username=account.account_get_logged_in_username(), original_url=original_url) if config.RUNNING_LOCALLY: # Only for local error_message = archiver.archive_url( original_url=original_url, username=account.account_get_logged_in_username(), running_locally=True) if error_message: return main.main(user_welcome_args=main.UserWelcomeArgs( error_message=error_message)) else: result = search_archive_by_url_datetimes(original_url) assert result proper_url, datetime, date_strs = result return main.main(user_welcome_args=main.UserWelcomeArgs( error_message=error_message, url_archive_info=UrlArchiveInfo(query_url=original_url, proper_url=proper_url, created_datetime=datetime), date_strs=date_strs)) else: # return redirect(url_for('main_handler')) return main.main(user_welcome_args=main.UserWelcomeArgs( other_message='URL: ' + (original_url if original_url else '') + ' is in the queue. Please check back later.'))
def retry_archive_request_handler(): if not account.account_is_logged_in(): return redirect(url_for('main_handler')) original_url = request.form.get('url_text') request_list_short_name = request.form.get('request_list_name') print('retry_archive_request_handler(' + str(request_list_short_name) + ', ' + original_url + ')') if request_list_short_name == 'pending': list_name = dynamodb.ACCOUNT_TABLE_ARCHIVE_PENDING_REQUEST_LIST elif request_list_short_name == 'failed': list_name = dynamodb.ACCOUNT_TABLE_ARCHIVE_FAILED_REQUEST_LIST # Regardless whether it actually exists in the list, # archive the url again dynamodb.pop_account_archive_request_by( list_name=list_name, username=account.account_get_logged_in_username(), original_url=original_url) return redirect(url_for('archive_url_handler', url_text=original_url))
def search_all_archives_by_current_user_handler(): if not account.account_is_logged_in(): return redirect(url_for('main_handler')) return main.main(user_welcome_args=main.UserWelcomeArgs( show_all_user_archive_list=True))
def search_archive_by_url_datetimes_handler(): print('search_archive_by_url_datetimes_handler') if not account.account_is_logged_in(): return redirect(url_for('main_handler')) if request.method == 'POST': original_url = request.form.get('url_text') selected_date = request.form.get('selected_date') selected_datetime = request.form.get('selected_datetime') elif request.method == 'GET': original_url = request.args.get('url_text') selected_date = request.args.get('selected_date') selected_datetime = request.args.get('selected_datetime') if not url_util.precheck_url(original_url): return main.main(user_welcome_args=main.UserWelcomeArgs( error_message='Invalid URL: ' + (original_url if original_url else ''))) if selected_date is not None: selected_date = utility.iso_date_str_2_date(selected_date) result = search_archive_by_url_datetimes(original_url, by_date=selected_date) if result is None: return main.main(user_welcome_args=main.UserWelcomeArgs( error_message=original_url + ' is not archived on ' + selected_date, prefill_url_text=original_url)) proper_url, latest_datetime_str, datetime_strs = result return main.main(user_welcome_args=main.UserWelcomeArgs( url_archive_info=UrlArchiveInfo( proper_url=proper_url, created_datetime=latest_datetime_str, query_url=original_url), datetime_strs=datetime_strs)) elif selected_datetime is not None: result = search_archive_by_url_datetimes(original_url, by_datetime=selected_datetime) if result is None: return main.main(user_welcome_args=main.UserWelcomeArgs( error_message=original_url + ' is not archived on ' + selected_datetime, prefill_url_text=original_url)) proper_url, latest_datetime_str, datetime_strs = result return main.main(user_welcome_args=main.UserWelcomeArgs( url_archive_info=UrlArchiveInfo( proper_url=proper_url, created_datetime=latest_datetime_str, query_url=original_url), datetime_strs=datetime_strs)) else: result = search_archive_by_url_datetimes(original_url) if result is None: return main.main(user_welcome_args=main.UserWelcomeArgs( error_message=original_url + ' is not archived yet', prefill_url_text=original_url)) proper_url, latest_datetime_str, date_strs = result return main.main(user_welcome_args=main.UserWelcomeArgs( url_archive_info=UrlArchiveInfo( proper_url=proper_url, created_datetime=latest_datetime_str, query_url=original_url), date_strs=date_strs))
def main_clear_failed_message_handler(): if account.account_is_logged_in(): dynamodb.clear_account_archive_request_by( list_name=dynamodb.ACCOUNT_TABLE_ARCHIVE_FAILED_REQUEST_LIST, username=account.account_get_logged_in_username()) return redirect(url_for('main_handler'))