class JamendoManager(Singleton, Client): def __init__(self): Singleton.__init__(self) Client.__init__(self) self.prefs = PluginPrefs("jamendo") self.username = self.get_preference("username", "") self.password = self.get_preference("password", "") def is_logged(self): return self.logged def has_preference(self, name): return self.prefs.has_key(name) def get_preference(self, name, default=None): return self.prefs.get(name, default) def set_preference(self, name, value): self.prefs[name] = value self.prefs.save() def get_username(self): return self.username def set_username(self, value): self.username = value self.set_preference("username", value) def get_password(self): return self.password def set_password(self, value): self.password = value self.set_preference("password", value)
class PicasaManager(Singleton): def __init__(self): Singleton.__init__(self) self.gd_client = gdata.photos.service.PhotosService() self.gd_client.email = '' self.gd_client.password = '' self.gd_client.source = 'Picasa plugin for Canola' self.logged = False self.login_error = '' self._user = '' self._password = '' self.albums ='' self.thumbs_path = '' self.outside_terra = False; #used to save the list of current downloading thumbs to avoid multiple #downloads for the same file self.thumbs_in_progress = {}; try: self.prefs = PluginPrefs("picasa") except: print "running outside canola" self.outside_terra = True; def reload_prefs(self): self.user = self.get_preference("username", "") self.password = self.get_preference("password", "") def get_preference(self, name, default=None): return self.prefs.get(name, default) def get_thumbs_path(self): if not self.thumbs_path: try: self.thumbs_path = self.prefs["thumbs_path"] except KeyError: try: download_path = PluginPrefs("settings")["download_path"] except KeyError: download_path = os.path.join(os.path.expanduser("~"), ".canola") self.thumbs_path = os.path.join(download_path, "picasa", "thumbnails") self.set_preference("thumbs_path", self.thumbs_path) if not os.path.exists(self.thumbs_path): os.makedirs(self.thumbs_path) return self.thumbs_path def set_preference(self, name, value): self.prefs[name] = value self.prefs.save() def getPassword(self): return self._password def setPassword(self, password): self._password = self.gd_client.password = password if not self.outside_terra: self.set_preference("password", password) password = property(getPassword, setPassword) def getUser(self): return self._user def setUser(self, email): self._user = self.gd_client.email = email if not self.outside_terra: self.set_preference("username", email) user = property(getUser, setUser) def login(self): if not self.outside_terra: self.reload_prefs() try: self.gd_client.ProgrammaticLogin() self.logged = True self.albums = None except gdata.service.Error, error: log.error("Could not login to Picasa, exception: %s" % error) self.login_error = error self.logged = False