X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/d8055dc4411375d23b136cd51f4bed9da445ec93..eb5e067336c457058b5e67bf5835b778ec100019:/python/disorder.py.in diff --git a/python/disorder.py.in b/python/disorder.py.in index 595ee92..3cc300c 100644 --- a/python/disorder.py.in +++ b/python/disorder.py.in @@ -62,8 +62,8 @@ _userconf = True # various regexps we'll use _ws = re.compile(r"^[ \t\n\r]+") -_squote = re.compile("'(([^\\\\']|\\\\[\\\\\"'n])+)'") -_dquote = re.compile("\"(([^\\\\\"]|\\\\[\\\\\"'n])+)\"") +_squote = re.compile("'(([^\\\\']|\\\\[\\\\\"'n])*)'") +_dquote = re.compile("\"(([^\\\\\"]|\\\\[\\\\\"'n])*)\"") _unquoted = re.compile("[^\"' \\t\\n\\r][^ \t\n\r]*") _response = re.compile("([0-9]{3}) ?(.*)") @@ -479,12 +479,12 @@ class client: """ self._simple("reconfigure") - def rescan(self): + def rescan(self, *flags): """Rescan one or more collections. Only trusted users can perform this operation. """ - self._simple("rescan") + self._simple("rescan", *flags) def version(self): """Return the server's version number.""" @@ -883,6 +883,30 @@ class client: """Confirm a user registration""" res, details = self._simple("confirm", confirmation) + def schedule_list(self): + """Get a list of scheduled events """ + self._simple("schedule-list") + return self._body() + + def schedule_del(self, event): + """Delete a scheduled event""" + self._simple("schedule-del", event) + + def schedule_get(self, event): + """Get the details for an event as a dict (returns None if event not found)""" + res, details = self._simple("schedule-get", event) + if res == 555: + return None + d = {} + for line in self._body(): + bits = _split(line) + d[bits[0]] = bits[1] + return d + + def schedule_add(self, when, priority, action, *rest): + """Add a scheduled event""" + self._simple("schedule-add", str(when), priority, action, *rest) + ######################################################################## # I/O infrastructure