Commit Graph

199 Commits

Author SHA1 Message Date
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
maxDorninger
dcf3d1907a add proper logging to the Indexer query result evaluation functions 2025-07-17 11:37:35 +02:00
maxDorninger
acfa3d3b75 add support for indexer flags when using jackett 2025-07-17 11:36:44 +02:00
maxDorninger
9254a5ab10 update sorting algorithm of IndexerQueryResult 2025-07-17 00:36:49 +02:00
maxDorninger
c4db283c63 add evaluate_indexer_query_results function to process query results based on scoring rules and use this function in tv and movie modules 2025-07-17 00:29:30 +02:00
maxDorninger
387e5e1095 add scoring rulesets to config 2025-07-17 00:02:29 +02:00
maxDorninger
83a09ebb94 add score field to db table and add alembic migration for the field 2025-07-16 23:27:54 +02:00
maxDorninger
d01e5f5ee2 add scoring rules to config and add evaluate indexer query result function 2025-07-16 23:23:15 +02:00
maxDorninger
9264d74d51 add score field to indexer query result 2025-07-16 23:06:45 +02:00
maxDorninger
4d0443b337 improve regex to determine the quality of a Indexer query result 2025-07-16 23:06:28 +02:00
maxDorninger
b18b11c682 change string value for default/no library from empty string to "Default" 2025-07-16 14:24:42 +02:00
maxDorninger
26d0ca567f add proper error handling if no usenet/torrent download client is available when getting all torrents 2025-07-16 13:23:26 +02:00