diff options
author | Cédric Bonhomme <cedric@cedricbonhomme.org> | 2018-10-28 22:43:00 +0100 |
---|---|---|
committer | Cédric Bonhomme <cedric@cedricbonhomme.org> | 2018-10-28 22:43:00 +0100 |
commit | 73ea557e4cd60a4671c8dcf7e4338785b3907012 (patch) | |
tree | 09dd37b703d703bd53d28f00727b5559c2e066a1 /src/web/views | |
parent | Updated comment. (diff) | |
download | newspipe-73ea557e4cd60a4671c8dcf7e4338785b3907012.tar.gz newspipe-73ea557e4cd60a4671c8dcf7e4338785b3907012.tar.bz2 newspipe-73ea557e4cd60a4671c8dcf7e4338785b3907012.zip |
Improved filtering to get only articles from public feed via the public profile of a user.
Diffstat (limited to 'src/web/views')
-rw-r--r-- | src/web/views/user.py | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/src/web/views/user.py b/src/web/views/user.py index 8eed7ee0..24b73a60 100644 --- a/src/web/views/user.py +++ b/src/web/views/user.py @@ -49,12 +49,6 @@ def user_stream(per_page, nickname=None): """ Display the stream of a user (list of articles of public feed). """ - filters = {} - category_id = int(request.args.get('category_id', 0)) - category = CategoryController().read(id=category_id).first() - if category: - filters['category_id'] = category_id - user_contr = UserController() user = user_contr.get(nickname=nickname) if not user.is_public_profile: @@ -62,8 +56,24 @@ def user_stream(per_page, nickname=None): flash(gettext('You must set your profile to public.'), 'info') return redirect(url_for('user.profile')) + category_id = int(request.args.get('category_id', 0)) + category = CategoryController().read(id=category_id).first() + + # Load the public feeds + filters = {} + filters['private'] = False + if category_id: + filters['category_id'] = category_id + feeds = FeedController().read(**filters).all() + + # Re-initializes the filters to load the articles + filters = {} + filters['feed_id__in'] = [feed.id for feed in feeds] + if category: + filters['category_id'] = category_id articles = ArticleController(user.id).read_light(**filters) + # Server-side pagination page, per_page, offset = get_page_args(per_page_parameter='per_page') pagination = Pagination(page=page, total=articles.count(), css_framework='bootstrap3', |