]> git.plutz.net Git - tabnote/blob - tabserver
fixed some typos and type errors
[tabnote] / tabserver
1 #!/usr/bin/python
2 #encoding: utf-8
3
4 import pysqlite2.dbapi2 as dbapi
5 import SimpleXMLRPCServer
6
7 sql = None
8
9 def initDB():
10   sql = dbapi.connect('noteDB.sqlite').cursor()
11
12   try:
13     sql.execute('CREATE TABLE meta (key TEXT, value TEXT, UNIQUE (uuid));')
14     sql.execute('INSERT INTO meta (key, value) VALUES ("version", "1.6db");')
15     sql.execute('CREATE TABLE notes (uuid TEXT PRIMARY KEY, seq INTEGER, label TEXT, ' +
16                 'content TEXT, revision DATETIME, UNIQE (uuid));')
17   except: pass
18
19 def closeDB():
20   db = sql.connection
21   sql.close()
22   db.commit()
23   db.close()
24
25 def escape(string):
26   """
27   Return sanitized string for use in SQL-Statements
28   """
29   ret = ''
30   for c in string:
31     if c == '"': ret += '""'
32     else: ret += c
33   return ret
34
35 def quickIndex():
36   sql.execute('SELECT uuid, revision FROM notes')
37   return sql.fetchall()
38
39 def delRecord(uuid):
40   sql.excute('DELETE FROM notes WHERE uuid = "' + escape(uuid) + '";')
41
42 def setRecord(uuid, seq, label, content, revision):
43   uuid = escape(uuid)
44   seq = int(seq)
45   label = escape(label)
46   content = escape(content)
47   revision = escape(revision)
48   try:
49     sql.execute('INSERT INTO notes (uuid, seq, label, content, revision) VALUES ' +
50                 '"' + uuid + '", ' + seq + ', "' + label + '", "' + content +
51                 '", datetime(\'' + revision + '\')')
52   except:
53     sql.execute('UPDATE notes SET seq = ' + seq + ', label = "' + label + '", content = "' + content +
54                 '", revision = "' + revision + '" WHERE uuid = datetime(\'' + revision + '\');')
55
56 def getRecord(uuid):
57   uuid = escape(uuid)
58   sql.execute('SELECT uuid, seq, label, content, revision FROM notes WHERE uuid = "' + uuid + '";')
59
60 rpc = SimpleXMLRPCServer.CGIXMLRPCRequestHandler()
61 rpc.register_function(quickIndex)
62 rpc.register_function(setRecord)
63 rpc.register_function(getRecord)
64 rpc.register_function(delRecord)
65 initDB()
66 rpc.handle_request()
67 closeDB()