Mercurial > vixm
annotate vixm/stats.py @ 46:2d570448aba5 pure
Abstract out the stats code a little bit more
This is in preparation for moving the stats code completely out of player
code
author | Josef "Jeff" Sipek <jeffpc@josefsipek.net> |
---|---|
date | Mon, 06 Nov 2006 05:19:23 -0500 |
parents | bc6db55448e1 |
children |
rev | line source |
---|---|
42 | 1 NEW_SONGS_SYNC = 2 |
2 | |
3 class statsengine: | |
4 def __init__(self, statsfile): | |
5 self.__fname = statsfile | |
6 try: | |
7 self.__stats = eval(open(statsfile, "r").read()) | |
8 except: | |
9 self.__stats = {} | |
10 self.__new_songs = 0 | |
11 | |
46
2d570448aba5
Abstract out the stats code a little bit more
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
42
diff
changeset
|
12 self.__current = None |
42 | 13 |
14 def __del__(self): | |
15 self.sync() | |
16 | |
17 def sync(self): | |
18 f = open(self.__fname, "w") | |
19 f.write(repr(self.__stats)) | |
20 f.close() | |
21 | |
22 self.__new_songs = 0 | |
23 | |
46
2d570448aba5
Abstract out the stats code a little bit more
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
42
diff
changeset
|
24 def playing(self, s): |
2d570448aba5
Abstract out the stats code a little bit more
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
42
diff
changeset
|
25 self.__current = s |
2d570448aba5
Abstract out the stats code a little bit more
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
42
diff
changeset
|
26 |
42 | 27 def played(self): |
46
2d570448aba5
Abstract out the stats code a little bit more
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
42
diff
changeset
|
28 s = str(self.__current) |
42 | 29 |
30 if not self.__stats.has_key(s): | |
31 self.__stats[s] = 0 | |
32 | |
33 self.__stats[s] += 1 | |
34 | |
35 self.__new_songs += 1 | |
36 if self.__new_songs >= NEW_SONGS_SYNC: | |
37 self.sync() | |
46
2d570448aba5
Abstract out the stats code a little bit more
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
42
diff
changeset
|
38 |