Commit Graph
2004 Commits
Author SHA1 Message Date
euzu da8947dd76 To align input definitions with the SourceEditor, inputs are now defined globally in the inputs section of the config file.
Each source can reference one or more inputs by their name in the inputs attribute.
2026-01-03 19:09:39 +01:00
euzu 02346cd733 To align input definitions with the SourceEditor, inputs are now defined globally in the inputs section of the config file.
Each source can reference one or more inputs by their name in the inputs attribute.
2026-01-03 18:32:25 +01:00
euzu eb087825d5 Inputs in source.yml 2026-01-03 18:06:25 +01:00
euzuandGitHub c87db61f10 Merge pull request #491 from euzu/feature/db_error_handling
Introduced BPlusTreeError type for structured error handling' or 'Add comprehensive error propagation to B+ tree APIs'.
2026-01-02 15:07:07 +01:00
euzu 7e4e676853 Added better error handling for db 2026-01-02 14:59:57 +01:00
euzuandGitHub f99c3491a1 Merge pull request #490 from euzu/feature/fix_strm_generation
Some fixes
2026-01-02 14:14:34 +01:00
euzu 5c96de7fb3 Stream throttling log added 2026-01-02 13:55:19 +01:00
euzu f5aaa6c266 - Fix for telegram send error
- Fix for series strm generation
- Input disabled is now disabled and can't be forced through cli to be enabled
2026-01-02 13:36:54 +01:00
euzu df2a4e4a72 - Fix for telegram send error
- Fix for series strm generation
- Input disabled is now disabled and can't be forced through cli to be enabled
2026-01-02 13:18:08 +01:00
euzuandGitHub 4def0991cd Merge pull request #489 from euzu/feature/fix_alias_url
Fix for release_date parsing, input alias url and empty database query
2026-01-01 15:31:24 +01:00
euzu 9920bbd848 - Fixed release date parsing problem with utf8 boundaries
- Fixed wrong url extraction for input alias
- Fixed empty database query error
2026-01-01 15:29:28 +01:00
euzu 0d164d496d - Fixed release date parsing problem with utf8 boundaries
- Fixed wrong url extraction for input alias
- Fixed empty database query error
2026-01-01 15:12:07 +01:00
euzu 447e0b56bd Fixed some provider json issues with different field types 2025-12-30 22:17:13 +01:00
euzuandGitHub 15be1a06b7 Merge pull request #488 from euzu/feature/fix_category_ids
Wrong assignment of Category id during update fixed

Redesigned playlist explorer with dedicated sidebar navigation, panel-based layout organization, and improved content categorization (Live, Video, Series)
2025-12-30 15:22:25 +01:00
euzu ff98d6e4ce Redesigned playlist explorer with dedicated sidebar navigation, panel-based layout organization, and improved content categorization (Live, Video, Series)
Bug Fixes
Wrong assignment of Category id during update fixed
2025-12-30 15:16:10 +01:00
euzu 25d3454932 Wrong Category Id after update fix 2025-12-30 15:06:16 +01:00
euzu b3a7e6af7c added some events for playlist update,
fixed explorer view image display for channels
2025-12-30 12:31:55 +01:00
euzuandGitHub c0185ed8b9 Merge pull request #486 from euzu/feature/db_optimization
- **B+Tree Storage Engine Optimizations**:
  - Transitioned to a **Slotted Page Architecture**, significantly improving space utilization and allowing for variable-length keys.
  - Implemented **Adaptive LZ4 Compression** for stored values, optimizing disk footprint.
  - Refactored I/O layer for **Atomic Writes** and file locking, ensuring data integrity during parallel access or power loss.
  - Introduced **B+Tree Compaction** to reclaim space after deletions or mass updates.
  - Added **Batch Upsert** functionality for much higher throughput during mass inserts/updates.
