Skip to content

feat: backend foundations - HTTP client, recording, scheduler, backup, local player#396

Closed
wowitsjack wants to merge 1 commit intoFredolx:mainfrom
wowitsjack:contrib/1-backend
Closed

feat: backend foundations - HTTP client, recording, scheduler, backup, local player#396
wowitsjack wants to merge 1 commit intoFredolx:mainfrom
wowitsjack:contrib/1-backend

Conversation

@wowitsjack
Copy link

Summary

Complete backend overhaul adding 6 new Rust modules and updating 5 existing ones:

  • http.rs - Centralized reqwest client with configurable proxy, user-agent (per-source and global), and connection timeout
  • recording.rs - Server-side recording with active recording management, stop signals, and automatic cleanup
  • scheduler.rs - Background EPG and source auto-refresh on configurable intervals (hours)
  • backup.rs - Full database export/import (sources, channels, groups, settings, EPG watchlist) with versioned JSON format
  • local_player.rs - MPEG-TS proxy via ffmpeg + warp, HEAD-request URL resolution for redirect streams, broadcast-based lifecycle with proper cleanup, VA-API hardware decode support
  • main.rs - Panic handler for better error reporting

Updates m3u.rs, xtream.rs, restream.rs to use centralized HTTP client. Removes dead get_user_agent_from_source from utils.rs. Adds all new settings fields, tauri commands, scheduler startup in setup, and clean exit signal handling.

Part 1 of 2 - This is the Rust backend. Part 2 adds the Angular frontend.

New settings

  • user_agent, proxy, connection_timeout (networking)
  • epg_refresh_interval, source_refresh_interval (scheduler)
  • buffer_size, player_engine (playback)

Test plan

  • cargo check passes
  • Existing functionality (play, refresh, restream) still works
  • New settings persist across restarts
  • Recording starts/stops cleanly
  • Backup export creates valid JSON, import restores correctly

@CLAassistant
Copy link

CLAassistant commented Mar 7, 2026

CLA assistant check
All committers have signed the CLA.

…, local player

Centralized HTTP client (http.rs) with proxy, user-agent, timeout.
Server-side recording system (recording.rs) with active recording
management. Background scheduler (scheduler.rs) for EPG and source
auto-refresh. Full database backup/restore (backup.rs). Local MPEG-TS
proxy (local_player.rs) with ffmpeg + warp for stream transcoding,
HEAD-request URL resolution, and broadcast-based lifecycle. All new
settings fields, commands, and exit cleanup wired in lib.rs.
@Fredolx
Copy link
Owner

Fredolx commented Mar 11, 2026

I have strong suspicision this is the work of an AI agent. Closed.

@Fredolx Fredolx closed this Mar 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants