Initial commit for Emby Media Player HAOS HACS integration
All checks were successful
Validate / Hassfest (push) Successful in 9s
All checks were successful
Validate / Hassfest (push) Successful in 9s
This commit is contained in:
89
custom_components/emby_player/const.py
Normal file
89
custom_components/emby_player/const.py
Normal file
@@ -0,0 +1,89 @@
|
||||
"""Constants for the Emby Media Player integration."""
|
||||
|
||||
from typing import Final
|
||||
|
||||
DOMAIN: Final = "emby_player"
|
||||
|
||||
# Configuration keys
|
||||
CONF_HOST: Final = "host"
|
||||
CONF_PORT: Final = "port"
|
||||
CONF_API_KEY: Final = "api_key"
|
||||
CONF_SSL: Final = "ssl"
|
||||
CONF_USER_ID: Final = "user_id"
|
||||
CONF_SCAN_INTERVAL: Final = "scan_interval"
|
||||
|
||||
# Defaults
|
||||
DEFAULT_PORT: Final = 8096
|
||||
DEFAULT_SSL: Final = False
|
||||
DEFAULT_SCAN_INTERVAL: Final = 10 # seconds
|
||||
|
||||
# Emby ticks conversion (1 tick = 100 nanoseconds = 0.0000001 seconds)
|
||||
TICKS_PER_SECOND: Final = 10_000_000
|
||||
|
||||
# API endpoints (with /emby prefix for Emby Server)
|
||||
ENDPOINT_SYSTEM_INFO: Final = "/emby/System/Info"
|
||||
ENDPOINT_SYSTEM_PING: Final = "/emby/System/Ping"
|
||||
ENDPOINT_USERS: Final = "/emby/Users"
|
||||
ENDPOINT_SESSIONS: Final = "/emby/Sessions"
|
||||
ENDPOINT_ITEMS: Final = "/emby/Items"
|
||||
|
||||
# WebSocket
|
||||
WEBSOCKET_PATH: Final = "/embywebsocket"
|
||||
|
||||
# Device identification for Home Assistant
|
||||
DEVICE_ID: Final = "homeassistant_emby_player"
|
||||
DEVICE_NAME: Final = "Home Assistant"
|
||||
DEVICE_VERSION: Final = "1.0.0"
|
||||
|
||||
# Media types
|
||||
MEDIA_TYPE_VIDEO: Final = "Video"
|
||||
MEDIA_TYPE_AUDIO: Final = "Audio"
|
||||
|
||||
# Item types
|
||||
ITEM_TYPE_MOVIE: Final = "Movie"
|
||||
ITEM_TYPE_EPISODE: Final = "Episode"
|
||||
ITEM_TYPE_SERIES: Final = "Series"
|
||||
ITEM_TYPE_SEASON: Final = "Season"
|
||||
ITEM_TYPE_AUDIO: Final = "Audio"
|
||||
ITEM_TYPE_MUSIC_ALBUM: Final = "MusicAlbum"
|
||||
ITEM_TYPE_MUSIC_ARTIST: Final = "MusicArtist"
|
||||
ITEM_TYPE_PLAYLIST: Final = "Playlist"
|
||||
ITEM_TYPE_FOLDER: Final = "Folder"
|
||||
ITEM_TYPE_COLLECTION_FOLDER: Final = "CollectionFolder"
|
||||
ITEM_TYPE_USER_VIEW: Final = "UserView"
|
||||
|
||||
# Play commands
|
||||
PLAY_COMMAND_PLAY_NOW: Final = "PlayNow"
|
||||
PLAY_COMMAND_PLAY_NEXT: Final = "PlayNext"
|
||||
PLAY_COMMAND_PLAY_LAST: Final = "PlayLast"
|
||||
|
||||
# Playback state commands
|
||||
PLAYBACK_COMMAND_STOP: Final = "Stop"
|
||||
PLAYBACK_COMMAND_PAUSE: Final = "Pause"
|
||||
PLAYBACK_COMMAND_UNPAUSE: Final = "Unpause"
|
||||
PLAYBACK_COMMAND_NEXT_TRACK: Final = "NextTrack"
|
||||
PLAYBACK_COMMAND_PREVIOUS_TRACK: Final = "PreviousTrack"
|
||||
PLAYBACK_COMMAND_SEEK: Final = "Seek"
|
||||
|
||||
# General commands
|
||||
COMMAND_SET_VOLUME: Final = "SetVolume"
|
||||
COMMAND_MUTE: Final = "Mute"
|
||||
COMMAND_UNMUTE: Final = "Unmute"
|
||||
COMMAND_TOGGLE_MUTE: Final = "ToggleMute"
|
||||
|
||||
# WebSocket message types
|
||||
WS_MESSAGE_SESSIONS_START: Final = "SessionsStart"
|
||||
WS_MESSAGE_SESSIONS_STOP: Final = "SessionsStop"
|
||||
WS_MESSAGE_SESSIONS: Final = "Sessions"
|
||||
WS_MESSAGE_PLAYBACK_START: Final = "PlaybackStart"
|
||||
WS_MESSAGE_PLAYBACK_STOP: Final = "PlaybackStopped"
|
||||
WS_MESSAGE_PLAYBACK_PROGRESS: Final = "PlaybackProgress"
|
||||
|
||||
# Attributes for extra state
|
||||
ATTR_ITEM_ID: Final = "item_id"
|
||||
ATTR_ITEM_TYPE: Final = "item_type"
|
||||
ATTR_SESSION_ID: Final = "session_id"
|
||||
ATTR_DEVICE_ID: Final = "device_id"
|
||||
ATTR_DEVICE_NAME: Final = "device_name"
|
||||
ATTR_CLIENT_NAME: Final = "client_name"
|
||||
ATTR_USER_NAME: Final = "user_name"
|
||||
Reference in New Issue
Block a user