Jonathan Caicedo
6787e4912f
refactor: replace multiple hget calls with hmget where fields are known
...
- channel_status.py: fold output_format and output_profile_id into the
existing hmget, reducing per-client Redis calls from 3 to 1
- utils.py: collapse 2x and 3x hget per key in scan_iter loops
(get_user_active_connections) to single hmget calls
- views.py: replace 3x hget on channel metadata in the worker-join path
of stream_ts with a single hmget
2026-05-20 22:12:12 -04:00
SergeantPanda
dc649ffd88
Enhancement: Initial fmp4 support and major ts_proxy refactor
2026-05-08 17:46:47 -05:00
SergeantPanda
37922a44ab
Enhancement: Update user connection reporting in xc_get_info to reflect active connections and max connections based on user stream limits. ( Fixes #990 )
CI Pipeline / prepare (push) Waiting to run
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Blocked by required conditions
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
CI Pipeline / create-manifest (push) Blocked by required conditions
Build and Push Multi-Arch Docker Image / build-and-push (push) Waiting to run
Frontend Tests / test (push) Waiting to run
2026-04-30 20:33:30 -05:00
SergeantPanda
7964b2c2cb
fix: enhance stream termination logic to handle multiple connections on the same channel
2026-03-26 20:33:03 -05:00
SergeantPanda
46d4063524
fix: change logging level from info to debug in user connection checks
2026-03-26 20:10:03 -05:00
SergeantPanda
aa6fb033d3
fix: update user stream limit checks to include media_id and rename user_limits_settings key
2026-03-26 20:02:54 -05:00
SergeantPanda
58befaa52b
fix: correct indentation in check_user_stream_limits function
2026-03-26 19:14:46 -05:00
SergeantPanda
b671a72707
fix: resolve decode_responses migration bugs and user-limit regressions
...
Fix a wave of bugs introduced by the user-priority branch's migration
from manual .decode('utf-8') calls to decode_responses=True on the
metadata Redis client:
core/utils.py
- Rewrite _init_client: fix SyntaxError at line 138, missing
redis_password/redis_user params, cls._client corruption when
decode_responses=False was requested, and dead retry backoff logic
apps/proxy/utils.py
- Fix get_user_limit_settings() → get_user_limits_settings() (2 sites)
- Fix VOD scan key vod_persistent_connections:* → vod_persistent_connection:*
- Fix undefined channel_id in VOD loop (use content_uuid from Redis hash)
- Remove leftover print(active_connections) debug statement
- Refactor manual cursor SCAN while-loops to scan_iter()
apps/channels/tasks.py
- Fix closure bug in _d(): md.get(key) → md.get(bkey) (was reading
the outer loop variable instead of the local bytes key)
apps/proxy/ts_proxy/server.py
- Replace stale b'init_time', b'total_bytes', b'state' byte-string
key lookups and .decode() calls with plain string equivalents
apps/proxy/ts_proxy/services/channel_service.py
- Fix ChannelMetadataField.STATE.encode() / .OWNER.encode() →
.STATE / .OWNER (pre-existing, broke under decoded client)
apps/proxy/ts_proxy/views.py
- Fix ChannelMetadataField.OWNER.encode("utf-8") → .OWNER
apps/proxy/ts_proxy/client_manager.py
- Fix cid.decode('utf-8') in remove_ghost_clients(): smembers()
already returns str with decode_responses=True
2026-03-26 18:41:42 -05:00
dekzter
a19be96ced
fleshed out user limits and termination logic
2026-03-25 17:33:26 -04:00