diff -r b62ebedcb8ac -r 7b7cd0e74ee3 lib/my_db.py --- a/lib/my_db.py Wed Oct 08 17:51:09 2003 -0400 +++ b/lib/my_db.py Fri Oct 10 11:38:20 2003 -0400 @@ -175,7 +175,7 @@ AND ( """ % (self.userid, self.userid) for id in bk_ids: - qry = qry + "bk.bookmark = %d OR " % (id,) + qry += "bk.bookmark = %d OR " % (id,) qry = qry[:-3] + ") ORDER BY k.id;" self.crs.execute(qry) return self.crs.fetchall() @@ -217,14 +217,19 @@ ORDER BY k.id;""" % (self.userid,)) res = self.crs.fetchall() return res - def get_keywords_count(self): + def get_keywords_count(self, bks = []): """Return a list of doublets [id, count]. Does with a count of zero are ignored.""" - self.crs.execute("""SELECT bk.keyword, COUNT(bk.keyword) + qry = """SELECT bk.keyword, COUNT(bk.keyword) FROM bookmarks_keywords bk - WHERE bk.userid = %d - GROUP BY bk.keyword - ORDER BY bk.keyword;""" % (self.userid,)) + WHERE bk.userid = %d""" % (self.userid,) + if len(bks) > 0: + qry += " AND ( bk.bookmark = %d" % bks[0] + for bk in bks[1:]: + qry += " OR bk.bookmark = %d" % bk + qry += " )" + qry += " GROUP BY bk.keyword ORDER BY bk.keyword;" + self.crs.execute(qry) res = self.crs.fetchall() if not res: res = [[0,0]]