Commit Graph

24 Commits

Author SHA1 Message Date
Christian Benincasa
f52df44ef0 feat!: add support for Jellyfin media (#633)
This commit includes a huge amount of changes, including support for
adding Jellyfin servers as media sources and streaming content from
them.

These are breaking changes and touch almost every corner of the code,
but also pave the way for a lot more flexibility on the backend for
addinng different sources.

The commit also includes performance improvements to the inline modal,
lots of code cleanup, and a few bug fixes I found along the way.

Fixes #24
2024-08-22 07:41:33 -04:00
Christian Benincasa
69b14fc387 chore(dev): release 0.7.0 (#695) 2024-08-21 18:30:35 -04:00
Christian Benincasa
6d2e58f289 chore(dev): release 0.6.0 (#691) 2024-08-19 09:28:36 -04:00
Christian Benincasa
c385946800 chore(dev): release 0.5.4 (#681) 2024-08-18 10:30:54 -04:00
Christian Benincasa
bed7396b6f chore(dev): release 0.5.3 (#675) 2024-08-12 22:51:32 -04:00
Christian Benincasa
b98a856ffa chore(dev): release 0.5.2 (#664) 2024-08-05 20:37:41 -04:00
Christian Benincasa
a8d1bcacfc chore(dev): release 0.5.1 (#659) 2024-08-05 07:22:42 -04:00
Christian Benincasa
31ed587277 chore(dev): release 0.5.0 (#654) 2024-08-04 14:31:18 -04:00
Christian Benincasa
3595237631 chore(dev): release tunarr 0.4.2 (#651) 2024-08-04 11:06:13 -04:00
Christian Benincasa
bf4250df22 chore: add changesets initial config 2024-07-08 13:20:12 -04:00
Christian Benincasa
4d462d7883 Bump versions everywhere - we're gonna need a better way to do this 2024-07-08 09:47:09 -04:00
Christian Benincasa
e2448debaa Cleaning up + optimizing (#277)
* Cleaning up scary code - checkpoint 1

* Massive server cleanup + optimizations - Part 1

* Bump mikro-orm versions
* Pilot using tagged types (type branding) on FillerShow.uuid for
  (maybe) better type checking
* Start hacking away at the 'helperFuncs' file inherited from DTV
    * Optimizations in getCurrentProgramAndTimeElapsed to reuse the
      precalculated 'startTimeOffsets' from the channel lineup
    * More type checks
    * Untangling some of the crazier types I added earlier on to make
      sense of the original code
    * General cleanup + best practices
* Move util.ts to util/index.ts
* No longer using req.hijack() to send raw video stream to frontend -
  this cleaned up a lot of code
* Introduce VideoStream + ConcatStream classes which hold functionality
  related to streaming that used to be in the monolithic video.ts
* Simplify ChannelCache and break dependence on Plex IDs. This now
  caches using our internal DB IDs

Left TODO:
* Completely remove helperFuncs.ts and put the functions in a more
  appropriate place
* Subdirectories for Plex files
* Subdirectories for 'Player' classes
* Subdirectories for 'ffmpeg' classes
* Persist channel cache to disk periodically so that server restarts
  preserve that information about streaming

* Update lockfile

* Fix build
2024-04-12 07:01:59 -04:00
Christian Benincasa
e632942616 Parent metadata (#238)
* Checkpoint - new entities, migration, + fixer so we can get started quickly

* Checkpoint - hooking up relationship saving on the program update path

* Checkpoint

* Another checkpoint - now relations are upserted alongside new episodes

* Augment APIs to return new season/show/artist/album metadata

* Cleanup API and standardize on new converter

* Make fixer queries better so we aren't constantly running
2024-04-05 16:27:07 -04:00
Christian Benincasa
67f2d144e2 Dynamic channels - phase 1 (#231)
* Checkpoint - dynamic channels

* Yet another checkpoint

* Bump versions - makes a ton of stuff work magically; needed a patch for ts-essentials because of https://github.com/ts-essentials/ts-essentials/issues/381

* Checkpointing

* Checkpoint
2024-04-03 15:08:31 -04:00
Christian Benincasa
2d4017f5b6 Add @microsoft/api-extractor and use experimentalDts to ensure we dont get type decl indirection. https://github.com/TanStack/query/issues/6318 seems like the same problem 2024-03-29 07:38:56 -04:00
Christian Benincasa
80703cf672 Standardize on shared/constants package and downgrade version to 0.1.0 across all packages 2024-03-20 10:49:44 -04:00
Christian Benincasa
b3a9d17d88 WIP (#153) 2024-03-07 20:45:43 -05:00
Christian Benincasa
a0cdb7600a Integrate turborepo for easier monorepo dep management and bundling (#146) 2024-03-06 12:44:11 -05:00
Christian Benincasa
5570631adc Packaging v0: Build and run server in a docker container (#139)
* This is a nightmare

* Checkpointing.... getting closer

* First cut - packaging the server in a docker container

* Remove busted bundles

* Minify build

* Some common commands for building - we're going to look into proper monorepo solutions soon

* Remove dependency on serve-static

* Add web serving, full-stack docker target, and Nvidia container support

* Remove test action graph for now
2024-03-05 13:13:26 -05:00
Christian Benincasa
478791ff18 Massive refactoring - introduce package for common code between
browser/server
2024-01-25 22:55:19 -05:00
Christian Benincasa
413c8d98f6 Working out redo of time slots service 2024-01-17 20:53:17 -05:00
Christian Benincasa
d6f9e6feeb Getting started on some Channel config views 2023-11-16 20:14:00 -05:00
Christian Benincasa
97c9fd8623 Web dev speeding up
Changes:
* Starting to centralize on Zod schemas in a shared types package -
  frontend/backend sharing tyhpes
* Skeletons of some pages. Creating some boilerplate for resuable
  react-query hooks
* Frontend touch-ups
2023-11-13 15:55:14 -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