Skip to content

Commit 3d013fe

Browse files
committed
feat: add config memorysplit
1 parent 467f7c6 commit 3d013fe

1 file changed

Lines changed: 44 additions & 0 deletions

File tree

TelegramDownloader/Pages/Config.razor

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,44 @@
319319
</div>
320320
</div>
321321

322+
<div class="config-item">
323+
<div class="config-item-info">
324+
<div class="config-item-label">
325+
<i class="bi bi-memory"></i>
326+
Memory-Based Split
327+
</div>
328+
<div class="config-item-description">
329+
Split large files in memory instead of creating temporary files on disk.
330+
This is more efficient for systems with limited disk space.
331+
<span class="badge bg-info ms-2">Requires Split Size > 0</span>
332+
</div>
333+
</div>
334+
<div class="config-item-control">
335+
<InputCheckbox @bind-Value="Model!.EnableMemorySplitUpload" class="form-check-input config-switch" disabled="@(Model.SplitSize == 0)" />
336+
</div>
337+
</div>
338+
339+
@if (Model.EnableMemorySplitUpload && Model.SplitSize > 0)
340+
{
341+
<div class="config-item">
342+
<div class="config-item-info">
343+
<div class="config-item-label">
344+
<i class="bi bi-sliders2"></i>
345+
Memory Chunk Size
346+
</div>
347+
<div class="config-item-description">
348+
Size of each chunk when splitting in memory (1-4 GB). Must beSplit Size.
349+
</div>
350+
</div>
351+
<div class="config-item-control">
352+
<div class="config-range-group">
353+
<RangeInput TValue="int" @bind-Value="Model.MemorySplitSizeGB" Min="1" Max="@GetMaxMemorySplitSize()" style="width: 120px;" />
354+
<span class="config-range-value">@Model.MemorySplitSizeGB GB</span>
355+
</div>
356+
</div>
357+
</div>
358+
}
359+
322360
<div class="config-item">
323361
<div class="config-item-info">
324362
<div class="config-item-label">
@@ -1116,6 +1154,12 @@
11161154
return $"{size:0.##} {sizes[order]}";
11171155
}
11181156

1157+
private int GetMaxMemorySplitSize()
1158+
{
1159+
// MemorySplitSizeGB must be <= SplitSize and <= 4
1160+
return Math.Min(Model?.SplitSize ?? 4, 4);
1161+
}
1162+
11191163
public void Dispose()
11201164
{
11211165
_disposed = true;

0 commit comments

Comments
 (0)