X-Git-Url: https://git.distorted.org.uk/~mdw/disorder/blobdiff_plain/b314172618586e500fc362a49ca08bf497b8e878..5b14453f9fc5ae923c613e2154ede85637462469:/python/disorder.py.in diff --git a/python/disorder.py.in b/python/disorder.py.in index b18c724..36157a0 100644 --- a/python/disorder.py.in +++ b/python/disorder.py.in @@ -375,8 +375,11 @@ class client: s.connect(self.who) self.w = s.makefile("wb") self.r = s.makefile("rb") - (res, challenge_and_algo) = self._simple() - (algo, challenge) = _split(challenge_and_algo) + (res, details) = self._simple() + (protocol, algo, challenge) = _split(details) + if protocol != '2': + raise communicationError(self.who, + "unknown protocol version %s" % protocol) if cookie is None: if self.user is None: user = self.config['username'] @@ -413,16 +416,6 @@ class client: ######################################################################## # Operations - def become(self, who): - """Become another user. - - Arguments: - who -- the user to become. - - Only trusted users can perform this operation. - """ - self._simple("become", who) - def play(self, track): """Play a track. @@ -498,7 +491,7 @@ class client: def version(self): """Return the server's version number.""" - return self._simple("version")[1] + return _split(self._simple("version")[1])[0] def playing(self): """Return the currently playing track. @@ -629,7 +622,7 @@ class client: if ret == 555: return None else: - return details + return _split(details)[0] def prefs(self, track): """Get all the preferences for a track. @@ -820,7 +813,7 @@ class client: The return value is the preference """ ret, details = self._simple("part", track, context, part) - return details + return _split(details)[0] def setglobal(self, key, value): """Set a global preference value. @@ -851,7 +844,7 @@ class client: if ret == 555: return None else: - return details + return _split(details)[0] def make_cookie(self): """Create a login cookie""" @@ -888,6 +881,15 @@ class client: self._simple("users") return self._body() + def register(self, username, password, email): + """Register a user""" + res, details = self._simple("register", username, password, email) + return _split(details)[0] + + def confirm(self, confirmation): + """Confirm a user registration""" + res, details = self._simple("confirm", confirmation) + ######################################################################## # I/O infrastructure