From 01c5df1e5decbd0525c6062ff117a5b15964da2c Mon Sep 17 00:00:00 2001 From: Tim Van Baak Date: Fri, 17 Jan 2020 14:43:05 -0800 Subject: [PATCH] Add LexiconModel --- amanuensis/lexicon/__init__.py | 27 +++++++++++++++++++++++++++ amanuensis/resources/lexicon.json | 12 +++++++++--- 2 files changed, 36 insertions(+), 3 deletions(-) diff --git a/amanuensis/lexicon/__init__.py b/amanuensis/lexicon/__init__.py index e69de29..40de2c2 100644 --- a/amanuensis/lexicon/__init__.py +++ b/amanuensis/lexicon/__init__.py @@ -0,0 +1,27 @@ +import os +import time + +import config + +class LexiconModel(): + """ + """ + def __init__(self, lid): + if not os.path.isdir(config.prepend('lexicon', lid)): + raise ValueError("No lexicon with lid {}".format(lid)) + if not os.path.isfile(config.prepend('lexicon', lid, 'config.json')): + raise FileNotFoundError("Lexicon {} missing config.json".format(lid)) + self.id = str(lid) + self.config_path = config.prepend('lexicon', lid, 'config.json') + with config.json_ro(self.config_path) as j: + self.config = j + + def __getattr__(self, key): + if key not in self.config: + raise AttributeError(key) + return self.config.get(key) + + def log(self, message): + now = int(time.time()) + with config.json_rw(self.config_path) as j: + j['log'].append([now, message]) \ No newline at end of file diff --git a/amanuensis/resources/lexicon.json b/amanuensis/resources/lexicon.json index 80efd7f..6a7f8b1 100644 --- a/amanuensis/resources/lexicon.json +++ b/amanuensis/resources/lexicon.json @@ -2,6 +2,10 @@ "lid": null, "name": null, "editor": null, + "time": { + "created": null, + "completed": null + }, "turn": { "current": null, "start": 1, @@ -10,7 +14,7 @@ } }, "join": { - "open": true, + "open": false, "password": null, "max_players": 4 }, @@ -31,7 +35,7 @@ "capacity": null }, "citation": { - "allow_self": null, + "allow_self": false, "min_extant": null, "max_extant": null, "min_phantom": null, @@ -57,5 +61,7 @@ "player": null, "signature": "~Ersatz Scrivener" } - } + }, + "log": [ + ] } \ No newline at end of file