13
13
import git
14
14
import warnings
15
15
import shutil
16
- from settings import PYTHON_EXE , RESERVATION_LIST , PERIOD_LIST
16
+ from settings import PYTHON_EXE
17
17
from tktimepicker import SpinTimePickerOld
18
18
19
19
warnings .filterwarnings ("ignore" , category = UserWarning )
31
31
from subprocess import CREATE_NEW_CONSOLE
32
32
import json
33
33
34
- # def chromeSetup():
35
- # if platform == "linux" or platform == "linux2":
36
- # CHROME = "google-chrome"
37
- # elif platform == "win32":
38
- # CHROME = s.CHROME_EXE
39
- # Popen([CHROME, "chrome://settings/","--user-data-dir={}".format(s.CHROME_USER_DATA), "--profile-directory={}".format(s.CHROME_PROFILE)])
40
-
41
34
class Window (Tk ):
42
35
def __init__ (self ) -> None :
43
36
super ().__init__ ()
@@ -112,6 +105,9 @@ def __init__(self, window) -> None:
112
105
113
106
titleLabel = TitleLabel (self , 'Main Menu' )
114
107
resybotv1Button = FrameButton (self , window , text = "Resy Bot v1" , class_frame = ResyBotv1Frame )
108
+ reservationlistButton = FrameButton (self , window , text = "Add Reservation Type" , class_frame = AddReservationFrame )
109
+ periodlistButton = FrameButton (self , window , text = "Add Period" , class_frame = AddPeriodFrame )
110
+
115
111
# extractButton = FrameButton(self, window, text="Extract PDF Diagram", class_frame=ExtractPdfFrame)
116
112
# graburlButton = FrameButton(self, window, text="Grab URLs", class_frame=GrabUrlsFrame)
117
113
# graburlVendorButton = FrameButton(self, window, text="Grab URLs By Vendor", class_frame=GrabUrlsVendorFrame)
@@ -123,15 +119,145 @@ def __init__(self, window) -> None:
123
119
# # # layout
124
120
titleLabel .grid (column = 0 , row = 0 , sticky = (W , E , N , S ), padx = 15 , pady = 5 , columnspan = 3 )
125
121
resybotv1Button .grid (column = 0 , row = 1 , sticky = (W , E , N , S ), padx = 15 , pady = 5 , columnspan = 3 )
122
+ reservationlistButton .grid (column = 0 , row = 2 , sticky = (W , E , N , S ), padx = 15 , pady = 5 , columnspan = 3 )
123
+ periodlistButton .grid (column = 0 , row = 3 , sticky = (W , E , N , S ), padx = 15 , pady = 5 , columnspan = 3 )
124
+
126
125
# extractButton.grid(column = 0, row = 2, sticky=(W, E, N, S), padx=15, pady=5, columnspan=3)
127
126
# graburlButton.grid(column = 0, row = 3, sticky=(W, E, N, S), padx=15, pady=5, columnspan=3)
128
127
# graburlVendorButton.grid(column = 0, row = 4, sticky=(W, E, N, S), padx=15, pady=5, columnspan=3)
129
128
# pdfDownloadButton.grid(column = 0, row = 5, sticky=(W, E, N, S), padx=15, pady=5, columnspan=3)
130
129
# graburlVendor2Button.grid(column = 0, row = 6, sticky=(W, E, N, S), padx=15, pady=5, columnspan=3)
131
130
# pdfDownload2Button.grid(column = 0, row = 7, sticky=(W, E, N, S), padx=15, pady=5, columnspan=3)
131
+
132
+ class AddReservationFrame (ttk .Frame ):
133
+ def __init__ (self , window ) -> None :
134
+ super ().__init__ (window )
135
+ # configure
136
+ file = open ("reservationlist.json" , "r" )
137
+ listvalue = json .load (file )
138
+ tmplist = [value for value in listvalue ]
139
+ setlist = set (tmplist )
140
+ RESERVATION_LIST = sorted (list (setlist ), key = str .casefold )
141
+
142
+ self .grid (column = 0 , row = 0 , sticky = (N , E , W , S ), columnspan = 4 )
143
+ self .config (padding = "20 20 20 20" , borderwidth = 1 , relief = 'groove' )
144
+ self .rowconfigure (0 , weight = 1 )
145
+ self .rowconfigure (1 , weight = 1 )
146
+
147
+ self .columnconfigure (0 , weight = 1 )
148
+ self .rowconfigure (0 , weight = 1 )
149
+ self .rowconfigure (1 , weight = 1 )
150
+ self .rowconfigure (2 , weight = 1 )
151
+ self .rowconfigure (3 , weight = 1 )
152
+ self .rowconfigure (4 , weight = 1 )
153
+ self .rowconfigure (5 , weight = 1 )
154
+ self .rowconfigure (6 , weight = 1 )
155
+ self .rowconfigure (7 , weight = 1 )
156
+ self .rowconfigure (8 , weight = 1 )
157
+ titleLabel = TitleLabel (self , text = "Add Reservation Type" )
158
+ valuentry = Entry (self , width = 80 )
159
+ dlist = StringVar (value = RESERVATION_LIST )
160
+ self .valueslist = Listbox (self , width = 80 , height = 10 , listvariable = dlist )
161
+ self .valueslist .bind ( "<Double-Button-1>" , self .removeValue )
162
+ addButton = ttk .Button (self , text = 'Add' , command = lambda :self .addlist (entry = valuentry , list = self .valueslist ))
163
+ saveButton = ttk .Button (self , text = 'Save' , command = lambda :self .savelist (list = self .valueslist ))
164
+ closeButton = CloseButton (self )
165
+ # layout
166
+ titleLabel .grid (column = 0 , row = 0 , sticky = (W , E , N , S ))
167
+ valuentry .grid (column = 0 , row = 1 , sticky = (W ))
168
+ addButton .grid (column = 0 , row = 1 , sticky = (E ))
169
+ self .valueslist .grid (column = 0 , row = 2 , sticky = (W ))
170
+ saveButton .grid (column = 0 , row = 3 , sticky = (W ,N ))
171
+ closeButton .grid (column = 0 , row = 8 , sticky = (E ))
172
+ def removeValue (self , event ):
173
+ selection = self .valueslist .curselection ()
174
+ for i in self .valueslist .curselection ():
175
+ messagebox .showinfo ("Message box" , f"`{ self .valueslist .get (i )} ` deleted.." )
176
+ self .valueslist .delete (selection )
177
+
178
+
179
+ def savelist (self , ** kwargs ):
180
+ with open ("reservationlist.json" , "w" ) as final :
181
+ json .dump (kwargs ['list' ].get (0 , END ), final )
182
+ messagebox .showinfo ("Message box" ,"Reservation List saved.." )
183
+
184
+ def addlist (self , ** kwargs ):
185
+ kwargs ['list' ].insert (0 , kwargs ['entry' ].get ())
186
+ kwargs ['entry' ].delete (0 , END )
187
+ messagebox .showinfo ("Message box" ,"New Reservation added.." )
188
+
189
+ class AddPeriodFrame (ttk .Frame ):
190
+ def __init__ (self , window ) -> None :
191
+ super ().__init__ (window )
192
+ # configure
193
+ file = open ("periodlist.json" , "r" )
194
+ listvalue = json .load (file )
195
+ tmplist = [value for value in listvalue ]
196
+ setlist = set (tmplist )
197
+ PERIOD_LIST = sorted (list (setlist ), key = str .casefold )
198
+
199
+ self .grid (column = 0 , row = 0 , sticky = (N , E , W , S ), columnspan = 4 )
200
+ self .config (padding = "20 20 20 20" , borderwidth = 1 , relief = 'groove' )
201
+ self .rowconfigure (0 , weight = 1 )
202
+ self .rowconfigure (1 , weight = 1 )
203
+
204
+ self .columnconfigure (0 , weight = 1 )
205
+ self .rowconfigure (0 , weight = 1 )
206
+ self .rowconfigure (1 , weight = 1 )
207
+ self .rowconfigure (2 , weight = 1 )
208
+ self .rowconfigure (3 , weight = 1 )
209
+ self .rowconfigure (4 , weight = 1 )
210
+ self .rowconfigure (5 , weight = 1 )
211
+ self .rowconfigure (6 , weight = 1 )
212
+ self .rowconfigure (7 , weight = 1 )
213
+ self .rowconfigure (8 , weight = 1 )
214
+ titleLabel = TitleLabel (self , text = "Add Period" )
215
+ valuentry = Entry (self , width = 80 )
216
+ dlist = StringVar (value = PERIOD_LIST )
217
+ self .valueslist = Listbox (self , width = 80 , height = 10 , listvariable = dlist )
218
+ self .valueslist .bind ( "<Double-Button-1>" , self .removeValue )
219
+ addButton = ttk .Button (self , text = 'Add' , command = lambda :self .addlist (entry = valuentry , list = self .valueslist ))
220
+ saveButton = ttk .Button (self , text = 'Save' , command = lambda :self .savelist (list = self .valueslist ))
221
+ closeButton = CloseButton (self )
222
+ # layout
223
+ titleLabel .grid (column = 0 , row = 0 , sticky = (W , E , N , S ))
224
+ valuentry .grid (column = 0 , row = 1 , sticky = (W ))
225
+ addButton .grid (column = 0 , row = 1 , sticky = (E ))
226
+ self .valueslist .grid (column = 0 , row = 2 , sticky = (W ))
227
+ saveButton .grid (column = 0 , row = 3 , sticky = (W ,N ))
228
+ closeButton .grid (column = 0 , row = 8 , sticky = (E ))
229
+ def removeValue (self , event ):
230
+ selection = self .valueslist .curselection ()
231
+ for i in self .valueslist .curselection ():
232
+ messagebox .showinfo ("Message box" , f"`{ self .valueslist .get (i )} ` deleted.." )
233
+ self .valueslist .delete (selection )
234
+
235
+
236
+ def savelist (self , ** kwargs ):
237
+ with open ("periodlist.json" , "w" ) as final :
238
+ json .dump (kwargs ['list' ].get (0 , END ), final )
239
+ messagebox .showinfo ("Message box" ,"Period List saved.." )
240
+
241
+ def addlist (self , ** kwargs ):
242
+ kwargs ['list' ].insert (0 , kwargs ['entry' ].get ())
243
+ kwargs ['entry' ].delete (0 , END )
244
+ messagebox .showinfo ("Message box" ,"New Period added.." )
245
+
132
246
class ResyBotv1Frame (ttk .Frame ):
133
247
def __init__ (self , window ) -> None :
134
248
super ().__init__ (window )
249
+ file = open ("reservationlist.json" , "r" )
250
+ listvalue = json .load (file )
251
+ tmplist = [value for value in listvalue ]
252
+ setlist = set (tmplist )
253
+ RESERVATION_LIST = sorted (list (setlist ), key = str .casefold )
254
+
255
+ file = open ("periodlist.json" , "r" )
256
+ listvalue = json .load (file )
257
+ tmplist = [value for value in listvalue ]
258
+ setlist = set (tmplist )
259
+ PERIOD_LIST = sorted (list (setlist ), key = str .casefold )
260
+
135
261
# configure
136
262
self .grid (column = 0 , row = 0 , sticky = (N , E , W , S ), columnspan = 4 )
137
263
self .config (padding = "20 20 20 20" , borderwidth = 1 , relief = 'groove' )
0 commit comments