#
import cPickle, os
import logging
+import jamaendo
+import datetime
from postoffice import postoffice
defaults = {
'volume':0.1,
'user':None,
- 'favorites':set([]) # local favorites - until we can sync back
+ 'favorites':set([]), # local favorites - until we can sync back
+ 'playlists':{},
}
def __init__(self):
def favorite(self, album):
self.favorites.add(('album', album.ID))
self.save()
+ postoffice.notify('settings-changed', 'favorites', self.favorites)
+
+ def get_playlist(self, playlist, get_track_objects=True):
+ entry = self.playlists.get(playlist)
+ if entry:
+ if get_track_objects:
+ return [jamaendo.Track(item['id'], item['data']) for item in entry]
+ return entry
+ return None
+
+ def add_to_playlist(self, playlist, track):
+ if isinstance(track, jamaendo.Track):
+ track = {'id':track.ID, 'data':track.get_data()}
+ assert(isinstance(track, dict))
+ lst = self.playlists.get(playlist)
+ if not lst:
+ lst = []
+ self.playlists[playlist] = lst
+ lst.append(track)
+ postoffice.notify('settings-changed', 'playlists', self.playlists)
+ log.debug("playlists is now %s", self.playlists)
def load(self):
if not os.path.isfile(self.__savename):
for k in self.defaults.keys():
if k in settings:
+ if k == 'playlists' and not isinstance(k, dict):
+ continue
setattr(self, k, settings[k])
+ print settings
except Exception, e:
log.exception('failed to load settings')
f = open(self.__savename, 'w')
cPickle.dump(settings, f)
f.close()
+ print settings
except Exception, e:
log.exception('failed to save settings')