foxygit / ytmdl Log in
commits tags

/src/ytmdl/queue.py · 764 B

raw
from __future__ import annotations

import uuid
from dataclasses import dataclass, field
from enum import Enum


class Status(str, Enum):
    PENDING = "pending"
    RESOLVING = "resolving"
    DOWNLOADING = "downloading"
    DONE = "done"
    ERROR = "error"


STATUS_GLYPH = {
    Status.PENDING: "",  # nf-fa-clock_o
    Status.RESOLVING: "",  # nf-fa-refresh
    Status.DOWNLOADING: "",  # nf-fa-download
    Status.DONE: "",  # nf-fa-check
    Status.ERROR: "",  # nf-fa-times
}


@dataclass
class QueueItem:
    url: str
    title: str = ""
    subdir: str = ""
    status: Status = Status.PENDING
    percent: float = 0.0
    speed: str = ""
    eta: str = ""
    error: str = ""
    id: str = field(default_factory=lambda: uuid.uuid4().hex)