diff --git a/Pipfile b/Pipfile index c0aebbe..7c15120 100644 --- a/Pipfile +++ b/Pipfile @@ -6,6 +6,7 @@ name = "pypi" [packages] orjson = "*" "discord.py" = {extras = ["voice"], version = "*"} +websockets = "*" [dev-packages] mypy = "*" diff --git a/pomice/enums.py b/pomice/enums.py index 1e963de..513b0dc 100644 --- a/pomice/enums.py +++ b/pomice/enums.py @@ -54,6 +54,8 @@ class TrackType(Enum): TrackType.HTTP defines that the track is from an HTTP source. TrackType.LOCAL defines that the track is from a local source. + + TrackType.OTHER defines that the track is from an unknown source (possible from 3rd-party plugins). """ # We don't have to define anything special for these, since these just serve as flags @@ -63,6 +65,11 @@ class TrackType(Enum): APPLE_MUSIC = "apple_music" HTTP = "http" LOCAL = "local" + OTHER = "other" + + @classmethod + def _missing_(cls, _: object) -> "TrackType": + return cls.OTHER def __str__(self) -> str: return self.value @@ -79,6 +86,8 @@ class PlaylistType(Enum): PlaylistType.SPOTIFY defines that the playlist is from Spotify PlaylistType.APPLE_MUSIC defines that the playlist is from Apple Music. + + PlaylistType.OTHER defines that the playlist is from an unknown source (possible from 3rd-party plugins). """ # We don't have to define anything special for these, since these just serve as flags @@ -86,6 +95,11 @@ class PlaylistType(Enum): SOUNDCLOUD = "soundcloud" SPOTIFY = "spotify" APPLE_MUSIC = "apple_music" + OTHER = "other" + + @classmethod + def _missing_(cls, _: object) -> "PlaylistType": + return cls.OTHER def __str__(self) -> str: return self.value