Dispatcharr/apps/proxy
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
..
hls_proxy Fixes clients not disconnecting. 2025-03-04 11:08:12 -06:00
management/commands Initial integration. 2025-03-03 18:40:30 -06:00
ts_proxy fix: resolve decode_responses migration bugs and user-limit regressions 2026-03-26 18:41:42 -05:00
vod_proxy fleshed out user limits and termination logic 2026-03-25 17:33:26 -04:00
__init__.py Initial integration. 2025-03-03 18:40:30 -06:00
apps.py Fix stream ownership bugs causing streams to die after 30-200s 2026-02-27 16:40:28 +01:00
config.py fix: increase ghost client multiplier to improve client detection timing 2026-03-15 20:45:55 -05:00
signals.py Initial integration. 2025-03-03 18:40:30 -06:00
tasks.py initial run of a binary and encoded redis client - no more encoding / decoding data into redis, huge PITA (still some outstanding spots I need to patch) 2025-10-25 08:15:39 -04:00
urls.py fleshed out user limits and termination logic 2026-03-25 17:33:26 -04:00
utils.py fix: resolve decode_responses migration bugs and user-limit regressions 2026-03-26 18:41:42 -05:00
views.py Initial integration. 2025-03-03 18:40:30 -06:00