Commit Graph

210 Commits

Author SHA1 Message Date
maxDorninger
6f8d3eea4e update type of the library parameter to string, instead of generating a list of possible values dynamically 2025-09-12 20:05:02 +02:00
maxDorninger
786b14527c update cors middleware 2025-09-04 21:36:52 +02:00
maxDorninger
a012a0cc67 add logging to display which config file is being read 2025-09-04 21:36:32 +02:00
maxDorninger
1f544e55e8 add support for multiple oauth providers 2025-09-04 20:05:45 +02:00
Maximilian Dorninger
6c4b6a52cf Merge pull request #133 from almarzn/patch-1
add a prefix for environment variables
2025-08-11 22:24:31 +02:00
Alma
f9747816db add a prefix for environment variables 2025-08-10 15:42:56 +02:00
maxDorninger
0046fc473c add torrents field to public movie schema, and fix movie's torrents not correctly displaying in the web ui 2025-08-01 23:15:38 +02:00
maxDorninger
29ee6ed53b add library field to PublicShow schema 2025-08-01 22:52:13 +02:00
Maximilian Dorninger
89f4a76825 Fix regex for importing episodes (#128)
This pull request makes a small but significant change to the
`import_torrent_files` method in `media_manager/movies/service.py`. The
change updates the regular expression used to match subtitle file names,
making it more flexible in recognizing language codes.

*
[`media_manager/movies/service.py`](diffhunk://#diff-57cfa309860beba31573487107eba3f7ef8ef60429c48c02fb262b9f4ff9b8d3L527-R527):
Updated the regular expression in `import_torrent_files` to match
language codes in subtitle file names that are separated by either a dot
(`.`) or a space (` `), instead of only a dot.

It fixes #124.

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-01 15:21:55 +02:00
Maximilian Dorninger
35de9629ec Update media_manager/torrent/utils.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-31 22:48:15 +02:00
maxDorninger
a095e1987f add function remove_special_characters and use it in the import torrent files functions, it removes characters that break SMB or jellyfin 2025-07-31 22:42:31 +02:00
maxDorninger
c8d0ec2a5f raise Runtime error instead of returning None when final url could not be determined 2025-07-30 22:37:57 +02:00
Maximilian Dorninger
6c20f7f026 Update media_manager/indexer/utils.py
use redirect_url instead of final_url

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-30 22:34:45 +02:00
Maximilian Dorninger
e2c65c9231 Update media_manager/indexer/utils.py
use redirect_url instead of final_url

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-30 22:34:37 +02:00
maxDorninger
9c84e04de2 make prowlarr follow redirects for every url 2025-07-30 22:29:30 +02:00
maxDorninger
c773bf41b6 keep users who change their email verified status 2025-07-29 16:20:11 +02:00
maxDorninger
d3c8e6ea1f make prowlarr use the guid (magnet link) instead of the weird http url that's stored in the magnetUrl field 2025-07-27 15:19:05 +02:00
Maximilian Dorninger
4a3dea3cab Update media_manager/torrent/download_clients/qbittorrent.py
initialize answer instead of marking it with global

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-27 15:03:02 +02:00
maxDorninger
c56aebd85d extract logic for downloading torrent file and parsing the magnetlink/torrent file into separate function 2025-07-27 14:42:26 +02:00
maxDorninger
efab99473a make comment better 2025-07-26 18:28:03 +02:00
maxDorninger
6610a01769 fix syntax to check if result dictionary has the key "downloadUrl" 2025-07-26 15:28:23 +02:00
maxDorninger
e7863c7a6c add support for magnet urls to indexers 2025-07-26 13:14:22 +02:00
maxDorninger
73496f9450 make the import_file function skip files which already exist 2025-07-26 12:42:39 +02:00
Maximilian Dorninger
64873d9eee Update media_manager/torrent/download_clients/qbittorrent.py
Remove duplicate 'moving' state from DOWNLOADING_STATE tuple.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-26 10:04:24 +02:00
maxDorninger
1507044809 make base_path of sabnzbd configurable 2025-07-25 20:55:38 +02:00
maxDorninger
97d0e140b7 add undocumented states to qbittorent's DOWNLOADING_STATE and FINISHED_STATE 2025-07-25 19:24:50 +02:00
maxDorninger
7c9b8d53fd fix qbittorrent not being able to initialize due to error when trying to update the Qbittorrent category 2025-07-25 19:23:56 +02:00
maxDorninger
1fca7b083a fix duplicate apscheduler jobs and add postgres to docker image 2025-07-23 00:02:23 +02:00
maxDorninger
b9dfb07cf7 make API return HTTP Conflict 409 on Unique Violation/Integrity Error in DB 2025-07-22 22:49:49 +02:00
maxDorninger
a2982e12c0 remove outdated comment 2025-07-22 17:54:44 +02:00
maxDorninger
3e5f43a5d3 make qbittorrent category save path and name customizable 2025-07-22 17:54:25 +02:00
maxDorninger
6a273da054 fix http always being used as protocol for the callback url when using oauth 2025-07-22 16:53:13 +02:00
maxDorninger
f38c825105 add auto_download_movie_requests to scheduler 2025-07-19 17:13:01 +02:00
maxDorninger
f1a01b4d43 automatically create all directories 2025-07-18 14:33:12 +02:00
Maximilian Dorninger
c7a951eacf Update media_manager/config.py
make /data/images default directory for images
2025-07-18 13:48:48 +02:00
maxDorninger
0df004df6f fix and move create default user function to auth.users 2025-07-18 13:45:51 +02:00
Backslash
56d5faaec5 Route redirects
Redirect routes to /web for front end.

Co-authored-by: Maximilian Dorninger <97409287+maxdorninger@users.noreply.github.com>
2025-07-18 21:01:04 +10:00
wjbeckett
0158ac1040 fix: Add default values to config classes to resolve test validation errors
- Add default instances to all nested config classes (TorrentConfig, NotificationConfig, IndexerConfig, MetadataProviderConfig, AuthConfig)
- Add default values to AllEncompassingConfig fields to prevent validation errors during testing
- Update GitHub workflow to copy config.example.toml before running tests
- Ensures tests can run without requiring complete configuration files while maintaining production functionality

Fixes test collection errors where pydantic validation failed due to missing required config sections.
2025-07-18 16:56:19 +10:00
wjbeckett
a4d31d9ac9 fix: linting. 2025-07-18 16:32:33 +10:00
wjbeckett
4177409b59 feat: Add default admin user creation and root route redirects
- Auto-create admin user on first startup (admin@example.com/admin)
- Add redirects from /, /dashboard, /login to /web/ for better UX
- Enhanced startup logging with login credentials
- Improved config documentation for admin_emails

Fixes initial setup UX issues with web UI access and authentication.
2025-07-18 16:04:01 +10:00
wjbeckett
df7d00ad99 feat: improve container setup and fix deployment issues
- Move images directory from /data/images to /app/images to separate app data from user media
- Implement config folder approach instead of direct file mounting
- Add automatic config initialization with example config on first boot
- Remove hardcoded media directory environment variables from Dockerfile
- Update startup script to handle config folder setup and validation
- Only create application-managed directories, not user media directories
- Update docker-compose.yaml to use config folder volume mapping

Fixes container startup failures when config.toml doesn't exist and improves
separation between application data and user media directories.
2025-07-18 12:54:08 +10:00
maxDorninger
d5f09736f8 format files 2025-07-17 21:09:48 +02:00
maxDorninger
fe525a9397 fix HTTP error 404 exception handler 2025-07-17 21:07:36 +02:00
maxDorninger
cb73c9e14f fix images not working 2025-07-17 20:46:03 +02:00
maxDorninger
a232d5e935 format files 2025-07-17 17:20:49 +02:00
maxDorninger
c2b7440bdd adjust config options of backend 2025-07-17 16:38:25 +02:00
maxDorninger
81c8381a90 adjust backend to serve static frontend files 2025-07-17 16:04:57 +02:00
Maximilian Dorninger
96dbcf564c Update media_manager/indexer/indexers/jackett.py
add default values to global values

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-17 12:31:46 +02:00
maxDorninger
a230fcaa43 fix logic of evaluate_indexer_query_results 2025-07-17 12:31:12 +02:00
maxDorninger
b6f5f8b253 format files 2025-07-17 11:37:58 +02:00