diff options
author | Cédric Bonhomme <cedric@cedricbonhomme.org> | 2020-02-26 11:27:31 +0100 |
---|---|---|
committer | Cédric Bonhomme <cedric@cedricbonhomme.org> | 2020-02-26 11:27:31 +0100 |
commit | 62b3afeeedfe054345f86093e2d243e956c1e3c9 (patch) | |
tree | bbd58f5c8c07f5d87b1c1cca73fa1d5af6178f48 /src/web/views/views.py | |
parent | Updated Python dependencies. (diff) | |
download | newspipe-62b3afeeedfe054345f86093e2d243e956c1e3c9.tar.gz newspipe-62b3afeeedfe054345f86093e2d243e956c1e3c9.tar.bz2 newspipe-62b3afeeedfe054345f86093e2d243e956c1e3c9.zip |
The project is now using Poetry.
Diffstat (limited to 'src/web/views/views.py')
-rw-r--r-- | src/web/views/views.py | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/src/web/views/views.py b/src/web/views/views.py deleted file mode 100644 index 57f790b1..00000000 --- a/src/web/views/views.py +++ /dev/null @@ -1,95 +0,0 @@ -import sys -import logging -import operator -from datetime import datetime, timedelta -from flask import (request, render_template, flash, - url_for, redirect, current_app) -from flask_babel import gettext -from sqlalchemy import desc - -import conf -from web import __version__ -from conf import API_ROOT, ADMIN_EMAIL -from web.controllers import FeedController, UserController -from web.lib.view_utils import etag_match - -logger = logging.getLogger(__name__) - - -@current_app.errorhandler(401) -def authentication_required(error): - if API_ROOT in request.url: - return error - flash(gettext('Authentication required.'), 'info') - return redirect(url_for('login')) - - -@current_app.errorhandler(403) -def authentication_failed(error): - if API_ROOT in request.url: - return error - flash(gettext('Forbidden.'), 'danger') - return redirect(url_for('login')) - - -@current_app.errorhandler(404) -def page_not_found(error): - return render_template('errors/404.html'), 404 - - -@current_app.errorhandler(500) -def internal_server_error(error): - return render_template('errors/500.html'), 500 - - -@current_app.errorhandler(AssertionError) -def handle_sqlalchemy_assertion_error(error): - return error.args[0], 400 - - -@current_app.route('/popular', methods=['GET']) -@etag_match -def popular(): - """ - Return the most popular feeds for the last nb_days days. - """ - # try to get the 'recent' popular websites, created after - # 'not_created_before' - # ie: not_added_before = date_last_added_feed - nb_days - try: - nb_days = int(request.args.get('nb_days', 365)) - except ValueError: - nb_days = 10000 - last_added_feed = FeedController().read().\ - order_by(desc('created_date')).limit(1).all() - if last_added_feed: - date_last_added_feed = last_added_feed[0].created_date - else: - date_last_added_feed = datetime.now() - not_added_before = date_last_added_feed - timedelta(days=nb_days) - - filters = {} - filters['created_date__gt'] = not_added_before - filters['private'] = False - filters['error_count__lt'] = conf.DEFAULT_MAX_ERROR - feeds = FeedController().count_by_link(**filters) - sorted_feeds = sorted(list(feeds.items()), key=operator.itemgetter(1), - reverse=True) - return render_template('popular.html', popular=sorted_feeds) - - -@current_app.route('/about', methods=['GET']) -@etag_match -def about(): - return render_template('about.html', contact=ADMIN_EMAIL) - -@current_app.route('/about/more', methods=['GET']) -@etag_match -def about_more(): - return render_template('about_more.html', - newspipe_version=__version__.split()[1], - on_heroku=[conf.ON_HEROKU and 'Yes' or 'No'][0], - registration=[conf.SELF_REGISTRATION and 'Open' or 'Closed'][0], - python_version="{}.{}.{}".format(*sys.version_info[:3]), - nb_users=UserController().read().count()) - |