Commit graph

534 commits

Author SHA1 Message Date
LimeDrive
87906a726f build(pyproject): bump version to 3.2.2 2026-04-04 12:16:09 +02:00
LimeDrive
cdc3d0834b refactor(debrid): switch to DLToken/EDToken/OCCredentials/PPCredentials 2026-04-04 12:14:45 +02:00
LimeDrive
16ac08423e feat(settings): hotfix yggflix 2026-04-04 02:49:53 +02:00
LimeCat on the Hub's
bfc5c1ec02
Merge pull request #109 from LimeHubs/limedrive/develop
Dynamic settings management and torrent grouping enhancements
2026-04-03 23:54:28 +02:00
LimeDrive
e79d5874d7 feat(admin): améliorer l'interface du tableau de bord avec des sections et des informations sur les torrents 2026-04-03 17:04:09 +02:00
LimeDrive
d12df0f4e8 feat(deploy): ajouter un fichier de configuration pour le déploiement scalable avec Traefik et PgBouncer
feat(logging): implémenter la suppression des fichiers de log obsolètes et ajuster la configuration des logs

feat(settings): modifier la structure des paramètres de configuration et ajouter un niveau de log TRACE

feat(admin): fusionner les pages de configuration TMDB et Indexeurs, et mettre à jour les titres et descriptions

fix(system): corriger les messages d'alerte concernant le redémarrage des paramètres système
2026-04-03 14:07:03 +02:00
LimeDrive
e8b0976332 refactor(logging): switch info/debug logs to trace across modules
convert info/debug logs to trace across modules for deeper diagnostics
without changing behavior
2026-04-03 12:09:26 +02:00
LimeDrive
333c2a1cbb feat(settings): update orphan torrent cleanup age to 7 days and adjust related documentation 2026-04-02 21:07:28 +02:00
LimeDrive
09adc19273 feat(tmdb_matcher): implement orphan matcher with history
- add TMDB orphan matcher backend (orphan_matcher.py) and search client (tmdb_search.py)
- introduce Redis-backed run history tracker (history.py) for matcher runs
- extend TorrentItemModel with tmdb_match_attempted_at and index
- add Alembic migration to create tmdb_match_attempted_at and its index
- integrate new tmdb_orphan_matching job into scheduler; expose in UI
- add admin UI: tmdb_matcher.html, history/revert endpoints, and nav entry
- wire settings: scheduler_tmdb_match_interval_hours and batch size
- enhance title normalizer: strip possessive s and remove technical brackets/tokens
- update admin docs to reflect new matcher and deprecation of old cleanup
- update admin base navigation and scheduled tasks page accordingly
2026-04-02 20:43:36 +02:00
LimeDrive
acef8f2516 feat(torrent-group): add initial grouping framework for torrents
introduce initial torrent grouping: add torrent_groups table and
group_id on torrent_items. include migrations, ORM models, and DAOs.
expose admin/web endpoints to group by info_hash and by title/size.
propagate tmdb_id across grouped items. non-destructive and backwards
compatible with existing data
2026-04-02 16:13:09 +02:00
LimeDrive
2a175242a7 feat(admin): add dynamic settings management system with new UI
Introduce a comprehensive settings management system that allows runtime
configuration through a new admin interface. The system includes:

- Database-backed settings with Redis caching for performance
- Settings registry defining types, defaults, and categories
- New admin UI with navigation cards and dedicated sub-pages for each category
  (general, cache, indexers, proxy, system, TMDB)
- Shared view logic for consistent GET/POST handling across sub-pages
- Automatic seeding of defaults and application of overrides at startup
- Validation and type coercion for setting values

The previous static configuration page has been replaced with a modular,
category-based interface that provides better organization and extensibility
for future configuration needs.
2026-04-02 13:09:53 +02:00
LimeCat on the Hub's
e214cd6764
Merge pull request #108 from LimeHubs:develop
🚀 Release 3.2.0
2026-04-02 10:17:47 +02:00
LimeCat on the Hub's
df8673f122
Merge pull request #107 from HyPnoTiiK:develop
Develop
2026-04-02 09:55:43 +02:00
HyPnoTiiK
e53c8984a9 cleanup 2026-04-01 23:24:44 -04:00
HyPnoTiiK
868379cf80 UI improvements 2026-04-01 23:05:45 -04:00
HyPnoTiiK
cc37768749 Corrected var name icon -> logo for Stremio addon logo 2026-04-01 23:04:18 -04:00
LimeCat on the Hub's
8e78b47e56
Merge pull request #106 from LimeHubs:limedrive/develop
Add scheduled tasks management and enhance Yggflix API functionality
2026-04-02 00:54:20 +02:00
LimeDrive
3d3372a4bd feat: add scheduled tasks admin page with auto-refresh and job management
- Implemented a new HTML page for managing scheduled tasks in the admin panel.
- Added JavaScript functionality for auto-refreshing job statuses and triggering jobs manually.
- Enhanced job result display with relative time and duration formatting.
- Introduced a toast notification system for user feedback on job actions.

