# HG changeset patch # User Fabien Ninoles # Date 1228686352 18000 # Node ID 7a7e5a853937f1944445099b701e6dda93fc592d # Parent a26e907b8022d100f060687fccb06550813bb585 Remove some debug. Refactorize the rating range. Correct the ploting function. diff -r a26e907b8022 -r 7a7e5a853937 imms.py --- a/imms.py Sun Dec 07 16:05:33 2008 -0500 +++ b/imms.py Sun Dec 07 16:45:52 2008 -0500 @@ -5,19 +5,25 @@ _log = stderr +MIN_RATING=0 +MAX_RATING=100 + def rating_to_color(rating): - i = rating red = green = blue = 0 - if i <= 25: + division_size = (MAX_RATING-MIN_RATING)/4 + divisions = range(MIN_RATING, MAX_RATING+1, division_size) + if rating <= divisions[1]: red = 255 - green = i * 255 / 25 - elif i <= 75: - red = (75-i) * 255 / 50 + green = (rating-divisions[0]) * 255 / division_size + elif rating <= divisions[2]: + red = (divisions[2]-rating) * 255 / division_size green = 255 + elif rating <= divisions[3]: + green = 255 + blue = (rating-divisions[2]) * 255 / division_size else: - green = 255 - blue = (i-75) * 255 / 25 - print >>stderr,"Rating:",rating,"R:",red,"G:",green,"B:",blue + green = (divisions[4]-rating) * 255 / division_size + blue = 255 return "#%02x%02x%02x" % (red, green, blue) class IMMSDb: diff -r a26e907b8022 -r 7a7e5a853937 immsview --- a/immsview Sun Dec 07 16:05:33 2008 -0500 +++ b/immsview Sun Dec 07 16:45:52 2008 -0500 @@ -321,16 +321,15 @@ self.db = db; Gnuplot.Gnuplot.__init__(self) def plot_rate(self): - array = [0] * (100+1) + rating_range = range(imms.MIN_RATING,imms.MAX_RATING+1) + array = [0] * rating_range.len() for uid, rating in self.db.get_ratings(): - if (rating > 100): - print >>stderr, "Rating for",uid,"is greater than 100:",rating - rating = 100 + if rating < imms.MIN_RATING or rating > imms.MAX_RATING: + print >>stderr, "Rating for",uid,"is out of range:", rating + rating = max(imms.MIN_RATING, min(imms.MAX_RATING, rating)) array[rating] += 1 - d1 = Gnuplot.Data(range(0,100), array, - with_='impulses') - d2 = Gnuplot.Data(range(0,100), array, - smooth = 'bezier') + d1 = Gnuplot.Data(rating_range, array, with_='impulses') + d2 = Gnuplot.Data(rating_range, array, smooth = 'bezier') self.plot(d1, d2, title='rate frequency') self.gnuplot.flush()