Commit Graph

18 Commits

Author SHA1 Message Date
Christian Benincasa
b7b9d914c2 feat: save program media versions to DB (#1379) 2025-09-19 11:53:33 -04:00
Christian Benincasa
0f1a1ce820 feat: media library scanner + full library search
BREAKING CHANGE:

A massive paradigm shift in the way libraries and media are accessed
within Tunarr.
2025-09-15 17:39:58 -04:00
Christian Benincasa
fed7717a82 feat(scheduling)!: ability to schedule filler directly in slot schedulers (#1234)
Schedules filler lists directly to a slot in slot schedulers, even if
the filler is not currently a part of the channels programming.

* Supports 3 ordering modes, with 2 weighting modes: shuffle preferring
  short, shuffle preferring long, and shuffle. The former 2 modes
  support linear and log weighting
* When using weighted modes, filler items are randomly picked using
  their assigned weights. When a filler program is picked, its weight is
  decreased to help prevent repeats. Over time, items weights slowly
  increase back to their original weight.
* Flex time within a filler list slot does not respect the "between each
  video" setting; any leftover time to fill in a slot uses the "end of
  slot" setting.
2025-07-21 20:26:19 -04:00
Christian Benincasa
1f2e5eb7c9 feat(ui): add channel summary page (#1190) 2025-07-10 11:06:50 -04:00
Christian Benincasa
9bcef0ce58 chore(deps): upgrade zod to v4 (#1199) 2025-06-06 13:40:58 -04:00
Christian Benincasa
846ed27498 feat: support Emby as a media source (#1101) 2025-02-18 13:21:32 -05:00
Christian Benincasa
491fc2e2dc Revert "feat: support Emby as a media source (#1085)" (#1099)
This reverts commit a918176a3b.
2025-02-17 07:54:44 -05:00
Christian Benincasa
a918176a3b feat: support Emby as a media source (#1085) 2025-02-17 07:22:15 -05:00
Christian Benincasa
3a96d3d91b refactor: mint programs on the frontend (#910) 2025-01-21 13:55:15 -05:00
Christian Benincasa
bbae17d116 feat: time slot UI overhaul (#964)
Time Slots are now rendered using Tanstack React Table. The time slot UI
includes rich warnings about programs who cannot fit within their slot.
Various other improvemnts and fixes are included.
2024-11-18 15:20:17 -05:00
Christian Benincasa
8df85ab328 Implement duplicate program removal channel tool 2024-02-13 12:38:56 -05:00
Christian Benincasa
0c44b70187 Implement condensed channel lineup API (#59)
Now we return a lineup list with a similar schema to what is saved in
the DB, along with a materialized program lookup map. Materialized
program details are much larger in size than lineup lists, so this
should make things a bit snapper and help support really 'large' lineups
(i.e. Channels with slot schedules that are precalculated for a year+)

This also contains some ideas of how to streamline tv guide generation
and potentially be able to do it on the fly.

Lastly, there is a lot of code cleanup. I verified that both the web and
server packages build successfully.
2024-02-11 13:33:38 -05:00
Christian Benincasa
f57aacfe6c Minor improvements to guide page styling; still needs lots of work 2024-01-28 14:51:46 -05:00
Christian Benincasa
d5abfedafb Beginnings of new channel + state mgmt
Other fixes around the place

Also looking into how we're going to redesign the slotting algo to make
it a bit more extensible
2024-01-15 14:47:44 -05:00
Christian Benincasa
4d6596ebf7 Updating lineup (#1)
* Checkpointing for handoff to workstation

* Checkpointing for a switch off to laptop

* First cut at updating lineup
2024-01-10 15:44:46 -05:00
Christian Benincasa
72a0cc5b1e Ditching idea of separate channel db files for now. Refocusing on stabilizing types and API 2023-12-01 09:29:05 -05:00
Christian Benincasa
06c34b8dae More updates to programming config 2023-11-30 10:57:50 -05:00
Christian Benincasa
d5707e5229 Trying to get direct streaming working to the web. Also made a new packge with shared types between frontend/backend 2023-11-11 06:16:27 -05:00