# HG changeset patch # User Paul Boddie # Date 1418081127 -3600 # Node ID 63a1b31f6d0871be494192ffef4e1d99964383f9 # Parent f196c2c7ab3bebed1d8309bae41709005256b47e Interpret absent TRANSP values as OPAQUE, preventing an output error. Added an oversimplistic event listing method. diff -r f196c2c7ab3b -r 63a1b31f6d08 imip_store.py --- a/imip_store.py Tue Dec 09 00:24:14 2014 +0100 +++ b/imip_store.py Tue Dec 09 00:25:27 2014 +0100 @@ -2,8 +2,8 @@ from datetime import datetime from imiptools.config import STORE_DIR, PUBLISH_DIR -from os.path import abspath, commonprefix, exists, join, split -from os import chmod, makedirs +from os.path import abspath, commonprefix, exists, isfile, join, split +from os import chmod, listdir, makedirs from vCalendar import iterwrite def check_dir(base, dir): @@ -69,6 +69,16 @@ "A file store of tabular free/busy data and objects." + def get_events(self, user): + + "Return a list of event identifiers." + + filename = self.get_object_in_store(user) + if not filename or not exists(filename): + return None + + return [name for name in listdir(filename) if isfile(join(filename, name))] + def get_event(self, user, uid): "Get the event for the given 'user' with the given 'uid'." @@ -77,7 +87,7 @@ if not filename or not exists(filename): return None - return exists(filename) and open(filename) or None + return open(filename) or None def set_event(self, user, uid, node): @@ -152,7 +162,7 @@ f = open(filename, "w") try: for item in freebusy: - f.write("\t".join(item) + "\n") + f.write("\t".join([(value or "OPAQUE") for value in item]) + "\n") finally: f.close() fix_permissions(filename) @@ -254,7 +264,7 @@ rwrite(("DTSTAMP", {}, datetime.utcnow().strftime("%Y%m%dT%H%M%SZ"))) for start, end, uid, transp in freebusy: - if transp == "OPAQUE": + if not transp or transp == "OPAQUE": rwrite(("FREEBUSY", {"FBTYPE" : "BUSY"}, "/".join([start, end]))) f = open(filename, "w")