X-Git-Url: https://git.distorted.org.uk/~mdw/disorder/blobdiff_plain/299a14ee0d61b7994dc4ce5246b55b4d75fdcb2e..31773020eedbe29daff0a407619df9607e569e22:/python/disorder.py.in diff --git a/python/disorder.py.in b/python/disorder.py.in index 95465c0..a8afcba 100644 --- a/python/disorder.py.in +++ b/python/disorder.py.in @@ -585,7 +585,10 @@ class client: The return value is the preference """ ret, details = self._simple("get", track, key) - return details + if ret == 555: + return None + else: + return details def prefs(self, track): """Get all the preferences for a track. @@ -656,6 +659,14 @@ class client: self._simple("search", _quote(words)) return self._body() + def tags(self): + """List all tags + + The return value is a list of all tags which apply to at least one + track.""" + self._simple("tags") + return self._body() + def stats(self): """Get server statistics. @@ -755,6 +766,37 @@ class client: ret, details = self._simple("part", track, context, part) return details + def setglobal(self, key, value): + """Set a global preference value. + + Arguments: + key -- the preference name + value -- the new preference value + """ + self._simple("set-global", key, value) + + def unsetglobal(self, key): + """Unset a global preference value. + + Arguments: + key -- the preference to remove + """ + self._simple("set-global", key, value) + + def getglobal(self, key): + """Get a global preference value. + + Arguments: + key -- the preference to look up + + The return value is the preference + """ + ret, details = self._simple("get-global", key) + if ret == 555: + return None + else: + return details + ######################################################################## # I/O infrastructure @@ -809,7 +851,7 @@ class client: # # If an I/O error occurs, disconnect from the server. # - # On success returns response as a (code, details) tuple + # On success or 'normal' errors returns response as a (code, details) tuple # # On error raise operationError if self.state == 'disconnected': @@ -819,7 +861,7 @@ class client: else: cmd = None res, details = self._response() - if res / 100 == 2: + if res / 100 == 2 or res == 555: return res, details raise operationError(res, details, cmd)