/
/
/
1"""Constants for Phish.in provider."""
2
3from typing import Final
4
5# API Configuration
6API_BASE_URL: Final[str] = "https://phish.in/api/v2"
7REQUEST_TIMEOUT: Final[int] = 30
8DEFAULT_LIMIT: Final[int] = 100
9MAX_SEARCH_RESULTS: Final[int] = 50
10
11# Provider metadata
12PROVIDER_DOMAIN: Final[str] = "phishin"
13PROVIDER_NAME: Final[str] = "Phish.in"
14
15# Phish artist information
16PHISH_ARTIST_NAME: Final[str] = "Phish"
17PHISH_ARTIST_ID: Final[str] = "phish"
18PHISH_MUSICBRAINZ_ID: Final[str] = "e01646f2-2a04-450d-8bf2-0d993082e058"
19PHISH_DISCOGS_ID: Final[str] = "252354"
20PHISH_TADB_ID: Final[str] = "112677"
21# The API serves a single artist and exposes no genre info, so use fixed genres
22PHISH_GENRES: Final[frozenset[str]] = frozenset({"Jam Band", "Progressive Rock", "Funk Rock"})
23
24# Fallback image for albums without artwork
25FALLBACK_ALBUM_IMAGE: Final[str] = (
26 "https://raw.githubusercontent.com/music-assistant/music-assistant.io/refs/heads/main/public/assets/icons/phish-logo.png"
27)
28
29# API endpoints
30ENDPOINTS = {
31 "shows": "/shows",
32 "show_by_date": "/shows/{date}",
33 "shows_day_of_year": "/shows/day_of_year/{date}",
34 "random_show": "/shows/random",
35 "songs": "/songs",
36 "song_by_slug": "/songs/{slug}",
37 "tracks": "/tracks",
38 "track_by_id": "/tracks/{id}",
39 "tours": "/tours",
40 "tour_by_slug": "/tours/{slug}",
41 "venues": "/venues",
42 "venue_by_slug": "/venues/{slug}",
43 "years": "/years",
44 "search": "/search/{term}",
45 "tags": "/tags",
46 "playlists": "/playlists",
47 "playlist_by_slug": "/playlists/{slug}",
48}
49