-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsaveit.py
147 lines (113 loc) · 3.44 KB
/
saveit.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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# SaveIt v.1
import sys
import pickle
# Note w/ title, meta data and txt data
class note:
# title
def __init__(self, title):
self.title = title
self.meta = []
self.metaIdx = 0
self.txt = []
self.txtIdx = 0
self.nextNote = None
def getTitle(self):
return self.title
def newTitle(self, title):
self.title = title
def findTitle(self, title):
return title in self.title
def findInAny(self, find):
if (find in self.title) or (find in self.meta) or (find in self.txt):
return True
else:
return False
# meta data
def addMeta(self, meta):
self.meta.append(meta)
self.metaIdx += 1
def getMeta(self):
return self.meta
def getNumbMeta(self):
return self.metaIdx
def eraseMeta(self):
self.meta = []
self.metaIdx = 0
def findMeta(self, meta):
return meta in self.meta
# text
def addTxtLine(self, txt):
self.txt.append(txt)
self.txtIdx += 1
def getTxt(self):
return self.txt
def getNumbTxt(self):
return self.txtIdx
def eraseTxt(self):
self.txt = []
self.txtIdx = 0
def findTxt(self, txt):
return txt in self.txt
# linked list of notes
def addNextNote(self, note):
self.nextNote = note
def getNextNote(self):
return self.nextNote
class noteContainer:
def __init__(self):
self.rootNote = None
self.numbNotes = 0
currentNote = self.rootNote
while not(currentNote == None):
currentNote = currentNote.getNextNote()
self.numbNotes += 1
def addNote(self, note):
if self.rootNote == None:
self.rootNote = note
else:
nextNote = self.rootNote.getNextNote()
currentNote = self.rootNote()
while not(nextNote == None):
currentNote = self.nextNote
nextNote = self.nextNote.getNextNote()
currentNote.addNextNote(note)
self.numbNotes += 1
def getRootNote(self):
return self.rootNote
def getNumbNotes(self):
return self.numbNotes
def eraseNotes(self):
self.numbNotes = 0
self.rootNote = none
class fileHandler:
def __init__(self):
print "Open SaveIt data"
def loadFile(self, fileName="saveit.dat"):
try:
self.dataFile = open(fileName, 'rb')
self.container = pickle.load(self.dataFile)
self.dataFile.close()
return self.container
except:
self.container = noteContainer()
return self.container
def saveFile(self, fileName="saveit.dat"):
self.dataFile = open(fileName, 'wb')
pickle.dump(self.container, self.dataFile, pickle.HIGHEST_PROTOCOL)
self.dataFile.close()
return True
def saveItMenu():
print "--------------------------------------------"
print "-a / -add Add note"
print "-l / -list List notes"
print "-e / -edit Edit note"
print "-d / -delete Delete note"
print "--------------------------------------------"
def main(argv):
saveItMenu()
fhandler = fileHandler()
container = fhandler.loadFile("saveit.dat")
root = container.getRootNote()
fhandler.saveFile("saveit.dat")
if __name__ == "__main__":
main(sys.argv)