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
Marcel Hellwig
311e625eee
two hotfixes ( #392 )
...
this prevents the app from running correctly
2026-02-01 17:42: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
eac58d2843
ruff: enable FAST lint
...
this mostly is replacing the response_model attribute with a return type
of that function since that's the more idiomatic way to do
2026-01-05 19:30:42 +01:00
Marcel Hellwig
97cb3b5c1e
ruff: enable EM lint
2026-01-05 19:30:42 +01:00
Marcel Hellwig
2c36adfd75
ruff: Enable B 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
3f500eccc6
fix: replace ValueError with ConflictError in movie route
2026-01-01 14:22:19 +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
009f743259
refactor: enhance exception handling
2025-12-29 22:54:45 +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
3c67705275
refactor movie/router.py
2025-12-29 13:17:20 +01:00
maxid
499d6a2b3f
refactor: update movie handling in router.py to use movie_dep
2025-12-29 12:58:15 +01: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
61fc87e577
fix bug: actually save imdb_id to database
2025-12-27 12:42:36 +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
maxid
0c30ede537
feat: add imdb_id fields to movies and shows
2025-12-23 19:54:17 +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
18dd20d93e
feature: add basic delete capability.
2025-12-15 18:06:04 +00:00
xNinjaKittyx
db044d9351
fix: change id to movieID/ShowID type.
2025-12-15 17:54:31 +00:00