This website requires JavaScript.
e3a65d8052
fix: use StdRng for shuffling indices in fill_block function
master
Gabriel Kaszewski
2026-03-20 23:12:44 +01:00
f45ca77b79
fix: format code for improved readability and consistency
Gabriel Kaszewski
2026-03-20 01:57:22 +01:00
a5c31ef8a9
fix(frontend): restore plain type labels in grouped sidebar
Gabriel Kaszewski
2026-03-20 01:56:11 +01:00
3662a5ab9e
fix(frontend): suppress shows when type filter active; clarify grouped type labels
Gabriel Kaszewski
2026-03-20 01:53:13 +01:00
137251fe37
fix(frontend): restore ALL sentinel in sidebar to fix hydration mismatch
Gabriel Kaszewski
2026-03-20 01:33:27 +01:00
8101734c63
feat(frontend): add useLibraryShows and useLibrarySeasons hooks
Gabriel Kaszewski
2026-03-20 01:29:55 +01:00
6cf8a6d5e3
feat(frontend): implement grouped/drilldown view in library grid
Gabriel Kaszewski
2026-03-20 01:23:33 +01:00
c5317cb639
feat(frontend): add viewMode/drilldown state to library page
Gabriel Kaszewski
2026-03-20 01:21:54 +01:00
5f66493558
feat(api): add /library/shows and /library/shows/:name/seasons routes + season filter
Gabriel Kaszewski
2026-03-20 01:19:31 +01:00
5cc4cde223
feat(frontend): add ShowTile, SeasonTile, BreadcrumbNav components
Gabriel Kaszewski
2026-03-20 01:19:08 +01:00
5b89481104
feat(frontend): extend schedule dialog to support show/series selection
Gabriel Kaszewski
2026-03-20 01:19:00 +01:00
33338ac100
feat(frontend): make library sidebar drilldown-aware
Gabriel Kaszewski
2026-03-20 01:18:52 +01:00
66eef2c82e
feat(frontend): add useLibraryShows and useLibrarySeasons hooks
Gabriel Kaszewski
2026-03-20 01:18:34 +01:00
6f1a4e19d3
feat(infra): implement list_shows, list_seasons + season_number filter
Gabriel Kaszewski
2026-03-20 01:16:02 +01:00
dd69470ee4
feat(frontend): add ShowSummary, SeasonSummary types + library shows/seasons API methods
Gabriel Kaszewski
2026-03-20 01:14:43 +01:00
23722a771b
feat(domain): add ShowSummary, SeasonSummary types + ILibraryRepository methods
Gabriel Kaszewski
2026-03-20 01:13:00 +01:00
4cf7fdc1c2
feat(frontend): add library sync interval + sync now to admin settings panel
Gabriel Kaszewski
2026-03-20 00:38:04 +01:00
91271bd83c
feat(frontend): library page, components, and schedule/add-to-block dialogs (tasks 11-14)
Gabriel Kaszewski
2026-03-20 00:35:40 +01:00
49c7f7abd7
feat(frontend): add useLibrarySearch, useLibrarySyncStatus, useTriggerSync, useAdminSettings hooks
Gabriel Kaszewski
2026-03-20 00:30:44 +01:00
978ad1cdb0
feat(frontend): add library paged types, syncStatus/triggerSync/admin API methods
Gabriel Kaszewski
2026-03-20 00:30:03 +01:00
e1a885dcc9
fix(api): mount admin settings routes at /admin/settings (not /admin/library/settings)
Gabriel Kaszewski
2026-03-20 00:28:24 +01:00
e849548e9e
feat(api): replace live-provider library routes with DB-backed routes; add sync + admin settings endpoints
Gabriel Kaszewski
2026-03-20 00:27:06 +01:00
d92d629fbc
feat(api): wire library_repo, app_settings_repo, library_sync_adapter into AppState; start scheduler
Gabriel Kaszewski
2026-03-20 00:23:25 +01:00
aa5e3c28aa
feat(api): add library sync background task
Gabriel Kaszewski
2026-03-20 00:23:22 +01:00
64138b07e4
feat(infra): add FullSyncAdapter for library sync
Gabriel Kaszewski
2026-03-20 00:19:45 +01:00
6732576d06
feat(infra): add SqliteAppSettingsRepository
Gabriel Kaszewski
2026-03-20 00:17:05 +01:00
a3a421c0ac
feat(infra): add SqliteLibraryRepository
Gabriel Kaszewski
2026-03-20 00:15:01 +01:00
c6c93766c7
refactor(domain): remove redundant IAppSettingsRepository re-export; add TODO for Jellyfin enrichment
Gabriel Kaszewski
2026-03-20 00:11:30 +01:00
e101b44fa5
feat(domain): add library types, LibrarySyncAdapter, ILibraryRepository, IAppSettingsRepository; extend MediaItem with thumbnail_url and collection_id
Gabriel Kaszewski
2026-03-20 00:08:10 +01:00
666b1f2753
feat(db): add missing indexes to library migrations
Gabriel Kaszewski
2026-03-20 00:03:27 +01:00
a7c3f1f92e
feat(db): add library_items, library_sync_log, app_settings migrations
Gabriel Kaszewski
2026-03-20 00:01:34 +01:00
187cd064fb
docs: add library management implementation plan
Gabriel Kaszewski
2026-03-19 23:57:05 +01:00
4cc0e155bd
docs: add library management design spec
Gabriel Kaszewski
2026-03-19 23:43:37 +01:00
175d0bb0bb
fix(tests): add missing refresh_expiry_days param to JwtConfig::new in tests
Gabriel Kaszewski
2026-03-19 23:03:36 +01:00
311fdd4006
feat: multi-instance provider support
Gabriel Kaszewski
2026-03-19 22:54:41 +01:00
373e1c7c0a
fix: remove default-run entry from Cargo.toml
Gabriel Kaszewski
2026-03-19 22:34:09 +01:00
d2412da057
feat(auth): refresh tokens + remember me
Gabriel Kaszewski
2026-03-19 22:24:26 +01:00
8bdd5e2277
fix(infra): deserialize channel schedule_config via ScheduleConfigCompat for V1 compat
Gabriel Kaszewski
2026-03-17 14:56:09 +01:00
26343b08f8
fix: test mocks for new trait methods, V1 schedule_config re-import, stale comments
Gabriel Kaszewski
2026-03-17 14:53:23 +01:00
6d350940b9
feat(frontend): schedule history dialog with rollback, wire ConfigHistorySheet
Gabriel Kaszewski
2026-03-17 14:48:39 +01:00
ba6abad602
feat(frontend): weekly grid editor with day tabs and copy shortcut
Gabriel Kaszewski
2026-03-17 14:46:34 +01:00
c0da075f03
feat(frontend): config history sheet with pin and restore
Gabriel Kaszewski
2026-03-17 14:45:00 +01:00
6bfb148e39
feat(frontend): config history and schedule rollback hooks
Gabriel Kaszewski
2026-03-17 14:43:12 +01:00
45c05b5720
fix: snapshot existing config before update; rollback returns 200
Gabriel Kaszewski
2026-03-17 14:41:57 +01:00
bd498b9bcb
feat(frontend): ScheduleConfig V2 types, weekday schema, export update
Gabriel Kaszewski
2026-03-17 14:39:19 +01:00
20e80ac28e
feat: config history — auto-snapshot on update, list/pin/restore endpoints
Gabriel Kaszewski
2026-03-17 14:39:09 +01:00
ad3a73f061
feat: schedule history — list, detail, rollback endpoints
Gabriel Kaszewski
2026-03-17 14:38:51 +01:00
c0fb8f69de
feat(infra): implement config snapshot repository methods
Gabriel Kaszewski
2026-03-17 14:32:04 +01:00
8b8e8a8d8c
fix(mcp): update block mutations for ScheduleConfig V2 day_blocks
Gabriel Kaszewski
2026-03-17 14:32:02 +01:00
05d2d77515
feat(infra): schedule history list, get-by-id, delete-after methods
Gabriel Kaszewski
2026-03-17 14:32:02 +01:00
8b701745bf
fix(api): update block lookups to use all_blocks() after ScheduleConfig V2
Gabriel Kaszewski
2026-03-17 14:31:24 +01:00
a79ee1b228
feat(domain): 7-day generation window, day_blocks lookup by weekday
Gabriel Kaszewski
2026-03-17 14:29:10 +01:00
d8e39c66be
feat(infra): add channel_config_snapshots migration
Gabriel Kaszewski
2026-03-17 14:28:35 +01:00
055937fc3d
fix(domain): use ChannelId type in patch_config_snapshot_label
Gabriel Kaszewski
2026-03-17 14:27:41 +01:00
1338f6bace
feat(domain): extend ChannelRepository and ScheduleRepository ports for history
Gabriel Kaszewski
2026-03-17 14:25:51 +01:00
995f5b1339
feat(domain): add ChannelConfigSnapshot entity
Gabriel Kaszewski
2026-03-17 14:25:49 +01:00
22bee4f32c
feat(domain): ScheduleConfig V2 day-keyed weekly grid with V1 compat
Gabriel Kaszewski
2026-03-17 14:21:00 +01:00
5f1421f4bd
fix(domain): improve Weekday tests and document all() ordering
Gabriel Kaszewski
2026-03-17 14:18:13 +01:00
f8e8e85cb0
feat(domain): add Weekday enum with From<chrono::Weekday>
Gabriel Kaszewski
2026-03-17 14:16:16 +01:00
c550790287
feat: add find_last_slot_per_block method to schedule repositories and update related logic
Gabriel Kaszewski
2026-03-17 13:02:20 +01:00
d8dd047020
feat: implement local-files feature with various enhancements and cleanup
Gabriel Kaszewski
2026-03-17 03:00:39 +01:00
c4d2e48f73
fix(frontend): resolve all eslint warnings and errors
Gabriel Kaszewski
2026-03-17 02:40:32 +01:00
8ed8da2d90
refactor(frontend): extract logic to hooks, split inline components
Gabriel Kaszewski
2026-03-17 02:25:02 +01:00
ce92b43205
fix: show toast and redirect on expired session (401)
Gabriel Kaszewski
2026-03-17 01:37:11 +01:00
7244349e97
refactor: allow unused variable warning for db_pool in build_provider_registry
Gabriel Kaszewski
2026-03-16 04:41:08 +01:00
6aa86b6666
refactor: extract router/serve to server.rs, main is now thin orchestrator
Gabriel Kaszewski
2026-03-16 04:39:36 +01:00
e7bd66ffdf
refactor: extract background task spawning to startup.rs
Gabriel Kaszewski
2026-03-16 04:37:49 +01:00
b25ae95626
refactor: extract provider registry to provider_registry.rs
Gabriel Kaszewski
2026-03-16 04:36:41 +01:00
5949ffc63b
refactor: extract DB init to database.rs
Gabriel Kaszewski
2026-03-16 04:34:08 +01:00
29e654cabc
refactor: extract telemetry init to telemetry.rs
Gabriel Kaszewski
2026-03-16 04:33:01 +01:00
9d792249c9
feat: implement transcode settings repository and integrate with local-files provider
Gabriel Kaszewski
2026-03-16 04:24:39 +01:00
50df852416
fix: remove sqlx from API layer, read TTL from TranscodeManager, init local_files from DB on startup
Gabriel Kaszewski
2026-03-16 04:08:52 +01:00
d88afbfe2e
fix: sync cleanup_ttl_hours to transcode_settings table on provider save
Gabriel Kaszewski
2026-03-16 04:02:58 +01:00
0637504974
fix: local_files hot-reload via RwLock state fields and rebuild_registry
Gabriel Kaszewski
2026-03-16 03:58:59 +01:00
712cf1deb9
fix: local_files hot-reload via RwLock state fields + rebuild_registry local_files case
Gabriel Kaszewski
2026-03-16 03:58:36 +01:00
89036ba62d
feat: admin provider UI (types, hooks, guard, settings panel, conditional admin nav)
Gabriel Kaszewski
2026-03-16 03:38:37 +01:00
87f94fcc51
feat: admin provider routes (list/update/delete/test) with admin middleware
Gabriel Kaszewski
2026-03-16 03:34:54 +01:00
46333853d2
feat: ConfigSource enum, RwLock provider_registry, is_admin in UserResponse, available_provider_types
Gabriel Kaszewski
2026-03-16 03:30:44 +01:00
0e51b7c0f1
feat: implement SqliteProviderConfigRepository, build_provider_config_repository factory
Gabriel Kaszewski
2026-03-16 03:26:02 +01:00
4ca8690a89
feat: add admin + provider_configs migration
Gabriel Kaszewski
2026-03-16 03:24:15 +01:00
d80d4e9741
feat: add is_admin to User, count_users, ProviderConfigRepository trait, admin migration
Gabriel Kaszewski
2026-03-16 03:22:00 +01:00
b35054f23e
feat(tv-page): add subtitle track toggle functionality
Gabriel Kaszewski
2026-03-16 02:42:24 +01:00
abcf872d2d
docs: update README files to include new environment variables and local files feature
Gabriel Kaszewski
2026-03-16 02:29:42 +01:00
e805028d46
feat: add server-sent events for logging and activity tracking
Gabriel Kaszewski
2026-03-16 02:21:40 +01:00
4df6522952
feat(channel-card): add confirmation dialog for schedule regeneration
Gabriel Kaszewski
2026-03-16 01:50:05 +01:00
40f698acb7
refactor: clean up styles and improve layout in dashboard and edit channel components
Gabriel Kaszewski
2026-03-16 01:40:28 +01:00
e76167134b
feat: add webhook body template and headers support for channels
Gabriel Kaszewski
2026-03-16 01:10:26 +01:00
db461db270
webhooks (#1 )
Gabriel Kaszewski
2026-03-15 23:51:41 +00:00
2ba9bfbf2f
feat(channel-card): update TV link to include channel ID in query parameters
Gabriel Kaszewski
2026-03-15 23:59:07 +01:00
f1e2c727aa
feat(tests): add unit tests for auto-scheduler functionality
Gabriel Kaszewski
2026-03-15 23:56:52 +01:00
1102e385f3
feat(transcoding): add FFmpeg HLS transcoding support
Gabriel Kaszewski
2026-03-15 00:34:23 +01:00
ead65e6be2
feat: implement multi-provider support in media library
Gabriel Kaszewski
2026-03-14 23:59:21 +01:00
c53892159a
feat(mcp): implement media channel management and scheduling features
Gabriel Kaszewski
2026-03-14 23:19:24 +01:00
f7f4d92376
feat(docs): enhance documentation with Docker deployment and local files provider sections
Gabriel Kaszewski
2026-03-14 04:10:57 +01:00
cf92cc49c2
feat(stream): add stream quality selection and update stream URL handling
Gabriel Kaszewski
2026-03-14 04:03:54 +01:00
8f42164bce
feat: add local files provider with indexing and rescan functionality
Gabriel Kaszewski
2026-03-14 03:44:32 +01:00
9b6bcfc566
refactor(guide): improve code formatting and readability in page.tsx
Gabriel Kaszewski
2026-03-14 03:02:53 +01:00
c189056003
feat(auth): enhance error handling for token expiration and unauthorized access
Gabriel Kaszewski
2026-03-14 03:00:30 +01:00
791741fde0
feat(docs): add README with project overview, Docker instructions, and environment variables
Gabriel Kaszewski
2026-03-14 02:43:10 +01:00
0bdf7104a9
feat(casting): implement casting functionality with auto-mute and UI controls
Gabriel Kaszewski
2026-03-14 02:38:54 +01:00