Files
votify/votify/interface/exceptions.py
T

86 lines
2.3 KiB
Python

from typing import Any
from ..utils import VotiyException
class VotifyInterfaceException(VotiyException):
pass
class VotifyUrlParseException(VotifyInterfaceException):
def __init__(self, url: str):
super().__init__(f"Failed to parse Spotify URL: {url}")
self.url = url
class VotifyUnsupportedMediaTypeException(VotifyInterfaceException):
def __init__(self, media_type: str):
super().__init__(f"Unsupported URL media type: {media_type}")
self.media_type = media_type
class VotifyMediaException(VotifyInterfaceException):
def __init__(self, message: str, media_id: str, media_metadata: dict | None = None):
super().__init__(f"{message}: {media_id}")
self.media_id = media_id
self.media_metadata = media_metadata
class VotifyMediaFlatFilterException(VotifyMediaException):
def __init__(
self,
media_id: str,
media_metadata: dict | None = None,
result: Any = None,
):
super().__init__(
"Media filtered out by flat filter",
media_id=media_id,
media_metadata=media_metadata,
)
self.result = result
class VotifyNoCdmException(VotifyMediaException):
def __init__(self, media_id: str, media_metadata: dict | None = None):
super().__init__(
"Content requires a CDM but no .wvd file was provided",
media_id=media_id,
media_metadata=media_metadata,
)
class VotifyMediaNotFoundException(VotifyMediaException):
def __init__(self, media_id: str, media_metadata: dict | None = None):
super().__init__(
"Media not found",
media_id=media_id,
media_metadata=media_metadata,
)
class VotifyMediaUnstreamableException(VotifyMediaException):
def __init__(self, media_id: str, media_metadata: dict | None = None):
super().__init__(
"Media is not streamable",
media_id=media_id,
media_metadata=media_metadata,
)
class VotifyMediaFormatNotAvailableException(VotifyMediaException):
def __init__(
self,
media_id: str,
media_metadata: dict | None = None,
):
super().__init__(
"Selected format is not available",
media_id=media_id,
media_metadata=media_metadata,
)