def list_(): "Lists the subscribed feeds in a table." art_contr = ArticleController(current_user.id) return render_template( "categories.html", categories=list( CategoryController(current_user.id).read().order_by("name")), feeds_count=FeedController(current_user.id).count_by_category(), unread_article_count=art_contr.count_by_category(readed=False), article_count=art_contr.count_by_category(), )
def home(): """Displays the home page of the connected user. """ filters = _get_filters(request.args) category_contr = CategoryController(current_user.id) art_contr = ArticleController(current_user.id) categories = {cat.id: cat for cat in category_contr.read().all()} unread = art_contr.count_by_feed(readed=False) nb_unread = art_contr.read_light(readed=False).count() unread_by_cat = art_contr.count_by_category(readed=False) feeds = { feed.id: feed for feed in sorted( current_user.feeds, key=lambda x: x.title.lower(), reverse=False ) } filter_ = request.args.get("filter_", "unread") feed_id = int(request.args.get("feed", 0)) liked = int(request.args.get("liked", 0)) == 1 limit = request.args.get("limit", 1000) query = request.args.get("query", "") search_title = request.args.get("search_title", "off") search_content = request.args.get("search_content", "off") if filter_ in ["read", "unread"]: filters["readed"] = filter_ == "read" if feed_id: filters["feed_id"] = feed_id if liked: filters["like"] = int(liked) == 1 articles = art_contr.read_ordered(**filters) if limit != "all": limit = int(limit) articles = articles.limit(limit) in_error = { feed.id: feed.error_count for feed in FeedController(current_user.id).read(error_count__gt=0).all() } def gen_url( filter_=filter_, limit=limit, feed=feed_id, liked=liked, query=query, search_title=search_title, search_content=search_content, ): return ( "?filter_=%s&limit=%s&feed=%d&liked=%s&query=%s&search_title=%s&search_content=%s" % ( filter_, limit, feed, 1 if liked else 0, query, search_title, search_content, ) ) return render_template( "home.html", nb_unread=nb_unread, gen_url=gen_url, feed_id=feed_id, filter_=filter_, limit=limit, feeds=feeds, categories=categories, unread_by_cat=unread_by_cat, liked=liked, unread=dict(unread), articles=articles.all(), in_error=in_error, )