diff --git a/src/webqueue2api/parser/utilities.py b/src/webqueue2api/parser/utilities.py index 2baa224..e0f7b73 100644 --- a/src/webqueue2api/parser/utilities.py +++ b/src/webqueue2api/parser/utilities.py @@ -46,4 +46,47 @@ def getValidQueues() -> list: if isDirectory and isValid: queues.append(file) - return queues \ No newline at end of file + return queues + +def getQueueCounts() -> list: + """Returns a list of dictionaries with the number of items in each queue. + + Example: + [ + { + name: "me", + number_of_items: 42 + }, + { + name: "bidc", + number_of_items: 3 + } + ] + + Returns: + list: Dictionaries with the number of items in each queue. + """ + queueInfo = [] + for queue in getValidQueues(): + possibleItems = os.listdir(queueDirectory + "/" + queue) + validItems = [isValidItemName for file in possibleItems] + queueInfo.append( {"name": queue, "number_of_items": len(validItems)} ) + + # Sorts list of queue info alphabetically + sortedQueueInfo = sorted(queueInfo, key = lambda queueInfoList: queueInfoList['name']) + + return sortedQueueInfo + + +def loadQueues() -> list: + """Return a list of Queues for each queue. + + Returns: + list: list of Queues for each queue. + """ + queues = [] + + for queue in getValidQueues(): + queues.append(Queue(queue)) + + return queuesG \ No newline at end of file