216 Commits

Author SHA1 Message Date
Christian Benincasa
8933b9873b chore: update hls.js to latest version 2026-03-19 15:44:22 -04:00
Christian Benincasa
12cccc1540 fix: remove built-in changelog from system page 2026-03-18 16:15:43 -04:00
Christian Benincasa
696eb9eca1 test: initial frontend testing setup 2026-02-16 14:41:58 -05:00
Christian Benincasa
f25f3f599f feat: add support for loudnorm audio filter
Allows for better loudness normalization vs straight volume adjustment
using the ffmpeg loudnorm filter. The i, lra, and tp values are all
configurable in the advanced transcode settings.
2026-02-15 08:20:31 -05:00
Christian Benincasa
75ee6a3c43 fix: remove dataloader
more trouble than it's worth
2026-01-29 20:55:58 -05:00
Christian Benincasa
dd96615401 chore: bump pnpm to latest (10.28.0) 2026-01-18 12:53:41 -05:00
Christian Benincasa
ab3624675c feat(server): implement simple log roller (#609)
Adds a pino destination that performs rudimentary log rotation based on
file size / schedule / both. The rotation can also be configured to only
keep a certain number of logs.

This needs some UI work so I haven't actually hooked it into the logger
yet.
2026-01-15 14:40:13 -05:00
Christian Benincasa
580091aa73 feat: add local music track library scanner (#1585) 2026-01-14 18:16:17 -05:00
Christian Benincasa
d7f8f16197 Merge remote-tracking branch 'origin/main' into dev 2026-01-10 07:43:21 -05:00
Christian Benincasa
ff63052bc9 docs: host multiple api versions
deletes defunct verisons of OpenAPI spec
2026-01-09 15:04:30 -05:00
Christian Benincasa
5dbb9b01e6 feat: reimplementation of a visual search editor (#1533)
Next iteration of the search query builder with the following changes:
1. Split input fields for free / structed query parameters.
2. Point-n-click search builder
3. Improved tooltips / hints on the search pages
2026-01-05 15:45:02 -05:00
Christian Benincasa
7b593dfb90 chore: conditionally run release-it based on semantic changes 2026-01-03 13:16:48 -05:00
Christian Benincasa
a114d0d623 chore: linter package upgrades 2026-01-03 13:11:52 -05:00
Christian Benincasa
02923dc50f chore: attempt using bumpStrict on conventional changelog 2026-01-03 11:40:26 -05:00
Christian Benincasa
603793dfe9 chore: add test release-it configurations 2026-01-03 11:28:45 -05:00
Christian Benincasa
4c5ab4bc59 chore: update Typescript to 5.9.3 2025-12-11 15:55:11 -05:00
Christian Benincasa
a11d6f12c1 Merge remote-tracking branch 'origin/dev' into media-scanner 2025-11-30 08:39:00 -05:00
Christian Benincasa
f8a2a2464a fix: properly detect non-docker/podman container environments
Fixes: #1485
2025-11-26 09:53:15 -05:00
Christian Benincasa
fa6db00f27 feat: search parser overhaul
Overhaul of the search parser to include:
* Numeric range queries with support for both inclusive, exclusive, and
  half open ranges
* Better parsing of dates
* Virtual fields (search on "minutes" and have it translated to a
  "duration" query)
* More tests
* First class support for date fields
2025-11-19 15:15:18 -05:00
Christian Benincasa
e0f7162760 fix: revert better-sqlite update
async transactions broke; revert while i find a better alt
2025-11-08 12:38:29 -05:00
Christian Benincasa
86c305e2f3 fix: re-implement ChannelProgramGrid on new APIs (#1456) 2025-11-08 10:57:10 -05:00
Christian Benincasa
2c6ef93b56 feat: support smart collection slots in both slot editors (#1442) 2025-10-31 15:38:27 -04:00
Christian Benincasa
83bf85496b feat: allow scheduling shows that are not part of channel lineup (#1440) 2025-10-29 19:59:04 -04:00
Christian Benincasa
f4433f6648 fix: remove dependency on sharp until we can figure out x-platform packaging 2025-10-20 11:00:24 -04:00
Christian Benincasa
dcbcbdb67e chore: break circular dependency between main.tsx and Tunarr.tsx
Required to bump vite and some other things
2025-10-18 16:33:36 -04:00
Christian Benincasa
6475f8594d fix: fix binary release and bump node to 22.20.0 2025-10-18 11:42:25 -04:00
Christian Benincasa
9b93c7b6bd Merge remote-tracking branch 'origin/dev' into media-scanner 2025-10-18 10:51:33 -04:00
Christian Benincasa
5c87e84e5a chore: bump fastify version for security vuln 2025-10-18 10:28:53 -04:00
Christian Benincasa
533d3c92e2 chore: bump fastify/multipart to patch security vuln 2025-10-18 09:39:26 -04:00
Christian Benincasa
d7ddb98c1b chore: removed unused changesets/cli dep for security vuln 2025-10-18 09:23:19 -04:00
Christian Benincasa
5889913fb4 chore: update axios to fix security vuln 2025-10-18 09:21:54 -04:00
Christian Benincasa
a748408fcc feat!: implement local media libraries (#1406)
Initial implementation of local media libraries. Includes local scanners
for movie and TV library types. Saves extracted metadata locally.

Some things are missing, including:
* Saving all metadata locally, including genres, actors, etc.
* blurhash extraction - this is computationally expensive at scale and
  should be done async
* Hooking up subtitle extraction to new subtitle DB tables
2025-10-14 16:41:58 -04:00
Christian Benincasa
4e3edbea63 Merge remote-tracking branch 'origin/dev' into media-scanner 2025-10-02 08:48:15 -04:00
Christian Benincasa
50753a71ca chore: update lockfile 2025-10-02 08:12:26 -04:00
Christian Benincasa
e98cccb94d chore: cleanup turbo tasks, consolidate some shared package versions 2025-09-30 21:02:20 -04:00
Christian Benincasa
1d64d47356 chore!: fix bundler 2025-09-15 17:39:58 -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
c16b208362 fix: ensure fallback filler is looped for the duration of the stream block (#1329) 2025-09-04 15:45:48 -04:00
Christian Benincasa
f13e3bbefb feat!: expose advanced transcode parameters (#1347)
This feature is mainly to provide a migration path from legacy transcode
pipeline users to the new pipeline in preparation of the former's
deprecation and removal. In general, users should not need to use these
first set of parameters (disabling various hardware accelerated
features) as doing so implies a bug that should be fixed. However, this
should provide a more smooth path for legacy holdouts to get onto the
new pipeline and allow them to experiment with the full, new pipeline,
without potentially wrecking their existing setup (via multiple
transcode configs).

Closes #1090
2025-08-27 16:48:46 -04:00
Christian Benincasa
4314be8b9a chore: bump openapi-ts dep version to fix slow gen 2025-08-20 16:32:27 -04:00
Christian Benincasa
158245bcef refactor: generate API client from OpenAPI spec (#1336) 2025-08-20 15:44:45 -04:00
Christian Benincasa
3a6dab9b32 refactor: factor out startup services from server class (#1312) 2025-08-13 16:29:42 -04:00
Christian Benincasa
df3fb20c2c chore: add semantic-release configuration (#1308) 2025-08-11 10:29:19 -04:00
Christian Benincasa
d87f2699bf feat: add program stream details info to program dialog (#1296) 2025-08-01 09:34:13 -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
be92d10bc6 fix(streaming): include Quadro M2000, etc in special Maxwell cards that can decode HEVC 2025-07-08 21:20:05 -04:00
Christian Benincasa
6f677488c6 chore: remove unused deps 2025-07-08 10:25:46 -04:00
Christian Benincasa
3a728b2b8e refactor: remove dead nvidia decoder code; add some tests 2025-07-08 08:17:39 -04:00
Christian Benincasa
fe7736591c refactor: get all tests passing; configure at top-level 2025-07-06 20:51:18 -04:00