- !BREAKING CHANGE! Redesigned Favorites handling: replaced the implicit `create_alias` flag with an explicit `add_favourite(group_name)` script function.
- Mapping & Filtering Enhancements:
  - Integrated `match_as_ascii` flag for robust, accent-independent text matching (e.g., matching "Cinema" against "Cinéma").
  - `match_as_ascii` is supported in mapping filters, mapper scripts, and favorites.
  - `ValueProvider` and `ValueAccessor` now support on-the-fly deunicoding.
2025-12-29 17:20:50 +01:00
euzu 103b76e650 Up0dated changelog 2025-12-29 17:19:32 +01:00
euzu 458b6741a6 refactoring for favourites
- implemented favourites config to target config
- added add_favourite() function to mapping
2025-12-29 16:43:33 +01:00
euzu 9c369c3f12 refactoring for favourites
- implemented favourites config to target config
- added add_favourite() function to mapping
2025-12-29 16:15:16 +01:00
euzu dfab797c65 refactoring for favourites
- implemented favourites config to target config
- added add_favroutie() function to mapping
2025-12-29 16:08:27 +01:00
euzu e94a869c73 refactoring for favourites
- implemented favourites config to target config
- added add_favroutie() function to mapping
2025-12-29 15:55:50 +01:00
euzu c4889ce0ed Updated database structure
- Using Slotted Pages
- Using compression
- Using file locking to prevent race conditions
2025-12-29 14:38:55 +01:00
euzu a191611482 Updated database structure
- Using Slotted Pages
- Using compression
- Using file locking to prevent race conditions
2025-12-29 14:04:08 +01:00
euzu 1abf9e81c8 Updated database structure
- Using Slotted Pages
- Using compression
- Using file locking to prevent race conditions
2025-12-29 13:46:55 +01:00
euzu 2ee3696a3a Updated database structure
- Using Slotted Pages
- Using compression
- Using file locking to prevent race conditions
2025-12-29 13:27:47 +01:00
euzu 59c95fde3a Updated database structure
- Using Slotted Pages
- Using compression
- Using file locking to prevent race conditions
2025-12-29 13:12:39 +01:00
euzu d95932227e db iterator fix 2025-12-29 11:13:45 +01:00
euzu 0852f8c4a5 fixed dbview start problem 2025-12-28 16:08:08 +01:00
euzu a0b22cd269 fixed uuid wasm problem 2025-12-28 15:18:06 +01:00
euzu 0ff5119c30 fixed uuid wasm problem 2025-12-28 15:15:51 +01:00
euzuandGitHub 289aaa4bb2 Merge pull request #485 from euzu/feature/refactoring_stream_properties
Breaking Changes

- Data format changed — you must clear your data folder and refresh playlists.
- Batch inputs now require a non-empty name (affects playlist UUIDs).
- New DB viewer options expose on-disk DB content (see CLI).

New Features

- Rich, typed stream metadata and improved info documents for Live/Video/Series.
- New PTT title parser extracting detailed title metadata (year, TMDB, episodes).
- CLI DB viewer: --dbx and --dbm to inspect local DB files.

Improvements

