mirror of
https://github.com/Dispatcharr/Dispatcharr.git
synced 2026-01-23 18:54:58 +00:00
90 lines
2.9 KiB
Python
90 lines
2.9 KiB
Python
"""
|
|
Defines Redis key patterns used throughout the TS proxy service.
|
|
Centralizing these key patterns makes it easier to maintain and change them if needed.
|
|
"""
|
|
|
|
class RedisKeys:
|
|
@staticmethod
|
|
def channel_metadata(channel_id):
|
|
"""Key for channel metadata hash"""
|
|
return f"ts_proxy:channel:{channel_id}:metadata"
|
|
|
|
@staticmethod
|
|
def buffer_index(channel_id):
|
|
"""Key for tracking buffer index"""
|
|
return f"ts_proxy:channel:{channel_id}:buffer:index"
|
|
|
|
@staticmethod
|
|
def buffer_chunk(channel_id, chunk_index):
|
|
"""Key for specific buffer chunk"""
|
|
return f"ts_proxy:channel:{channel_id}:buffer:chunk:{chunk_index}"
|
|
|
|
@staticmethod
|
|
def buffer_chunk_prefix(channel_id):
|
|
"""Prefix for buffer chunks"""
|
|
return f"ts_proxy:channel:{channel_id}:buffer:chunk:"
|
|
|
|
@staticmethod
|
|
def channel_stopping(channel_id):
|
|
"""Key indicating channel is stopping"""
|
|
return f"ts_proxy:channel:{channel_id}:stopping"
|
|
|
|
@staticmethod
|
|
def client_stop(channel_id, client_id):
|
|
"""Key requesting client stop"""
|
|
return f"ts_proxy:channel:{channel_id}:client:{client_id}:stop"
|
|
|
|
@staticmethod
|
|
def events_channel(channel_id):
|
|
"""PubSub channel for events"""
|
|
return f"ts_proxy:events:{channel_id}"
|
|
|
|
@staticmethod
|
|
def switch_request(channel_id):
|
|
"""Key for stream switch request"""
|
|
return f"ts_proxy:channel:{channel_id}:switch_request"
|
|
|
|
@staticmethod
|
|
def channel_owner(channel_id):
|
|
"""Key for storing channel owner worker ID"""
|
|
return f"ts_proxy:channel:{channel_id}:owner"
|
|
|
|
@staticmethod
|
|
def clients(channel_id):
|
|
"""Key for set of client IDs"""
|
|
return f"ts_proxy:channel:{channel_id}:clients"
|
|
|
|
@staticmethod
|
|
def last_client_disconnect(channel_id):
|
|
"""Key for last client disconnect timestamp"""
|
|
return f"ts_proxy:channel:{channel_id}:last_client_disconnect_time"
|
|
|
|
@staticmethod
|
|
def connection_attempt(channel_id):
|
|
"""Key for connection attempt timestamp"""
|
|
return f"ts_proxy:channel:{channel_id}:connection_attempt_time"
|
|
|
|
@staticmethod
|
|
def last_data(channel_id):
|
|
"""Key for last data timestamp"""
|
|
return f"ts_proxy:channel:{channel_id}:last_data"
|
|
|
|
@staticmethod
|
|
def switch_status(channel_id):
|
|
"""Key for stream switch status"""
|
|
return f"ts_proxy:channel:{channel_id}:switch_status"
|
|
|
|
@staticmethod
|
|
def worker_heartbeat(worker_id):
|
|
"""Key for worker heartbeat"""
|
|
return f"ts_proxy:worker:{worker_id}:heartbeat"
|
|
|
|
@staticmethod
|
|
def transcode_active(channel_id):
|
|
"""Key indicating active transcode process"""
|
|
return f"ts_proxy:channel:{channel_id}:transcode_active"
|
|
|
|
@staticmethod
|
|
def client_metadata(channel_id, client_id):
|
|
"""Key for client metadata hash"""
|
|
return f"ts_proxy:channel:{channel_id}:clients:{client_id}"
|