bestofimms
branchimmsview
changeset 32 85c8f5280d48
parent 31 13f56bb29b96
child 33 ad808d18c693
--- 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 = []