diff --git a/src/webqueue2api/parser/queue.py b/src/webqueue2api/parser/queue.py index 1d65674..76107f9 100644 --- a/src/webqueue2api/parser/queue.py +++ b/src/webqueue2api/parser/queue.py @@ -1,6 +1,8 @@ import os, re +from pathlib import Path from .item import Item from .config import config +from .errors import QueueDoesNotExistError @@ -18,11 +20,17 @@ class Queue: name: The name of the queue. items: A list of Items in the queue. jsonData: A JSON serializable representation of the Queue. + + Raises: + QueueDoesNotExistError: If a queue's directory does not exist on the filesystem. """ def __init__(self, name: str) -> None: self.name = name - self.__directory = config.queue_directory + "/" + self.name + "/" + self.__directory = Path(config.queue_directory, self.name) + if not self.__directory.exists(): + raise QueueDoesNotExistError(str(self.__directory)) + self.items = self.__getItems() self.jsonData = { @@ -39,9 +47,9 @@ def __getItems(self) -> list: items = [] for item in os.listdir(self.__directory): - itemPath = self.__directory + "/" + item + item_path = Path(self.__directory, item) - isFile = True if os.path.isfile(itemPath) else False + isFile = True if os.path.isfile(item_path) else False if isFile and isValidItemName(item): items.append(Item(self.name, item))