fix: update Redis cache key generation to include a prefix

- Modified the Redis cache key generation to prepend "search:" to the hashed key for better organization.

refactor: improve Yggflix API search functionality

- Added an optional parameter to the search_movie method to specify the search type.
- Implemented a fallback mechanism to broaden search if initial results are insufficient.

chore: enhance Yggflix service with improved result handling

- Introduced a threshold for retrying searches with a broader query type based on result ratios.
- Increased the limit for sorted results from 50 to 100.

feat: add maintenance endpoints for managing expired API and peer keys

- Created endpoints to disable expired API keys and peer keys in the admin panel.
- Added functionality to clean orphan torrent items based on a specified age.

feat: integrate scheduler into the application lifecycle

- Initialized a database cleanup scheduler during application startup.
- Ensured proper shutdown of the scheduler during application termination.
2026-04-02 00:52:11 +02:00
LimeCat on the Hub's
7e5710dad7
Merge pull request #105 from LimeHubs:limedrive/develop
Refactor debrid caching and series file selection logic
2026-04-01 22:35:40 +02:00
LimeDrive
31cd83e9cb refactor(debrid): adjust not_cached ttl and remove series file_index path
extend not_cached ttl from 20m to 3h to reduce re-checks
of not cached items

remove the file_index shortcut for series in Torbox
and rely on season/episode parsing
2026-04-01 22:34:48 +02:00
LimeCat on the Hub's
3e2266ad4b
Merge pull request #104 from LimeHubs/limedrive/develop
Enhance filtering and normalization features
2026-04-01 18:24:58 +02:00
LimeDrive
f7e2e02b8a feat: 3.2.0 in pyproject.toml 2026-04-01 18:20:45 +02:00
LimeDrive
76bb5ab8aa feat: améliorer la gestion des filtres et ajuster le délai de rafraîchissement en arrière-plan 2026-04-01 18:10:22 +02:00
LimeDrive
b8399900d5 feat: add mismatches management and unmatched torrents search
- Implemented a new admin page for managing TMDB mismatches, including listing, creating, and deleting mismatches.
- Added functionality to search for unmatched torrents with filters for language and type.
- Enhanced UI with improved filtering options and group toggling for better user experience.
- Introduced toast notifications for user actions such as creating mismatches and assigning TMDB IDs.
- Updated backend routes to handle mismatch creation, deletion, and assignment of TMDB IDs to selected torrents.
2026-04-01 17:51:15 +02:00
LimeDrive
9fae550343 feat: Ajouter la gestion du TTL pour le verrou Redis par indexeur lors du rafraîchissement en arrière-plan 2026-04-01 15:54:58 +02:00
LimeDrive
d65366cce2 feat: Ajouter la gestion du cache local Postgres avec des paramètres de résultats minimum et de durée de validité 2026-04-01 15:37:54 +02:00
LimeDrive
15f3d1facb feat: Refactor torrent filtering and TMDB ID assignment logic for improved accuracy 2026-04-01 13:25:37 +02:00
LimeDrive
94c0e26f62 feat(normalizer): add title extraction and boundary detection logic 2026-04-01 12:00:41 +02:00
LimeDrive
fa68cb2c6b feat: Implement title matching and language rules management
- Refactored title filtering logic in `filter_results.py` to utilize a new title matching module.
- Introduced normalization functions for search queries in `jackett_service.py` and `yggflix_service.py`.
- Added new endpoints for managing title and language normalization rules in the admin views.
- Implemented loading and reloading of title matching and language rules in the application lifecycle.
- Enhanced release group extraction and language detection in `parser_utils.py` using the new title matching module.
2026-04-01 11:04:04 +02:00
LimeDrive
c71e301dfb fix(filter): skip year filtering when year is not provided 2026-03-31 16:30:59 +02:00
LimeCat on the Hub's
efd5995a88
Merge pull request #103 from LimeHubs/limedrive/develop
Add fallback search and pagination for movie queries
2026-03-31 15:25:58 +02:00
LimeDrive
a9c2ce268e feat(ygg): add fallback search and pagination for movie queries
Refactor search_movie method to remove tmdb_id parameter and add offset support for pagination. Implement automatic fallback to search type when movie type returns empty results, improving result coverage. Add intelligent page 2 fetching in service layer based on title pre-filter ratio threshold to avoid unnecessary API calls.
2026-03-31 15:18:52 +02:00
LimeCat on the Hub's
ebcc94a19d
Merge pull request #102 from LimeHubs:develop
Refactor search logic and enhance torrent management features
2026-03-31 03:30:32 +02:00
LimeCat on the Hub's
4643ff4ea5
Merge pull request #101 from LimeHubs:limedrive/develop
Refactor search logic and enhance torrent management features
2026-03-31 03:29:05 +02:00
LimeDrive
6ba93612d4 feat: améliorer le traitement des résultats pour gérer les données de manière plus flexible 2026-03-31 03:28:01 +02:00
LimeDrive
204daee1a0 feat: ajouter une action pour vider le cache de recherche et mettre à jour la logique de filtrage des modèles autorisés 2026-03-31 03:18:04 +02:00
LimeDrive
76afe6ed15 feat: enhance json_response method to support json data and add new torrent management features in Torbox 2026-03-31 03:06:07 +02:00
LimeDrive
c635719789 feat: refactor search logic to use phase-based indexer fetching and improve error handling 2026-03-31 02:22:30 +02:00
LimeDrive
5b07696526 feat: add warning for non-series media context in TorrentSmartContainer 2026-03-31 01:23:00 +02:00
LimeDrive
099132d9c4 feat: add background caching for magnets/torrents in AllDebrid 2026-03-30 23:52:50 +02:00
LimeDrive
c20a84cb07 chore(deps): update poetry lock file 2026-03-30 23:21:34 +02:00
LimeDrive
a282aac42a chore(deps): update aiohttp-socks version and add tmdb_id type conversion
Update aiohttp-socks dependency to support versions >=0.10.0 and add integer type conversion for tmdb_id field in TorrentItemModel to ensure proper data handling
2026-03-30 23:20:33 +02:00
LimeDrive
14034542cf release: StreamFusion V3.0.0 2026-03-30 18:36:19 +02:00
LimeDrive
347bf69093 docs: add release notes for v3.0.0 2026-03-30 18:35:06 +02:00
LimeCat on the Hub's
a08e08e374
Merge pull request #100 from LimeHubs:limedrive/develop
Add support for new private indexers and optimize search phases
2026-03-30 17:50:33 +02:00
LimeDrive
fb019a85bf feat(search): add configurable indexer search phases and RealDebrid optimization
Introduce a 4-phase search system where private indexers are grouped by priority:
- Phase 1 (priority_private): always queried first
- Phase 2 (intermediary_private): queried only if private results < minCachedResults
- Phase 3 (fallback_private): queried only if still insufficient
- Phase 4 (public): Yggflix relay position controlled by yggflixPriority toggle

