Commit Graph

74 Commits

Author SHA1 Message Date
Maximilian Dorninger
f5253990e0 switch from APScheduler to Taskiq (#461)
This PR replaces the APScheduler lib with the Taskiq task queuing lib. 

# why

APScheduler doesn't support FastAPI's DI in tasks, this makes them quite
cumbersome to read and write since DB, Repositories and Services all
need to be instanciated manually.

Moreover, Taskiq makes it easier to start background tasks from FastAPI
requests. This enables MM to move to a more event-based architecture.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* App now uses an orchestrated async startup/shutdown and runs
background scheduling via a database-backed task queue; startup enqueues
pre-load/import/update tasks.

* **Bug Fixes**
* Improved torrent client handling with clearer conflict messages and
guidance for manual resolution.
* Enhanced logging around season, episode and metadata update
operations; minor regex/behaviour formatting preserved.

* **Chores**
* Updated dependencies to support the new task queue and connection
pooling.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-02-26 21:23:24 +01:00
Maximilian Dorninger
a643c9426d remove everything related to requests (#455)
This PR removes the requests feature. The functionality will be replaced
either by Seerr or by reimplementing it in a better way.
2026-02-22 19:46:47 +01:00
Marcel Hellwig
96b84d45db Adding some more new lints (#393)
Enable `UP` and `TRY` lint
2026-02-01 18:04:15 +01:00
Maximilian Dorninger
a39e0d204a Ruff enable type annotations rule (#362)
This PR enables the ruff rule for return type annotations (ANN), and
adds the ty package for type checking.
2026-01-06 17:07:19 +01:00
Marcel Hellwig
75406cbc64 ruff: add RET lint
lints about assign and immediatly returning a variable
2026-01-05 19:30:42 +01:00
Marcel Hellwig
acd883df21 ruff: enable PIE lint
this just removes needless pass or ...
2026-01-05 19:30:42 +01:00
Marcel Hellwig
f2141ca8b8 ruff: enable PERF lint
this complains a lot about using manual append where a list
comprehension would be more suitable
2026-01-05 19:30:42 +01:00
Marcel Hellwig
29476e2008 ruff: enable INT and N lint
this renames some files to use snake_case and add Error suffix to custom
exceptions
2026-01-05 19:30:42 +01:00
Marcel Hellwig
6e46b482cb ruff: enable A lint 2026-01-05 19:30:42 +01:00
Marcel Hellwig
1857cf501c ruff: enable RUF lint 2026-01-05 19:30:42 +01:00
Marcel Hellwig
a7bb5e1e04 Make proper use of function overloading
In preparation of the RUFF lint, I rewrote the function to use
typing.overload.
This is the proper way to accept either two arguments or one argument
2026-01-05 19:30:42 +01:00
Marcel Hellwig
ff013ac76e ruff: enable I lint 2026-01-05 19:30:42 +01:00
Marcel Hellwig
97cb3b5c1e ruff: enable EM lint 2026-01-05 19:30:42 +01:00
Maximilian Dorninger
fc691f95bb fix bugs in MovieService
fix some small bugs in MovieService that were caused by the refactor
2026-01-04 23:37:33 +01:00
maxid
dd1e5d6621 refactor: update metadata methods to include optional language parameter 2026-01-01 14:21:51 +01:00
maxid
dc7cc98a1a refactor: enhance error handling in check_if_movie_exists method 2026-01-01 14:01:44 +01:00
maxid
e14f19bd45 format files 2025-12-30 00:19:28 +01:00
maxid
7c488e4fae refactor: improve logging and correct directory deletion in service.py 2025-12-30 00:17:45 +01:00
maxid
95c22fa854 Merge branch 'master' into refactor-code
# Conflicts:
#	media_manager/movies/service.py
#	media_manager/tv/service.py
2025-12-30 00:14:24 +01:00
maxid
40130c6a37 refactor: rename AllEncompassingConfig to MediaManagerConfig 2025-12-29 23:38:17 +01:00
maxid
8de3a71bfd refactor: standardize parameter usage in movie router and service 2025-12-29 22:45:50 +01:00
Maximilian Dorninger
d3e12579ac Merge pull request #324 from briandipalma/extra-spaces
fix: only add one space between release year and release ID and fix formatting of dev guide docs
2025-12-29 22:14:14 +01:00
Brian Di Palma
57c94dbd57 feat(importing): Only add one space between release year and release ID 2025-12-29 20:05:51 +00:00
maxid
4cc4ff3629 refactor: improve logging for deleted torrents in service.py 2025-12-29 11:54:56 +01:00
maxid
12ce02473d fix: set success variable when importing movie 2025-12-29 00:35:54 +01:00
maxid
7ea1984d6c refactor indexer search: streamline result evaluation by using raw torrent list 2025-12-28 23:41:06 +01:00
maxid
91ed5e34dc refactor indexer service: streamline movie and season search methods 2025-12-28 11:20:51 +01:00
maxid
9c6676f1f3 feat: add imdb_id parameter to update movie and show methods 2025-12-23 20:29:51 +01:00
maxid
3b920135c2 format files 2025-12-23 19:54:27 +01:00
aasmoe
3574a0a08e Merge branch 'master' into feat/multi-language-metadata 2025-12-21 14:43:17 +01:00
maxid
1293cc692c fix: rename source directory before importing existing movies and TV shows 2025-12-20 21:16:52 +01:00
maxid
cfe34358a0 refactor title processing to remove special characters and brackets 2025-12-20 20:00:27 +01:00
maxid
1f50b18b9f refactor media detection functions to improve accuracy 2025-12-20 19:37:34 +01:00
maxid
eb7a15d32d Merge branch 'refs/heads/master' into fork/aasmoe/feat/multi-language-metadata
# Conflicts:
#	metadata_relay/app/tmdb.py
#	web/src/lib/api/api.d.ts
2025-12-20 14:53:41 +01:00
maxid
c78bc05627 format files 2025-12-20 13:08:32 +01:00
Maximilian Dorninger
a40077a5b1 remove unnecessary check of movie.library 2025-12-18 22:06:16 +01:00
aasmoe
1afa13a954 Merge branch 'master' into feat/multi-language-metadata 2025-12-18 12:00:54 +01:00
xNinjaKittyx
28915a5484 fix: use the right functions and also make sure the 2 checkboxes are on movies too. 2025-12-16 02:41:04 +00:00
xNinjaKittyx
380de78b51 feature: delete files and torrents. 2025-12-15 21:14:16 +00:00
xNinjaKittyx
db044d9351 fix: change id to movieID/ShowID type. 2025-12-15 17:54:31 +00:00
xNinjaKittyx
a098b172ca Address various different fixes regarding search UI experience. 2025-12-14 00:10:38 +00:00
aasmoe
fda59e49b2 Pass language as a value in show and movie objects. DB migration to add original_langauge column. Removes workarounds 2025-12-13 19:30:02 +00:00
aasmoe
8695d26ad9 Removed language parameter in favour of adding original_language to movie and show object. A couple of temporary workaround while there is no original_language column in db. 2025-12-13 19:30:02 +00:00
aasmoe
1caff77412 WIP: current progress 2025-12-13 19:30:02 +00:00
maxid
643d2448b1 reduce logs 2025-12-08 00:30:59 +01:00
Maximilian Dorninger
1d1e678890 Update media_manager/movies/service.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-07 22:45:11 +01:00
maxid
20100441d2 bug fix: make movie importing create necessary directories 2025-12-07 22:24:33 +01:00
maxid
3128c68ecb return error on failed movie import 2025-12-07 21:09:15 +01:00
maxid
417de8b289 save movie_files after successfully importing movies 2025-12-07 21:04:06 +01:00
maxid
d2e8d5eeb7 make movies be importable 2025-12-07 19:56:54 +01:00