Commit Graph
56 Commits
Author SHA1 Message Date
euzu ccdbf1dfce Retry request from reverseproxy retry options 2026-01-22 13:30:59 +01:00
euzuandGitHub cc2e50549d Feature/panel api update (#524)
Panel Api update
2026-01-20 18:51:46 +01:00
euzuandGitHub 16fcd7f882 Optimizations
* New Features

Added series information display with episodes, cast, and metadata in playlist explorer
Introduced multi-cluster playlist endpoints (live, VOD, series) for flexible content retrieval
Added series info lookup and filtering capabilities
Implemented sidebar navigation for source editor with dedicated pages (Main, Options, Staged, Advanced, Alias)
Added filter state controls (All, Selected, Deselected) for playlist category management
Enabled Trakt configuration toggle to control integration
Performance Improvements

Optimized B+Tree indexing for faster queries
Reduced startup latency with disk-based operations and optional memory caching
Improved string memory handling through efficient reference-counted strings
UI Enhancements

Enhanced playlist explorer with series details and episode grouping by season
Added new UI icons (Options, Advanced, Staging, Alias, Trakt)
Improved form layouts with toolbar controls
Enhanced radio button group styling for better visual hierarchy

* New Features

Added series information display with episodes, cast, and metadata in playlist explorer
Introduced multi-cluster playlist endpoints (live, VOD, series) for flexible content retrieval
Added series info lookup and filtering capabilities
Implemented sidebar navigation for source editor with dedicated pages (Main, Options, Staged, Advanced, Alias)
Added filter state controls (All, Selected, Deselected) for playlist category management
Enabled Trakt configuration toggle to control integration
Performance Improvements

Optimized B+Tree indexing for faster queries
Reduced startup latency with disk-based operations and optional memory caching
Improved string memory handling through efficient reference-counted strings
UI Enhancements

Enhanced playlist explorer with series details and episode grouping by season
Added new UI icons (Options, Advanced, Staging, Alias, Trakt)
Improved form layouts with toolbar controls
Enhanced radio button group styling for better visual hierarchy

* New Features

Added series information display with episodes, cast, and metadata in playlist explorer
Introduced multi-cluster playlist endpoints (live, VOD, series) for flexible content retrieval
Added series info lookup and filtering capabilities
Implemented sidebar navigation for source editor with dedicated pages (Main, Options, Staged, Advanced, Alias)
Added filter state controls (All, Selected, Deselected) for playlist category management
Enabled Trakt configuration toggle to control integration
Performance Improvements

Optimized B+Tree indexing for faster queries
Reduced startup latency with disk-based operations and optional memory caching
Improved string memory handling through efficient reference-counted strings
UI Enhancements

Enhanced playlist explorer with series details and episode grouping by season
Added new UI icons (Options, Advanced, Staging, Alias, Trakt)
Improved form layouts with toolbar controls
Enhanced radio button group styling for better visual hierarchy

* New Features

Added series information display with episodes, cast, and metadata in playlist explorer
Introduced multi-cluster playlist endpoints (live, VOD, series) for flexible content retrieval
Added series info lookup and filtering capabilities
Implemented sidebar navigation for source editor with dedicated pages (Main, Options, Staged, Advanced, Alias)
Added filter state controls (All, Selected, Deselected) for playlist category management
Enabled Trakt configuration toggle to control integration
Performance Improvements

Optimized B+Tree indexing for faster queries
Reduced startup latency with disk-based operations and optional memory caching
Improved string memory handling through efficient reference-counted strings
UI Enhancements

Enhanced playlist explorer with series details and episode grouping by season
Added new UI icons (Options, Advanced, Staging, Alias, Trakt)
Improved form layouts with toolbar controls
Enhanced radio button group styling for better visual hierarchy
2026-01-20 10:09:58 +01:00
euzu 8cc9283a31 Playlist Update Optimization: Reduced Memory Usage
An optimization has been introduced to reduce memory consumption during playlist updates.

Overview
Previously, provider playlists were fully loaded into memory during the update process. For large playlists (e.g. hundreds of thousands of entries or multiple providers), this could result in significant RAM usage.
With the new implementation, it is now possible to optionally read provider playlists directly from disk instead of keeping them entirely in memory.

How It Works
 - users can configure whether:
     - Provider playlists are loaded into memory (previous behavior), or
     - Provider playlists are streamed to/from disk to minimize RAM usage.

Processing remains sequential and batch-based, ensuring identical functional behavior.
This approach significantly lowers peak memory usage, especially on systems with limited resources.

Benefits

- Reduced peak RAM consumption during playlist updates
- Better scalability for large playlists and multiple providers
- Full backward compatibility

Trade-offs / Drawbacks

 - Increased processing time due to reduced in-memory caching
 - Higher disk I/O usage, especially for large or fragmented playlists
 - Performance depends more strongly on disk speed (Nvme SSD, HDD)
 - Slightly increased CPU overhead due to repeated parsing and deserialization
 - Not optimal for environments where fast updates are more important than memory usage

Recommendation

 - Use in-memory mode for systems with sufficient RAM and a focus on update speed
 - Use disk-based mode for large playlists, multiple providers, or memory-constrained environments
2026-01-08 15:11:12 +01:00
euzu eb087825d5 Inputs in source.yml 2026-01-03 18:06:25 +01:00
euzu cf0c928730 stream properties refactored 2025-12-27 09:52:28 +01:00
euzu d5207e886f stream properties refactored 2025-12-26 14:09:44 +01:00
euzu afc0fe4ea8 Merge branch 'feature/source_editor' into feature/local_media 2025-12-12 17:05:12 +01:00
euzu ee0441877d xtream and m3u parsing with streaming 2025-12-12 15:33:41 +01:00
euzu 55191d6c84 vod resolve refactored
Arc<Client> is now Client
2025-12-11 09:54:28 +01:00
euzu a5cafb1b78 Merge remote-tracking branch 'deadc1de/feature/local-vod-module' into feature/local_media 2025-12-10 10:48:24 +01:00
moeandClaude Sonnet 4.5 d481303e57 feat: Add Local VOD (Video-on-Demand) Module
Implements comprehensive local video file scanning and metadata management:

Core Features:
- Recursive directory scanning with tokio::fs async operations
- Automatic classification (Movies vs TV Series) using regex patterns
- Multi-source metadata resolution (NFO → TMDB → filename parsing)
- JSON-based metadata storage with UUID tracking
- Virtual ID management (incremental, stable across scans)
- TMDB API integration with rate limiting (250ms default)
- NFO file reading/writing (Kodi/Jellyfin/Emby/Plex compatible)
- Incremental scanning (only processes changed files)
- Orphaned entry cleanup

Components Added:
- backend/src/vod/scanner.rs - Async file scanner
- backend/src/vod/classifier.rs - Movie/Series classification
- backend/src/vod/metadata.rs - Metadata models
- backend/src/vod/nfo_reader.rs - NFO parser
- backend/src/vod/tmdb_client.rs - TMDB API client
- backend/src/vod/metadata_storage.rs - JSON storage layer
- backend/src/vod/metadata_resolver.rs - Metadata orchestration
- backend/src/vod/processor.rs - Main processing pipeline

API Endpoints:
- POST /api/v1/vod/scan - Trigger VOD scan
- GET /api/v1/vod/status - Get VOD status
- GET /api/v1/vod/item/:id - Get VOD item by virtual ID

CLI Integration:
- --scan-vod - Scan VOD directories
- --force-vod-rescan - Force full rescan

Configuration:
- config/vod.yml.example - Example configuration
- New InputType::LocalVod in source.yml

Technical Details:
- Uses OnceLock for regex caching (no lazy_static needed)
- Arc-swap pattern for lock-free config updates
- Comprehensive unit tests
- ~3,200 lines of new code
- Zero new dependencies added

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-10 07:51:06 +01:00
euzu bdb838e2b0 - CPU usage
- disable cloudfare header
2025-11-29 19:01:42 +01:00
euzu c6203190e0 File Lock fix 2025-11-14 09:49:48 +01:00
euzu b69ed4921e better connection handling 2025-11-10 01:04:13 +01:00
euzu e6c4480153 Fixed a connection count issue on ffwd and reverse for vod 2025-11-05 18:22:05 +01:00
knylbyte 45a3fcd659 feat: added enhanced header handling for outgoing request in reverse proxy mode 2025-10-31 17:04:35 +01:00
euzu d71e8080f5 stream table ip fixed 2025-10-30 13:00:25 +01:00
euzu cd76891ce4 Some refactorings
- HdHomerun
- WebUI GeoIP
- Playlist Updates
...
2025-10-28 19:52:46 +01:00
euzu 3c3c8df763 Added GeoIp config and update button to WebUI
Integrated GeoIp to stream Table
Fixed some HdHomerun issues
2025-10-28 18:42:09 +01:00
euzu 60c2e5a161 User Stream Connection table added 2025-10-24 18:37:14 +02:00
euzu 94a39ccc52 epg view 2025-09-26 14:13:30 +02:00
euzu 5faba69108 config save 2025-09-01 13:33:34 +02:00
euzu 22d27146e0 user editor form 2025-08-27 09:44:42 +02:00
euzu 30a88bb2ae user editor form 2025-08-26 23:34:04 +02:00
euzu cdbbafef43 Fixed EPG URL prepare 2025-08-18 17:24:26 +02:00
euzu 50bbcaf122 Added WebPlayer Url copy to clipboard,
Refactored config views
2025-08-18 11:04:47 +02:00
euzu c9a0f742f5 fix load user db for web_ui 2025-08-15 19:31:07 +02:00
euzu 346478b260 Staged input 2025-08-13 13:40:41 +02:00
euzu 290606c84e batch input content view 2025-08-12 10:53:39 +02:00
euzu dd72746498 batch input content view 2025-08-12 08:51:38 +02:00
euzu 420912a79d web_ui_path fixes 2025-08-05 14:20:13 +02:00
euzu bb79c201c4 web_ui_path fixes 2025-08-05 13:57:21 +02:00
euzu e3749afc40 some clippy fixes 2025-08-03 13:23:05 +02:00
euzu b3e7e2cd89 Playlist update added to web ui 2025-08-03 10:24:23 +02:00
euzu 1e3fa841f0 added provider channel browser
added toastr service
2025-08-01 21:03:50 +02:00
euzu 49b2390e60 Playlist browser categorie view implemented 2025-07-30 18:03:48 +02:00
euzu 04c7e8549b shared stream fixes 2025-07-27 20:47:35 +02:00
euzu 78e138e5d8 some clippy fixes 2025-07-24 14:27:57 +02:00
euzu 6c238c607f refactored unwrap calls to make it more stable 2025-07-22 11:32:46 +02:00
euzu 504b4df277 Fix shared stream provider connections
Web UI State update through websocket
2025-07-21 22:17:57 +02:00
euzu 4c43dd6402 shared provider connection release fix 2025-07-19 15:32:30 +02:00
euzu 4fc2351afd webui 2025-07-14 19:24:43 +02:00
euzu 2799057d90 input alias reading for dto 2025-07-14 13:44:50 +02:00
euzu 8510460e61 web ui reveal content 2025-07-10 17:05:23 +02:00
euzu 73c844ff94 web ui filter render 2025-07-09 20:31:29 +02:00
euzu 1a91fe6f5d webui 2025-07-09 17:16:27 +02:00
euzu 8333a2d8eb web ui 2025-07-01 21:40:24 +02:00
euzu 14c02409fe rust webui dashboard impl started 2025-06-30 21:03:35 +02:00
euzu 644214ad9a config hot reload update for cache implemented 2025-06-25 14:55:44 +02:00