Add rdMinCachedBeforeCheck setting to skip RealDebrid if prior services already found enough cached results, since RD API is slow (~3s) and rate-limited. Default to 3.

Non-blocking magnet cleanup in AllDebrid availability checks via background task. G3MINI now computes info_hash from .torrent files when API omits it. Public indexer results are excluded from final matches unless already cached by a debrid service.
2026-03-30 17:49:18 +02:00
LimeDrive
0d0c238383 feat(trackers): add support for ABN, G3MINI, and TheOldSchool UNIT3D indexers
Remove deprecated Sharewood tracker integration and add three new private trackers:
- ABN (Abnormal): keyword-based search with name filtering
- G3MINI (Gemini Tracker): TMDB/IMDB ID-based filtering
- TheOldSchool: TMDB/IMDB ID-based filtering

Includes new API clients, result parsers, and service layers. Updates frontend UI, settings configuration, and credential handling to support the new indexers with proper passkey management.
2026-03-30 14:23:20 +02:00
LimeDrive
0f310a958f feat(api): add config encoding endpoint with CSRF protection
Implement POST /encode endpoint for encrypting user configuration tokens.
Uses Fernet encryption with automatic Base64 fallback when CONFIG_SECRET_KEY
is not set. Protected by signed CSRF token validation to prevent cross-site
attacks.
2026-03-30 02:23:41 +02:00
LimeCat on the Hub's
ef8b1a3890
Merge pull request #98 from HyPnoTiiK/develop
Add register page (/register)
2026-03-30 02:17:53 +02:00
LimeDrive
e60af3c95d feat(register): migrate to Jinja2 templates and add Redis-based rate limiting
- Replace inline HTML templates with Jinja2 templates from static directory
- Add Redis client for rate limiting public registration endpoint
- Implement rate limiting of 5 requests per IP per hour
- Improve API key naming with date-based suffix for better traceability
- Add utility functions for IP hashing and rate limit enforcement
2026-03-30 02:09:53 +02:00