--- 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 = []