From 1f45444aa2da418c3c9dfe70e7ef39c0170b6f36 Mon Sep 17 00:00:00 2001 From: Cédric Bonhomme Date: Fri, 30 Nov 2012 14:29:12 +0100 Subject: Performance MongoDB imptovements (get_gavorites() function). --- source/mongodb.py | 18 ++++++++---------- source/pyAggr3g470r.py | 2 +- source/templates/favorites.html | 5 +---- 3 files changed, 10 insertions(+), 15 deletions(-) (limited to 'source') diff --git a/source/mongodb.py b/source/mongodb.py index e11cc498..6b15f0fd 100644 --- a/source/mongodb.py +++ b/source/mongodb.py @@ -151,23 +151,21 @@ class Articles(object): collection = self.db[feed_id] cursor = collection.find({'type':1, 'article_like':True}) return cursor - + else: + favorites = [] + for feed_id in self.db.collection_names(): + favorites += self.get_favorites(feed_id) + return favorites + def nb_favorites(self, feed_id=None): """ Return the number of favorites articles of a feed or of all the database. """ if feed_id is not None: - # only for a feed - collection = self.db[feed_id] - cursor = collection.find({'type':1, 'article_like':True}) - return cursor.count() + return self.get_favorites(feed_id).count() else: - # for all feeds - nb_favorites = 0 - for feed_id in self.db.collection_names(): - nb_favorites += self.nb_favorites(feed_id) - return nb_favorites + return len(self.get_favorites()) def nb_mail_notifications(self): """ diff --git a/source/pyAggr3g470r.py b/source/pyAggr3g470r.py index 3f5132df..7455bc1c 100755 --- a/source/pyAggr3g470r.py +++ b/source/pyAggr3g470r.py @@ -750,7 +750,7 @@ class pyAggr3g470r(object): feeds = self.mongo.get_all_feeds() articles = {} for feed in feeds: - articles[feed["feed_id"]] = self.mongo.get_articles_from_collection(feed["feed_id"]) + articles[feed["feed_id"]] = self.mongo.get_favorites(feed["feed_id"]) tmpl = lookup.get_template("favorites.html") return tmpl.render(feeds=feeds, \ articles=articles) diff --git a/source/templates/favorites.html b/source/templates/favorites.html index beb76ff8..5eba8a3c 100644 --- a/source/templates/favorites.html +++ b/source/templates/favorites.html @@ -10,7 +10,6 @@ import utils new_feed_section = True %> %for article in articles[feed["feed_id"]]: - %if article["article_like"]: <% if new_feed_section: new_feed_section = False @@ -26,8 +25,6 @@ import utils %> ${title} - - ${article["article_date"].strftime('%Y-%m-%d %H:%M')} - ${article["article_title"][:150]}${description}
- %endif + ${article["article_date"].strftime('%Y-%m-%d %H:%M')} - ${article["article_title"][:150]}${description}
%endfor %endfor \ No newline at end of file -- cgit