From 3c846df518f7da45e5d9f4a2039d222eeb0ce161 Mon Sep 17 00:00:00 2001 From: paul Date: Wed, 12 Jan 2011 21:39:11 +0000 Subject: [PATCH] tabserver untestet, initial commit svn path=/trunk/; revision=7 --- tabserver | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 tabserver diff --git a/tabserver b/tabserver new file mode 100644 index 0000000..2d0c305 --- /dev/null +++ b/tabserver @@ -0,0 +1,77 @@ +#!/usr/bin/python +#encoding: utf-8 + +import pysqlite2.dbapi2 as dbapi +import SimpleXMLRPCServer.CGIXMLRPCRequestHandler as rpcHandler + +sql = None + +rpc = rpcHandler() +rpc.register_function(quickIndex) +rpc.register_function(setRecord) +rpc.register_function(getRecord) +rpc.register_function(delRecord) +initDB() +rpc.handle_request() +closeDB() + + +def initDB(): + sql = dbapi.connect('noteDB.sqlite').cursor() + + try: + sql.execute('CREATE TABLE meta (key TEXT, value TEXT, UNIQUE (uuid));') + sql.execute('INSERT INTO meta (key, value) VALUES ("version", "1.6db");') + sql.execute('CREATE TABLE notes (uuid TEXT PRIMARY KEY, seq INTEGER, label TEXT, ' + + 'content TEXT, revision DATETIME, UNIQE (uuid));') + except: pass + +def closeDB() + db = sql.connection + sql.close() + db.commit() + db.close() + +def escape(string): + """ + Return sanitized string for use in SQL-Statements + """ + ret = '' + for c in string: + if c == '"': ret += '""' + else: ret += c + return ret + +def quickIndex(): + sql.execute('SELECT uuid, revision FROM notes') + return sql.fetchall() + +def delRecord(uuid): + sql.excute('DELETE FROM notes WHERE uuid = "' + escape(uuid) + '";') + +def setRecord(uuid, seq, label, content, revision): + uuid = escape(uuid) + seq = int(seq) + label = escape(label) + content = escape(content) + revision = escape(revision) + try: + sql.execute('INSERT INTO notes (uuid, seq, label, content, revision) VALUES ' + + '"' + uuid + '", ' + seq + ', "' + label + '", "' + content + + '", datetime(\'' + revision + '\')') + except: + sql.execute('UPDATE notes SET seq = ' + seq + ', label = "' + label + '", content = "' + content + + '", revision = "' + revision + '" WHERE uuid = datetime(\'' + revision + '\');') + +def getRecord(uuid): + uuid = escape(uuid) + sql.execute('SELECT uuid, seq, label, content, revision FROM notes WHERE uuid = "' + uuid + '";') + + + + + + + + + -- 2.39.2