release: prepare v2.0.52
This commit is contained in:
@@ -4,6 +4,23 @@ All notable changes to Multi-Debrid Downloader are documented in this file.
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [2.0.52] - 2026-08-21
|
||||
|
||||
### Rolling account statistics
|
||||
|
||||
- Added a true rolling Last 24 Hours range directly after Today in Statistics.
|
||||
- Attributed downloaded traffic to the exact Real-Debrid, Mega-Debrid, or Debrid-Link account that produced each direct link.
|
||||
- Displayed the known account username with its provider while retaining safe fallback labels for accounts without checked identity data.
|
||||
- Kept the rolling total accurate across midnight, account disablement, deletion, application restarts, and session-statistics resets.
|
||||
- Started exact rolling account collection after the upgrade without inventing historical account ownership from older daily totals.
|
||||
|
||||
### Statistics precision and performance
|
||||
|
||||
- Kept primary statistics data totals in gigabytes above 1 TB so large daily volumes remain precise, for example 1,250 GB instead of 1.2 TB.
|
||||
- Stored traffic in sparse minute buckets with a bounded 48-hour retention window.
|
||||
- Maintained the visible 24-hour aggregate incrementally and kept raw minute history out of frequent renderer snapshots.
|
||||
- Preserved full rolling history in encrypted full backups while removing account IDs and labels from support statistics.
|
||||
|
||||
## [2.0.51] - 2026-08-21
|
||||
|
||||
### In-app updates
|
||||
|
||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "multi-debrid-downloader",
|
||||
"version": "2.0.51",
|
||||
"version": "2.0.52",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "multi-debrid-downloader",
|
||||
"version": "2.0.51",
|
||||
"version": "2.0.52",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"adm-zip": "0.6.0",
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "multi-debrid-downloader",
|
||||
"version": "2.0.51",
|
||||
"version": "2.0.52",
|
||||
"description": "Desktop downloader",
|
||||
"main": "build/main/main/main.js",
|
||||
"author": "Sucukdeluxe",
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import fs from "node:fs";
|
||||
import os from "node:os";
|
||||
import path from "node:path";
|
||||
import crypto from "node:crypto";
|
||||
import { spawnSync } from "node:child_process";
|
||||
import crypto from "node:crypto";
|
||||
import { spawnSync } from "node:child_process";
|
||||
import { finished } from "node:stream/promises";
|
||||
import { afterEach, describe, expect, it } from "vitest";
|
||||
import { createPackage } from "@electron/asar";
|
||||
|
||||
@@ -47,7 +48,10 @@ async function createFixtureAsar(version: string): Promise<Buffer> {
|
||||
fs.mkdirSync(path.join(sourceDir, "build", "main", "main"), { recursive: true });
|
||||
fs.writeFileSync(path.join(sourceDir, "package.json"), JSON.stringify({ name: "multi-debrid-downloader", version }), "utf8");
|
||||
fs.writeFileSync(path.join(sourceDir, "build", "main", "main", "main.js"), `var package_default = { name: "multi-debrid-downloader", version: "${version}" };`, "utf8");
|
||||
await createPackage(sourceDir, outputPath);
|
||||
const output = await createPackage(sourceDir, outputPath) as unknown as NodeJS.WritableStream | undefined;
|
||||
if (output && typeof output.once === "function" && !(output as { writableFinished?: boolean }).writableFinished) {
|
||||
await finished(output);
|
||||
}
|
||||
const payload = fs.readFileSync(outputPath);
|
||||
fs.rmSync(rootDir, { recursive: true, force: true });
|
||||
return payload;
|
||||
|
||||
Reference in New Issue
Block a user