Refector code

This commit is contained in:
iamdoubz committed 2026-07-24 05:34:07 -05:00
1 parent 6ab627ba60
commit 2fbbf4b0fc
23 files changed
+1518 -1069

No files matched your search

+147
View File
@@ -0,0 +1,147 @@
# =============================================================================
# Radio station configuration
# ---------------------------------------------------------------------------
# Copy this file to ".env" and edit the values. Every station only needs to
# touch this file — no PHP changes required.
#
# cp .env.example .env
#
# Booleans accept: true/false, 1/0, yes/no, on/off.
# Lines starting with # are comments. Quote values that contain spaces or #.
# =============================================================================
# -----------------------------------------------------------------------------
# Branding & metadata
# -----------------------------------------------------------------------------
SITE_NAME="My Radio"
# Short name used for og:site_name (defaults to SITE_NAME).
SITE_SHORT_NAME="My Radio"
SITE_TAGLINE="Streaming 24/7"
SITE_DESCRIPTION="Listen to my internet radio station 24/7 with all the music you can handle!"
SITE_KEYWORDS="radio, internet radio, music, live stream"
# Public URL of this site, with trailing slash. Used for canonical/OpenGraph tags.
SITE_URL="https://radio.example.com/"
SITE_LOCALE="en_US"
SITE_LANG="en"
SITE_AUTHOR=""
# -----------------------------------------------------------------------------
# SEO / icons
# -----------------------------------------------------------------------------
# OpenGraph / share image. Absolute URL recommended (falls back to album art
# at runtime once a track is playing).
OG_IMAGE="https://radio.example.com/assets/icons/og.png"
# Set true if you have dropped a full favicon set into ICONS_DIR
# (apple-touch-icon.png, favicon-32x32.png, favicon-16x16.png, site.webmanifest).
SHOW_ICONS=false
ICONS_DIR="assets/icons"
# Browser UI colors.
THEME_COLOR="#e21d31"
TILE_COLOR="#5e656e"
# -----------------------------------------------------------------------------
# Stream (the audio the browser plays)
# -----------------------------------------------------------------------------
# Public URL of your stream mount (what nginx proxies to Icecast).
STREAM_URL="https://radio.example.com/stream"
STREAM_TYPE="audio/mpeg"
# -----------------------------------------------------------------------------
# Now playing (metadata the SERVER fetches, then normalizes for the browser)
# -----------------------------------------------------------------------------
# provider: icecast | azuracast | shoutcast | custom
NOWPLAYING_PROVIDER="icecast"
# The status endpoint your PHP server fetches. This may be an internal address
# (e.g. http://127.0.0.1:8000/...) since only the server hits it.
# icecast -> http://127.0.0.1:8000/status-json.xsl
# azuracast -> https://azura.example.com/api/nowplaying/your_station_shortcode
# shoutcast -> http://127.0.0.1:8000/stats?json=1
# custom -> any URL returning JSON
NOWPLAYING_URL="http://127.0.0.1:8000/status-json.xsl"
# Icecast only: if you run multiple mounts, name the one to read (e.g. /stream).
ICECAST_MOUNT=""
# How to split a combined "Artist<delim>Title" string (Icecast/Shoutcast).
# The original dou.bet station uses " <-|-> ". Most setups use " - ".
TITLE_DELIMITER=" - "
# Polling / timeouts (seconds).
NOWPLAYING_POLL_SECONDS=10
NOWPLAYING_TIMEOUT=5
# --- custom provider only: JSON field paths (dot notation, arrays ok: a.b.0.c)
CUSTOM_ARTIST_PATH=""
CUSTOM_TITLE_PATH=""
CUSTOM_ALBUM_PATH=""
CUSTOM_ART_PATH=""
CUSTOM_LISTENERS_PATH=""
# If your feed only has a single combined field, set this instead of
# CUSTOM_ARTIST_PATH/CUSTOM_TITLE_PATH; it is split on TITLE_DELIMITER.
CUSTOM_TITLE_COMBINED_PATH=""
# -----------------------------------------------------------------------------
# Artwork & lyrics (Genius is optional)
# -----------------------------------------------------------------------------
# source: auto | provider | genius | none
# auto = use provider art if present, else Genius (if configured), else fallback
# provider = only use art the stream provider itself supplies (e.g. AzuraCast)
# genius = always look art up on Genius
# none = always use the fallback image
ARTWORK_SOURCE="auto"
FALLBACK_ART="assets/img/placeholder.svg"
# Show a "Show lyrics" button (requires a Genius token below).
LYRICS_ENABLED=true
# Genius API token. Get one at https://genius.com/api-clients (Client Access Token).
# Provide EITHER the plain token...
GENIUS_TOKEN=""
# ...OR a base64-encoded token (kept for compatibility with the original project).
GENIUS_API_BASE64=""
# -----------------------------------------------------------------------------
# Theme & colors (also drives CSS variables — restyle without editing CSS)
# -----------------------------------------------------------------------------
THEME_BG="#000000"
THEME_BG_MOBILE="#262626"
THEME_SURFACE="#1a1a1a"
THEME_TEXT="#ffffff"
THEME_MUTED="#bfbfbf"
THEME_ACCENT="#e21d31"
THEME_ACCENT_HOVER="#cf1b2d"
THEME_ACCENT_TEXT="#000000"
THEME_RADIUS="15px"
THEME_FONT="Helvetica, Calibri, Tahoma, Verdana, Arial, sans-serif"
# -----------------------------------------------------------------------------
# Listeners / history
# -----------------------------------------------------------------------------
SHOW_LISTENERS=true
# Optional: wrap the listener count in a link (e.g. a directory listing).
LISTENERS_LINK=""
# Show the slide-out "recently played" history table.
SHOW_HISTORY=true
# -----------------------------------------------------------------------------
# Analytics (optional — leave blank to disable)
# -----------------------------------------------------------------------------
MATOMO_URL=""
MATOMO_SITE_ID=""
# -----------------------------------------------------------------------------
# Runtime
# -----------------------------------------------------------------------------
TIMEZONE="UTC"
DEBUG=false
SHOW_ERRORS=false