diff options
Diffstat (limited to 'newspipe/web/views')
-rw-r--r-- | newspipe/web/views/__init__.py | 8 | ||||
-rw-r--r-- | newspipe/web/views/admin.py | 11 | ||||
-rw-r--r-- | newspipe/web/views/api/v2/__init__.py | 2 | ||||
-rw-r--r-- | newspipe/web/views/api/v2/article.py | 9 | ||||
-rw-r--r-- | newspipe/web/views/api/v2/category.py | 2 | ||||
-rw-r--r-- | newspipe/web/views/api/v2/common.py | 9 | ||||
-rw-r--r-- | newspipe/web/views/api/v2/feed.py | 11 | ||||
-rw-r--r-- | newspipe/web/views/article.py | 21 | ||||
-rw-r--r-- | newspipe/web/views/bookmark.py | 16 | ||||
-rw-r--r-- | newspipe/web/views/category.py | 12 | ||||
-rw-r--r-- | newspipe/web/views/common.py | 8 | ||||
-rw-r--r-- | newspipe/web/views/feed.py | 26 | ||||
-rw-r--r-- | newspipe/web/views/home.py | 24 | ||||
-rw-r--r-- | newspipe/web/views/icon.py | 1 | ||||
-rw-r--r-- | newspipe/web/views/session_mgmt.py | 26 | ||||
-rw-r--r-- | newspipe/web/views/user.py | 27 | ||||
-rw-r--r-- | newspipe/web/views/views.py | 14 |
17 files changed, 134 insertions, 93 deletions
diff --git a/newspipe/web/views/__init__.py b/newspipe/web/views/__init__.py index 7d73ac8c..51214f21 100644 --- a/newspipe/web/views/__init__.py +++ b/newspipe/web/views/__init__.py @@ -1,9 +1,9 @@ +from newspipe.web.views import home, session_mgmt, views +from newspipe.web.views.admin import admin_bp from newspipe.web.views.api import v2 -from newspipe.web.views import views, home, session_mgmt from newspipe.web.views.article import article_bp, articles_bp +from newspipe.web.views.bookmark import bookmark_bp, bookmarks_bp +from newspipe.web.views.category import categories_bp, category_bp from newspipe.web.views.feed import feed_bp, feeds_bp -from newspipe.web.views.category import category_bp, categories_bp from newspipe.web.views.icon import icon_bp -from newspipe.web.views.admin import admin_bp from newspipe.web.views.user import user_bp, users_bp -from newspipe.web.views.bookmark import bookmark_bp, bookmarks_bp diff --git a/newspipe/web/views/admin.py b/newspipe/web/views/admin.py index 7df683a7..f42f6938 100644 --- a/newspipe/web/views/admin.py +++ b/newspipe/web/views/admin.py @@ -1,12 +1,13 @@ from datetime import datetime -from flask import Blueprint, render_template, redirect, flash, url_for -from flask_babel import gettext, format_timedelta -from flask_login import login_required, current_user -from newspipe.lib.utils import redirect_url +from flask import Blueprint, flash, redirect, render_template, url_for +from flask_babel import format_timedelta, gettext +from flask_login import current_user, login_required + from newspipe.controllers import UserController -from newspipe.web.views.common import admin_permission +from newspipe.lib.utils import redirect_url from newspipe.web.forms import InformationMessageForm, UserForm +from newspipe.web.views.common import admin_permission admin_bp = Blueprint("admin", __name__, url_prefix="/admin") diff --git a/newspipe/web/views/api/v2/__init__.py b/newspipe/web/views/api/v2/__init__.py index d367da20..042b7255 100644 --- a/newspipe/web/views/api/v2/__init__.py +++ b/newspipe/web/views/api/v2/__init__.py @@ -1,3 +1,3 @@ -from newspipe.web.views.api.v2 import article, feed, category +from newspipe.web.views.api.v2 import article, category, feed __all__ = ["article", "feed", "category"] diff --git a/newspipe/web/views/api/v2/article.py b/newspipe/web/views/api/v2/article.py index b35d2635..638f1bd0 100644 --- a/newspipe/web/views/api/v2/article.py +++ b/newspipe/web/views/api/v2/article.py @@ -1,17 +1,18 @@ -from newspipe.bootstrap import application -import dateutil.parser from datetime import datetime + +import dateutil.parser from flask import current_app from flask_restful import Api -from newspipe.web.views.common import api_permission +from newspipe.bootstrap import application from newspipe.controllers import ArticleController from newspipe.web.views.api.v2.common import ( PyAggAbstractResource, - PyAggResourceNew, PyAggResourceExisting, PyAggResourceMulti, + PyAggResourceNew ) +from newspipe.web.views.common import api_permission class ArticleNewAPI(PyAggResourceNew): diff --git a/newspipe/web/views/api/v2/category.py b/newspipe/web/views/api/v2/category.py index 697a283f..ab6e484a 100644 --- a/newspipe/web/views/api/v2/category.py +++ b/newspipe/web/views/api/v2/category.py @@ -4,9 +4,9 @@ from flask_restful import Api from newspipe.bootstrap import application from newspipe.controllers.category import CategoryController from newspipe.web.views.api.v2.common import ( - PyAggResourceNew, PyAggResourceExisting, PyAggResourceMulti, + PyAggResourceNew ) diff --git a/newspipe/web/views/api/v2/common.py b/newspipe/web/views/api/v2/common.py index c38da8d8..5a7d7925 100644 --- a/newspipe/web/views/api/v2/common.py +++ b/newspipe/web/views/api/v2/common.py @@ -20,18 +20,19 @@ routes : """ import logging from functools import wraps -from werkzeug.exceptions import Unauthorized, BadRequest, Forbidden, NotFound + from flask import request -from flask_restful import Resource, reqparse from flask_login import current_user +from flask_restful import Resource, reqparse +from werkzeug.exceptions import BadRequest, Forbidden, NotFound, Unauthorized +from newspipe.controllers import UserController from newspipe.web.views.common import ( admin_permission, api_permission, - login_user_bundle, jsonify, + login_user_bundle ) -from newspipe.controllers import UserController logger = logging.getLogger(__name__) diff --git a/newspipe/web/views/api/v2/feed.py b/newspipe/web/views/api/v2/feed.py index eaccd24a..f9e7f8c2 100644 --- a/newspipe/web/views/api/v2/feed.py +++ b/newspipe/web/views/api/v2/feed.py @@ -2,15 +2,18 @@ from flask import current_app from flask_restful import Api from newspipe.bootstrap import application -from newspipe.web.views.common import api_permission -from newspipe.controllers.feed import FeedController, DEFAULT_MAX_ERROR, DEFAULT_LIMIT - +from newspipe.controllers.feed import ( + DEFAULT_LIMIT, + DEFAULT_MAX_ERROR, + FeedController +) from newspipe.web.views.api.v2.common import ( PyAggAbstractResource, - PyAggResourceNew, PyAggResourceExisting, PyAggResourceMulti, + PyAggResourceNew ) +from newspipe.web.views.common import api_permission class FeedNewAPI(PyAggResourceNew): diff --git a/newspipe/web/views/article.py b/newspipe/web/views/article.py index 033ff039..472ff589 100644 --- a/newspipe/web/views/article.py +++ b/newspipe/web/views/article.py @@ -1,23 +1,26 @@ from datetime import datetime, timedelta + from flask import ( Blueprint, - g, - render_template, - redirect, flash, - url_for, + g, make_response, + redirect, + render_template, request, + url_for ) - from flask_babel import gettext -from flask_login import login_required, current_user - +from flask_login import current_user, login_required from newspipe.bootstrap import db -from newspipe.lib.utils import clear_string, redirect_url +from newspipe.controllers import ( + ArticleController, + CategoryController, + UserController +) from newspipe.lib.data import export_json -from newspipe.controllers import ArticleController, UserController, CategoryController +from newspipe.lib.utils import clear_string, redirect_url from newspipe.web.lib.view_utils import etag_match articles_bp = Blueprint("articles", __name__, url_prefix="/articles") diff --git a/newspipe/web/views/bookmark.py b/newspipe/web/views/bookmark.py index 8252dc2f..5d7e3d2b 100644 --- a/newspipe/web/views/bookmark.py +++ b/newspipe/web/views/bookmark.py @@ -27,28 +27,28 @@ __copyright__ = "Copyright (c) Cedric Bonhomme" __license__ = "AGPLv3" import logging -from werkzeug.exceptions import BadRequest from flask import ( Blueprint, - render_template, flash, + make_response, redirect, + render_template, request, - url_for, - make_response, + url_for ) from flask_babel import gettext -from flask_login import login_required, current_user +from flask_login import current_user, login_required from flask_paginate import Pagination, get_page_args from sqlalchemy import desc +from werkzeug.exceptions import BadRequest -from newspipe.lib.utils import redirect_url -from newspipe.lib.data import import_pinboard_json, export_bookmarks from newspipe.bootstrap import db -from newspipe.web.forms import BookmarkForm from newspipe.controllers import BookmarkController, BookmarkTagController +from newspipe.lib.data import export_bookmarks, import_pinboard_json +from newspipe.lib.utils import redirect_url from newspipe.models import BookmarkTag +from newspipe.web.forms import BookmarkForm logger = logging.getLogger(__name__) bookmarks_bp = Blueprint("bookmarks", __name__, url_prefix="/bookmarks") diff --git a/newspipe/web/views/category.py b/newspipe/web/views/category.py index 9f1a7e83..3f65e854 100644 --- a/newspipe/web/views/category.py +++ b/newspipe/web/views/category.py @@ -1,11 +1,15 @@ -from flask import Blueprint, render_template, flash, redirect, url_for +from flask import Blueprint, flash, redirect, render_template, url_for from flask_babel import gettext -from flask_login import login_required, current_user +from flask_login import current_user, login_required -from newspipe.web.forms import CategoryForm +from newspipe.controllers import ( + ArticleController, + CategoryController, + FeedController +) from newspipe.lib.utils import redirect_url +from newspipe.web.forms import CategoryForm from newspipe.web.lib.view_utils import etag_match -from newspipe.controllers import ArticleController, FeedController, CategoryController categories_bp = Blueprint("categories", __name__, url_prefix="/categories") category_bp = Blueprint("category", __name__, url_prefix="/category") diff --git a/newspipe/web/views/common.py b/newspipe/web/views/common.py index 8d9ecfa9..574974ce 100644 --- a/newspipe/web/views/common.py +++ b/newspipe/web/views/common.py @@ -1,15 +1,17 @@ import json -from functools import wraps from datetime import datetime -from flask import current_app, Response +from functools import wraps + +from flask import Response, current_app from flask_login import login_user from flask_principal import ( Identity, Permission, RoleNeed, - session_identity_loader, identity_changed, + session_identity_loader ) + from newspipe.controllers import UserController from newspipe.lib.utils import default_handler diff --git a/newspipe/web/views/feed.py b/newspipe/web/views/feed.py index 16f44c86..10a86139 100644 --- a/newspipe/web/views/feed.py +++ b/newspipe/web/views/feed.py @@ -1,33 +1,33 @@ import logging -import requests.exceptions from datetime import datetime, timedelta -from sqlalchemy import desc -from werkzeug.exceptions import BadRequest +import requests.exceptions from flask import ( Blueprint, - render_template, flash, + make_response, redirect, + render_template, request, - url_for, - make_response, + url_for ) from flask_babel import gettext -from flask_login import login_required, current_user +from flask_login import current_user, login_required from flask_paginate import Pagination, get_page_args +from sqlalchemy import desc +from werkzeug.exceptions import BadRequest from newspipe.bootstrap import application -from newspipe.lib import misc_utils, utils -from newspipe.lib.feed_utils import construct_feed_from -from newspipe.web.lib.view_utils import etag_match -from newspipe.web.forms import AddFeedForm from newspipe.controllers import ( - UserController, + ArticleController, CategoryController, FeedController, - ArticleController, + UserController ) +from newspipe.lib import misc_utils, utils +from newspipe.lib.feed_utils import construct_feed_from +from newspipe.web.forms import AddFeedForm +from newspipe.web.lib.view_utils import etag_match logger = logging.getLogger(__name__) feeds_bp = Blueprint("feeds", __name__, url_prefix="/feeds") diff --git a/newspipe/web/views/home.py b/newspipe/web/views/home.py index 0fe09b17..1699f106 100644 --- a/newspipe/web/views/home.py +++ b/newspipe/web/views/home.py @@ -1,20 +1,30 @@ -import pytz import logging from datetime import datetime -from flask import current_app, render_template, request, flash, url_for, redirect -from flask_login import login_required, current_user -from flask_babel import gettext, get_locale +import pytz from babel.dates import format_datetime, format_timedelta +from flask import ( + current_app, + flash, + redirect, + render_template, + request, + url_for +) +from flask_babel import get_locale, gettext +from flask_login import current_user, login_required from newspipe.bootstrap import application -from newspipe.lib.utils import redirect_url +from newspipe.controllers import ( + ArticleController, + CategoryController, + FeedController +) from newspipe.lib import misc_utils +from newspipe.lib.utils import redirect_url from newspipe.web.lib.view_utils import etag_match from newspipe.web.views.common import jsonify -from newspipe.controllers import FeedController, ArticleController, CategoryController - localize = pytz.utc.localize logger = logging.getLogger(__name__) diff --git a/newspipe/web/views/icon.py b/newspipe/web/views/icon.py index 4cdcd4b0..bbb98ea5 100644 --- a/newspipe/web/views/icon.py +++ b/newspipe/web/views/icon.py @@ -1,4 +1,5 @@ import base64 + from flask import Blueprint, Response, request from newspipe.controllers import IconController diff --git a/newspipe/web/views/session_mgmt.py b/newspipe/web/views/session_mgmt.py index 9588e98e..801834ec 100644 --- a/newspipe/web/views/session_mgmt.py +++ b/newspipe/web/views/session_mgmt.py @@ -1,33 +1,33 @@ import logging - from datetime import datetime -from werkzeug.security import generate_password_hash -from werkzeug.exceptions import NotFound + from flask import ( - render_template, + current_app, flash, - session, - request, - url_for, redirect, - current_app, + render_template, + request, + session, + url_for ) from flask_babel import gettext, lazy_gettext -from flask_login import LoginManager, logout_user, login_required, current_user +from flask_login import LoginManager, current_user, login_required, logout_user from flask_principal import ( - Principal, AnonymousIdentity, + Principal, UserNeed, identity_changed, identity_loaded, - session_identity_loader, + session_identity_loader ) +from werkzeug.exceptions import NotFound +from werkzeug.security import generate_password_hash from newspipe.bootstrap import application -from newspipe.web.views.common import admin_role, api_role, login_user_bundle from newspipe.controllers import UserController -from newspipe.web.forms import SignupForm, SigninForm from newspipe.notifications import notifications +from newspipe.web.forms import SigninForm, SignupForm +from newspipe.web.views.common import admin_role, api_role, login_user_bundle Principal(current_app) # Create a permission with a single Need, in this case a RoleNeed. diff --git a/newspipe/web/views/user.py b/newspipe/web/views/user.py index b4900559..5addf80d 100644 --- a/newspipe/web/views/user.py +++ b/newspipe/web/views/user.py @@ -1,22 +1,29 @@ -from flask import Blueprint, g, render_template, redirect, flash, url_for, request +from flask import ( + Blueprint, + flash, + g, + redirect, + render_template, + request, + url_for +) from flask_babel import gettext -from flask_login import login_required, current_user +from flask_login import current_user, login_required from flask_paginate import Pagination, get_page_args from newspipe.bootstrap import application -from newspipe.notifications import notifications -from newspipe.lib import misc_utils -from newspipe.lib.data import import_opml, import_json -from newspipe.web.lib.user_utils import confirm_token from newspipe.controllers import ( - UserController, - FeedController, ArticleController, - CategoryController, BookmarkController, + CategoryController, + FeedController, + UserController ) - +from newspipe.lib import misc_utils +from newspipe.lib.data import import_json, import_opml +from newspipe.notifications import notifications from newspipe.web.forms import ProfileForm +from newspipe.web.lib.user_utils import confirm_token users_bp = Blueprint("users", __name__, url_prefix="/users") user_bp = Blueprint("user", __name__, url_prefix="/user") diff --git a/newspipe/web/views/views.py b/newspipe/web/views/views.py index 346954e1..a19c7dc5 100644 --- a/newspipe/web/views/views.py +++ b/newspipe/web/views/views.py @@ -1,14 +1,22 @@ -import sys import logging import operator +import sys from datetime import datetime, timedelta -from flask import request, render_template, flash, url_for, redirect, current_app + +from flask import ( + current_app, + flash, + redirect, + render_template, + request, + url_for +) from flask_babel import gettext from sqlalchemy import desc from newspipe.bootstrap import application -from newspipe.web import __version__ from newspipe.controllers import FeedController, UserController +from newspipe.web import __version__ from newspipe.web.lib.view_utils import etag_match logger = logging.getLogger(__name__) |