-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathDB.py
102 lines (86 loc) · 2.71 KB
/
DB.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#!/usr/bin/python
#coding=utf-8
import sqlite3
from datetime import datetime
import time
import os
from config import APPLICATION_PATH
def initTables():
con = getDBConnection()
c = con.cursor()
c.execute('create table if not exists dailyEvent('+\
'description text,'+\
'startTime datetime,'+\
'endTime datetime,'+\
'finished boolean default 0,'+\
'timeouted boolean);')
con.commit()
con.close()
def getDBConnection():
'''
remember to close it!
'''
return sqlite3.connect(os.sep.join([APPLICATION_PATH, 'event.db']))
def getEventByPage(page, itemsPerPage):
if page < 1 or itemsPerPage < 1: return ()
con = getDBConnection()
c = con.cursor()
c.execute('select * from dailyEvent order by rowid desc limit ?,?', ((page-1)*itemsPerPage,itemsPerPage))
data = c.fetchall()
con.commit()
con.close()
return data
def getLatestEvent(count = 1):
con = getDBConnection()
c = con.cursor()
c.execute('select * from dailyEvent order by rowid desc limit ?', (count,))
data = c.fetchall()
con.commit()
con.close()
return data
class dailyEvent:
def __init__(self):
self.startTime = datetime.now()
self.timeouted = False
self.description = u'无描述'
self.endTime = datetime.now()
self.complete = False
self.stored = False
self.discarded = False
def setComplete(self):
self.complete = True
def setDiscarded(self):
self.discarded = True
def isDiscarded(self):
return self.discarded
def isComplete(self):
return self.complete
def setTimeouted(self):
self.timeouted = True
def setStartTimeNow(self):
self.startTime = datetime.now()
def setDescription(self, s):
self.description = s
def setEndTimeNow(self):
self.endTime = datetime.now()
def storeEvent(self, finished=1):
if self.stored:
return
else:
self.stored = True
finished = 1 if self.complete else 0
discarded = 1 if self.discarded else 0
con = getDBConnection()
c = con.cursor()
c.execute('insert into dailyEvent(description, startTime, endTime, timeouted, finished, discarded) values (?, ?, ?, ?, ?, ?)',
(unicode(self.description),
unicode(self.startTime.strftime('%Y-%m-%d %H:%M:%S')),
unicode(self.endTime.strftime('%Y-%m-%d %H:%M:%S')),
1 if self.timeouted else 0,
finished,
discarded),
)
con.commit()
con.close()
if __name__ == '__main__':
print getLatestEvent(2)