diff -r 13f56bb29b96 -r 85c8f5280d48 bestofimms --- a/bestofimms Sun Feb 08 16:55:24 2004 -0500 +++ b/bestofimms Sun Feb 08 17:27:21 2004 -0500 @@ -1,13 +1,12 @@ #!/usr/bin/python -import sqlite +import imms from htmltmpl import TemplateManager, TemplateProcessor import os import ID3 from sys import stderr from ogg.vorbis import VorbisFile -_imms_db = os.environ['HOME'] + '/.imms/imms.db' _template = __file__ + '.tmpl' def rating_to_color(rating): @@ -26,17 +25,27 @@ blue = (i-50) * 255 / 25 return "#%02X%02X%02X" % (red, green, blue) +def sort_rating(x, y): + return x['rating']-y['rating'] + def grab_tunes(): - sql = sqlite.connect(_imms_db, autocommit = 1) - cu = sql.cursor() - cu.execute(''' SELECT r.rating, l.path - FROM Library l, Rating r - WHERE r.uid = l.uid AND r.rating >= 125 - ORDER BY r.rating DESC;''') - return map(lambda x: { - 'rating' : x[0], - 'path': x[1]}, - cu.fetchall() ) + db = imms.IMMSDb() + rates = db.get_ratings(125) + uids = map(lambda x: x[0], rates) + files = db.get_paths(uids) + d = {} + for fn in files: + d[fn[0]] = fn[2] + res = [] + for rate in rates: + try: + t = { 'rating': rate[1], + 'path' : d[rate[0]] } + res.append(t) + except KeyError: + pass + res.sort(lambda x, y: -sort_rating(x, y)) + return res def check_tunes(tunes): res = []