@@ -13,7 +13,7 @@ def create_database(database, *args):
13
13
14
14
try :
15
15
16
- os .mkdir (f"databases/{ database } " ), os .mkdir (f"databases/{ database } /files" ), os .mkdir (f"databases/{ database } /tables" )
16
+ os .mkdir (f"databases/{ database } " ), os .mkdir (f"databases/{ database } /files" ), os .mkdir (f"databases/{ database } /tables" ), os . mkdir ( f"databases/ { database } /queues" )
17
17
18
18
except FileExistsError :
19
19
return Fore .LIGHTWHITE_EX + "Database already exists"
@@ -138,6 +138,69 @@ def write_in_file(database, file, *content):
138
138
return Fore .LIGHTWHITE_EX + f"Database \" { database } \" or File \" { file } \" not found!"
139
139
140
140
141
+ def create_queue (database , queue_file_name , * args ):
142
+ '''
143
+ Console command
144
+
145
+ CREATE QUEUE QueueName
146
+
147
+ or
148
+
149
+ CREATE QUE QueueName
150
+
151
+ or
152
+
153
+ CREATE Q QueueName
154
+ '''
155
+
156
+ if os .path .exists (f"databases/{ database } /queues/{ queue_file_name } .txt" ):
157
+ return Fore .LIGHTWHITE_EX + "Queue already exists"
158
+
159
+ file = open (f"databases/{ database } /queues/{ queue_file_name } .txt" , 'x' )
160
+ file .close ()
161
+
162
+ return Fore .LIGHTWHITE_EX + f"Queue \" { queue_file_name } \" was created!"
163
+
164
+
165
+ def add_to_queue (database , queue , * items ):
166
+ '''
167
+ Console command
168
+ ADD TO QueueName firstItem secondItem thirdItem
169
+ '''
170
+
171
+ if os .path .exists (f"databases/{ database } /queues/{ queue } .txt" ):
172
+ with open (f"databases/{ database } /queues/{ queue } .txt" , "a+" ) as q :
173
+ for item in items :
174
+ q .write (f"{ item } \n " )
175
+
176
+ return Fore .LIGHTWHITE_EX + "Items added to queue!"
177
+
178
+ return Fore .LIGHTWHITE_EX + f"Database \" { database } \" or Queue \" { queue } \" not found!"
179
+
180
+
181
+ def remove_from_queue (database , queue , * args ):
182
+ '''
183
+ Console command
184
+ REMOVE FROM QueueName
185
+ '''
186
+
187
+ if os .path .exists (f"databases/{ database } /queues/{ queue } .txt" ):
188
+
189
+ q = [item for item in open (f"databases/{ database } /queues/{ queue } .txt" , "r" )][1 :]
190
+
191
+ os .remove (f"databases/{ database } /queues/{ queue } .txt" )
192
+ f = open (f"databases/{ database } /queues/{ queue } .txt" , "a+" )
193
+
194
+ for item in q :
195
+ f .write (f"{ item } " )
196
+
197
+ f .close ()
198
+
199
+ return "First element from queue removed!"
200
+
201
+ return f"Queue \" { queue } \" not found!"
202
+
203
+
141
204
def check_table_content (database , table , * args ):
142
205
'''
143
206
Console command
@@ -168,6 +231,19 @@ def check_file_content(database, file_name, *border):
168
231
return []
169
232
170
233
234
+ def check_queue_content (database , queue , * args ):
235
+ '''
236
+ Console command
237
+ GET QueueName
238
+ '''
239
+
240
+ if os .path .exists (f"databases/{ database } /queues/{ queue } .txt" ):
241
+ q = [line for line in open (f"databases/{ database } /queues/{ queue } .txt" , "r" )]
242
+ return ', ' .join (q )
243
+
244
+ return f"Queue { queue } not found!"
245
+
246
+
171
247
def delete_lines (database , path , file_name , * lines ):
172
248
'''
173
249
Console command
@@ -271,6 +347,24 @@ def delete_file(database, *files):
271
347
return Fore .LIGHTWHITE_EX + "File/s deleted!"
272
348
273
349
350
+ def delete_queue (database , * queues ):
351
+ '''
352
+ Console command
353
+
354
+ One Queue:
355
+ DEL QUEUE QueueName
356
+
357
+ More Than One Queue:
358
+ DEL QUEUES FirstQueueName SecondQueueName ThirdQueueName...
359
+ '''
360
+
361
+ for queue in queues :
362
+ if os .path .exists (f"databases/{ database } /queues/{ queue } .txt" ):
363
+ os .remove (f"databases/{ database } /queues/{ queue } .txt" )
364
+
365
+ return Fore .LIGHTWHITE_EX + "Queue/s deleted!"
366
+
367
+
274
368
def code_saver (user_input , code_file , new_line ):
275
369
'''
276
370
Saves the code in the code file.
@@ -329,7 +423,7 @@ def run_program():
329
423
330
424
code_saver (operation_code , file , '\n ' )
331
425
332
- if len (operation ) >= 3 :
426
+ if len (operation ) >= 2 :
333
427
if operation [- 1 ]:
334
428
335
429
if operation [:- 1 ] == ["create" , "database" ]:
@@ -406,6 +500,15 @@ def run_program():
406
500
407
501
code_saver (text [- 3 :], file , '\n \n \n ' )
408
502
503
+ elif operation [0 ] == "create" and (operation [1 ] == "queue" or operation [1 ] == "que" or operation [1 ] == "q" ):
504
+ print (create_queue (database , operation [- 1 ]))
505
+
506
+ elif operation [0 ] == "add" and operation [1 ] == "to" :
507
+ print (add_to_queue (database , operation [2 ], * operation [3 :]))
508
+
509
+ elif operation [0 ] == "remove" and operation [1 ] == "from" :
510
+ print (remove_from_queue (database , operation [- 1 ]))
511
+
409
512
elif operation [0 ] == "get" and operation [1 ] == "all" :
410
513
411
514
lines = check_table_content (database , operation [- 1 ])
@@ -418,6 +521,9 @@ def run_program():
418
521
print ()
419
522
[print (line ) for line in lines ]
420
523
524
+ elif operation [0 ] == "get" :
525
+ print (check_queue_content (database , operation [- 1 ]))
526
+
421
527
elif len (operation ) >= 5 :
422
528
if operation [0 ] == "del" and operation [3 ] == "lines" :
423
529
try :
@@ -440,3 +546,5 @@ def run_program():
440
546
if "lines" not in operation :
441
547
print (delete_file (database , * operation [2 :]))
442
548
549
+ elif operation [0 ] == "del" and operation [1 ] == "queue" or operation [1 ] == "queues" :
550
+ print (delete_queue (database , * operation [2 :]))
0 commit comments