@officebeats/matrix-iptv-cli 3.0.6 → 3.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGES.md +37 -1
- package/package.json +1 -1
package/CHANGES.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# IPTV App Changes Summary
|
|
2
2
|
|
|
3
|
+
## Date: 2025-12-27 (v3.0.8)
|
|
4
|
+
|
|
5
|
+
### Changes Implemented
|
|
6
|
+
|
|
7
|
+
#### ✅ 1. Fixed Critical Out-of-Bounds Panic
|
|
8
|
+
|
|
9
|
+
**Issue:** Application crashed with `index outside of buffer` error on Mac/Windows when the terminal window was small (e.g., 80 columns).
|
|
10
|
+
**Files Modified:**
|
|
11
|
+
|
|
12
|
+
- `src/matrix_rain.rs`
|
|
13
|
+
- `src/ui/loading.rs`
|
|
14
|
+
- `src/ui/groups.rs`
|
|
15
|
+
|
|
16
|
+
**Changes:**
|
|
17
|
+
|
|
18
|
+
- Updated Matrix logo width to correct value (103).
|
|
19
|
+
- Added defensive bounds checking and clipping to all manual coordinate drawing.
|
|
20
|
+
- Clamped popup heights to terminal height.
|
|
21
|
+
- Implemented `intersection` clipping for large UI elements.
|
|
22
|
+
|
|
23
|
+
**Rationale:** Ensures application stability across all terminal sizes and operating systems.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
3
27
|
## Date: 2025-12-21
|
|
4
28
|
|
|
5
29
|
### Changes Implemented
|
|
@@ -7,9 +31,11 @@
|
|
|
7
31
|
#### ✅ 1. Renamed "ARCHIVE_DATA" to "MOVIE_DATA"
|
|
8
32
|
|
|
9
33
|
**Files Modified:**
|
|
34
|
+
|
|
10
35
|
- `src/ui.rs`
|
|
11
36
|
|
|
12
37
|
**Changes:**
|
|
38
|
+
|
|
13
39
|
- **Line 167-169**: Changed header tab from `ARCHIVE_ACCESS` to `MOVIE_ACCESS`
|
|
14
40
|
- **Line 799-801**: Changed VOD streams pane title from `ARCHIVE_DATA` to `MOVIE_DATA`
|
|
15
41
|
|
|
@@ -20,9 +46,11 @@
|
|
|
20
46
|
#### ✅ 2. Added "All Movies" Category for VOD
|
|
21
47
|
|
|
22
48
|
**Files Modified:**
|
|
49
|
+
|
|
23
50
|
- `src/main.rs`
|
|
24
51
|
|
|
25
52
|
**Changes:**
|
|
53
|
+
|
|
26
54
|
- **Line 237-253**: Injected "All Movies" category at index 0 of VOD categories list
|
|
27
55
|
- Category ID: "ALL"
|
|
28
56
|
- Category Name: "All Movies"
|
|
@@ -35,15 +63,18 @@
|
|
|
35
63
|
#### ✅ 3. Implemented "All Movies" Stream Loading
|
|
36
64
|
|
|
37
65
|
**Files Modified:**
|
|
66
|
+
|
|
38
67
|
- `src/main.rs`
|
|
39
68
|
|
|
40
69
|
**Changes:**
|
|
70
|
+
|
|
41
71
|
- **Line 1362-1403**: Modified VOD stream loading logic to handle "ALL" category
|
|
42
72
|
- When "ALL" category is selected, calls `client.get_vod_streams_all().await`
|
|
43
73
|
- Otherwise, calls `client.get_vod_streams(&cat_id).await` for specific category
|
|
44
74
|
- Properly formatted with consistent indentation and error handling
|
|
45
75
|
|
|
46
76
|
**Code Structure:**
|
|
77
|
+
|
|
47
78
|
```rust
|
|
48
79
|
tokio::spawn(async move {
|
|
49
80
|
// Handle "All Movies" category
|
|
@@ -66,16 +97,19 @@ tokio::spawn(async move {
|
|
|
66
97
|
### Performance Considerations
|
|
67
98
|
|
|
68
99
|
**Existing Optimizations:**
|
|
100
|
+
|
|
69
101
|
- Windowed rendering is already implemented in `src/ui.rs` (lines 608-702)
|
|
70
102
|
- Only visible items are parsed and rendered, not the entire list
|
|
71
103
|
- This should provide good scrolling performance even with large datasets
|
|
72
104
|
|
|
73
105
|
**Potential Performance Issues:**
|
|
106
|
+
|
|
74
107
|
1. Network latency when loading large "All Movies" list
|
|
75
108
|
2. Parsing overhead in `parse_movie()` and `parse_stream()` functions
|
|
76
109
|
3. The windowed rendering uses a half-window buffer which should be optimal
|
|
77
110
|
|
|
78
|
-
**Recommendation:**
|
|
111
|
+
**Recommendation:**
|
|
112
|
+
|
|
79
113
|
- Monitor performance with real-world data
|
|
80
114
|
- If issues persist, consider:
|
|
81
115
|
- Caching parsed results
|
|
@@ -89,11 +123,13 @@ tokio::spawn(async move {
|
|
|
89
123
|
**Status:** ✅ App compiles and runs successfully
|
|
90
124
|
|
|
91
125
|
**Test Command:**
|
|
126
|
+
|
|
92
127
|
```bash
|
|
93
128
|
cargo run --bin matrix-iptv
|
|
94
129
|
```
|
|
95
130
|
|
|
96
131
|
**Expected Behavior:**
|
|
132
|
+
|
|
97
133
|
1. Navigate to VOD section (press 'v' from live channels)
|
|
98
134
|
2. "All Movies" should appear as the first category
|
|
99
135
|
3. Selecting "All Movies" should load all VOD streams across all categories
|