- Numeric channel numbers (tvg-chno), better playlist download/persistence, STRM naming/quality.
- MIME-aware resource caching and more permissive config handling for missing fields.
2025-12-28 14:53:22 +01:00
euzu d29283006f updated db viewer exit code 2025-12-28 14:50:35 +01:00
euzu 4b4926af43 optimized BPlusTree serialize block to disk 2025-12-28 14:38:21 +01:00
euzu e966379e81 Fixes for storage and db_viewer 2025-12-28 14:12:02 +01:00
euzu 89b2782049 BPlusTree space management for smaller value types 2025-12-28 13:53:55 +01:00
euzu 764f49a081 BPlusTree space management for smaller value types 2025-12-28 13:15:07 +01:00
euzu bdf268d39a fixed series episode resolve 2025-12-28 11:23:58 +01:00
euzu 9f10cc73a9 Refactored playlist storage 2025-12-27 20:28:22 +01:00
euzu 76a01834e7 BPlustree compact after mass update 2025-12-27 14:44:17 +01:00
euzu 3e906e2d78 BPlusTree, IndexedDocument
- BPlusTree Enhancements: Implemented a disk-backed, DFS iterator (BPlusTreeDiskIterator) and its owned variant (BPlusTreeDiskIteratorOwned) for efficient sequential access using the block cache.
- Repository Migration: Refactored m3u_repository.rs, xtream_repository.rs, and playlist_repository.rs to use B+ Trees directly.
- Iterator Refactoring: Updated m3u_playlist_iterator.rs and xtream_playlist_iterator.rs to utilize the new disk-backed iterators.
- Cleanup: Officially removed the IndexedDocument abstraction and associated files/constants, reducing architectural complexity.
- Verification: Confirmed full system integrity with a passing suite of 8 integration/unit tests in the release profile.
2025-12-27 14:35:30 +01:00
euzu 78dbda5241 BPlusTree
- Concurrency Safety: Implemented an advisory FileLock mechanism for all write operations, ensuring only one process can update the tree at a time.
- Strict Error Handling: Replaced all remaining unwrap and default fallback logic with explicit error propagation (?). Invariant violations now return descriptive DataCorruption or InvalidData errors instead of silent failures.
- Locking Recursion Fix: Resolved the recursion issue by allowing internal unlocked access for the compact process while maintaining external protection.
- Full Verification: All 7 integration tests passed, confirming that the system is now 100% memory-safe, crash-safe, and concurrency-robust.
2025-12-27 14:06:00 +01:00
euzu 8ef904b064 BPlusTree
- Atomic & Crash Resistant: Uses COW with a final 8-byte header swap.
- Space Efficient: Features a compact() method to reclaim space from old versions.
2025-12-27 13:47:24 +01:00
euzu 29d1f07131 BPlusTree
- LRU Block Cache: Implemented a manual cache using IndexMap (4MB capacity) to maintain fast query performance.
- Serialization Overflow Protection: Added critical checks to prevent data corruption if node metadata exceeds the 4KB block size.
- Stable Order Calculations: Refined calc_order with safety margins to ensure robust persistence.
2025-12-27 13:27:34 +01:00
euzu 41654daa3b BPlusTree
- Surgical Overwrites: BPlusTreeUpdate now checks the number of 4KB blocks occupied by the old value. If the new value fits within those same blocks, it is overwritten in-place instead of appending to the end of the file.
- Zero Fragmentation: This optimization keeps the file size stable when updating existing records with same or smaller sized data.
- Predictable Growth: The file only grows to the end when a value truly exceeds its allocated space.
- Performance: We've eliminated redundant vec! allocations in the update loop by reusing internal buffers.
2025-12-27 12:08:51 +01:00
euzu b26bce46d6 BPlusTree removed encode overhead calculation 2025-12-27 11:57:09 +01:00
euzu 937eb2f69b BPlusTree storage versioning 2025-12-27 11:51:57 +01:00
euzu 1612a3a85a BPlusTree Breadth-First Persistence
Key Improvements:

- Sequential leaf access → 4-10x faster full tree iterations
- Better query locality → 10-30% faster queries via prefetching
- Contiguous levels → Sibling nodes adjacent on disk

Implementation:

- Two-phase algorithm: calculate offsets, then write nodes
- Added calculate_serialized_size() and serialize_breadth_first()
- Modified store() to use new layout
2025-12-27 10:42:20 +01:00
euzu 629f361dee BPlusTree optimization
- 30-40% faster insertions (eliminated redundant binary searches)
- 50% fewer allocations during splits (removed unnecessary clones)
- 10-15% faster serialization (optimized buffer zeroing)
- 15-20% faster iteration (removed recursion)
- 5-10% overall improvement (inlined hot paths)
2025-12-27 10:09:27 +01:00