Commit Graph
625 Commits
Author SHA1 Message Date
Michael 3232a3a226 feat: introduce EPG API with caching and TV & Recordings UI with EPG Guide, Recordings, and Season Passes tabs. 2026-03-09 10:47:30 +01:00
Michael fa88746db6 feat: introduce IPTV data models and initial Live TV UI, including EPG overlay. 2026-03-09 10:12:55 +01:00
Michael 37945b513e fix(epg): use /api/epg/ backend for full guide (48h), fix _ProgrammeCard for Map format, remove stale EpgEntry code 2026-03-09 09:07:04 +01:00
Michael 1e1687e160 fix(epg): complete rewrite of recordings_tab (XtreamService direct), fix epg_api action (get_epg), add keepAlive 2026-03-09 08:54:45 +01:00
Michael 104159e8da fix(epg): pass playlist as parameter to RecordingsTab/_EpgGuideView — was null from selectedPlaylistProvider 2026-03-09 08:44:44 +01:00
Michael 1c38b62516 fix: remove literal newline in Dart string causing build_runner syntax error 2026-03-09 08:40:22 +01:00
Michael 3e0088ecf8 fix(epg): load filtered channels from playlist provider instead of manual channel ID input 2026-03-09 08:36:41 +01:00
Michael 47fff742e0 fix(epg): use playlist.dns directly (PlaylistConfig has no serverUrl field) 2026-03-09 08:26:16 +01:00
Michael 50a6998c09 feat: add EPG TV guide, season passes (auto-recording) and unified recordings/EPG tab with 3 sub-tabs 2026-03-09 08:21:48 +01:00
Michael 4762b4edf8 feat(recordings): switch output format from mp4 to mkv for better IPTV stream compatibility 2026-03-08 23:56:43 +01:00
Michael bbf462ae05 fix(recordings): DELETE now kills FFmpeg process before removing from DB to properly stop active recordings 2026-03-08 23:54:37 +01:00
Michael 4c2e3ce600 feat: add stop recording button and POST /api/recordings/stop/<id> endpoint to kill FFmpeg process 2026-03-08 23:53:32 +01:00
Michael 0d2ad322fe fix(entrypoint): add chmod 777 on /app/recordings for Unraid nobody:users shares + update default recordings path 2026-03-08 23:46:11 +01:00
Michael 424019d01a fix(scheduler): wrap _startRecording in single try/catch to prevent server crash, fix localhost port 8080→8089 2026-03-08 23:38:57 +01:00
Michael 93cecfc6d3 fix(docker): move CACHEBUST ARG before COPY to properly invalidate Flutter web build cache 2026-03-08 23:28:16 +01:00
Michael 9107eadc73 fix(recordings): send start_time and end_time in UTC to avoid +1h timezone offset with Docker server 2026-03-08 23:19:20 +01:00
Michael c04acc2fab debug(scheduler): add verbose logging every 10s and force UTC datetime comparisons 2026-03-08 23:11:22 +01:00
Michael 60bb10fe4d fix(recordings): correct stream_url to use real live stream, resolve to absolute URL for FFmpeg, use copy mode, speed up scheduler to 10s 2026-03-08 22:43:42 +01:00
Michael 7e0837374e refactor(recordings): eliminate Router/mount, expose direct handler methods to avoid shelf_router path collision 2026-03-08 22:10:59 +01:00
Michael d91be43f27 fix(backend): move GET /recordings/logs/<id> to main router to avoid shelf_router collision with DELETE /<id> 2026-03-08 21:42:53 +01:00
Michael 989303db77 fix(ui): gracefully handle json parse error when showLogs receives 404 text string 2026-03-08 21:36:21 +01:00
Michael 9d670c0625 fix(ui): handle 404 router errors gracefully instead of crashing on json parse 2026-03-08 21:30:55 +01:00
Michael 238cb8f407 feat(recording): add immediate record button to recording modal 2026-03-08 21:28:47 +01:00
Michael f217622e4a fix(recording): create log file before ffmpeg starts to capture boot exceptions and force absolute path 2026-03-08 20:50:38 +01:00
Michael 548e4cd664 fix(recording): rename log api route to avoid shelf_router Not Found param collisions 2026-03-08 20:43:50 +01:00
Michael 966311f560 feat(recording): add ffmpeg logs writing and viewing in UI 2026-03-08 19:26:54 +01:00
Michael abbac75926 feat(ui): add recordings tab to dashboard to list scheduled and active recordings 2026-03-08 19:24:03 +01:00
Michael 40e2f30ff1 fix(docker): ensure xtremuser has write access to /app/recordings volume 2026-03-08 17:46:26 +01:00
Michael 2cba30db4d feat(ui): add date picker and force 24h format in recording modal 2026-03-08 17:34:16 +01:00
Michael 344cf51ef9 fix(backend): make proxy handler robust to timeouts and add transparent pixel fallback for picons 2026-03-08 17:28:29 +01:00
Michael b3618805a6 fix(ui): use relative url for api recording requests in flutter web 2026-03-08 16:58:07 +01:00
Michael 219d6c816f fix(ui): remove invalid backgroundColor from showDialog 2026-03-08 16:52:59 +01:00
Michael 04b8b317c3 fix(ui): resolve bracket syntax error in live tv tab 2026-03-08 10:02:51 +01:00
Michael e46a1c15b3 fix: add missing recording model import in database 2026-03-08 09:05:18 +01:00
Michael 2180572b92 feat: implement live tv recording system 2026-03-08 08:40:55 +01:00
Michael 758cbe4c43 feat: implement Xtream proxy handler with M3U8 URL rewriting, SSRF protection, and content type handling. 2026-01-07 11:31:40 +01:00
Michael 755367018a feat: Implement core server application with API routing, streaming, and static content serving. 2026-01-07 11:29:00 +01:00
Michael 1dd77bd87a feat: implement core server with API routing, middleware, and static file serving 2026-01-07 11:24:26 +01:00
Michael 5d4dfa5e05 fix: Add Docker entrypoint script with gosu to manage volume permissions and drop user privileges. 2026-01-07 11:09:42 +01:00
Michael a149bf266c chore: add detailed login logging and update startup message 2026-01-07 10:39:06 +01:00
Michael 948e405307 chore: bump cachebust to force docker rebuild 2026-01-07 10:31:59 +01:00
Michael 842862006a fix(proxy): remove auth requirement to allow browser image requests, keep ssrf protection 2026-01-07 10:16:52 +01:00
Michael 38572fa747 fix(auth): move auth check inside proxy handler after path filtering 2026-01-07 09:32:51 +01:00
Michael 37c23d575b fix(docker): use libsqlite3-dev to provide libsqlite3.so symlink for Dart FFI 2026-01-07 09:26:53 +01:00
Michael 5ad3ad9f9e fix(stream): validate streamId AFTER stripping extension 2026-01-07 09:23:37 +01:00
Michael e0612ba67f fix(docker): resolve server deps from bin/pubspec.yaml 2026-01-07 09:19:32 +01:00
Michael 3a633cd74d chore: update task.md to reflect current local Docker environment maintenance tasks. 2026-01-07 09:13:05 +01:00
Michael d1933f7500 merge: resolve Dockerfile conflict (kept optimization + nvenc support) 2026-01-07 08:44:50 +01:00
Michael 8df9a37baa feat: security overhaul (proxy ssrf fix, streaming sanitization, docker optimization) 2026-01-07 08:43:33 +01:00
Michael 7e5d50f258 feat: Add IPTV player screen for live, VOD, and series streams with comprehensive playback controls. 2026-01-03 10:57:22 +01:00