tabserver untestet, initial commit
authorpaul <paul@plutz.net>
Wed, 12 Jan 2011 21:39:11 +0000 (21:39 +0000)
committerpaul <paul@plutz.net>
Wed, 12 Jan 2011 21:39:11 +0000 (21:39 +0000)
svn path=/trunk/; revision=7

tabserver [new file with mode: 0644]

diff --git a/tabserver b/tabserver
new file mode 100644 (file)
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 + '";')
+
+
+
+
+
+
+
+
+