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]
|
## [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
|
## [2.0.51] - 2026-08-21
|
||||||
|
|
||||||
### In-app updates
|
### In-app updates
|
||||||
|
|||||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "multi-debrid-downloader",
|
"name": "multi-debrid-downloader",
|
||||||
"version": "2.0.51",
|
"version": "2.0.52",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "multi-debrid-downloader",
|
"name": "multi-debrid-downloader",
|
||||||
"version": "2.0.51",
|
"version": "2.0.52",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"adm-zip": "0.6.0",
|
"adm-zip": "0.6.0",
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "multi-debrid-downloader",
|
"name": "multi-debrid-downloader",
|
||||||
"version": "2.0.51",
|
"version": "2.0.52",
|
||||||
"description": "Desktop downloader",
|
"description": "Desktop downloader",
|
||||||
"main": "build/main/main/main.js",
|
"main": "build/main/main/main.js",
|
||||||
"author": "Sucukdeluxe",
|
"author": "Sucukdeluxe",
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
import fs from "node:fs";
|
import fs from "node:fs";
|
||||||
import os from "node:os";
|
import os from "node:os";
|
||||||
import path from "node:path";
|
import path from "node:path";
|
||||||
import crypto from "node:crypto";
|
import crypto from "node:crypto";
|
||||||
import { spawnSync } from "node:child_process";
|
import { spawnSync } from "node:child_process";
|
||||||
|
import { finished } from "node:stream/promises";
|
||||||
import { afterEach, describe, expect, it } from "vitest";
|
import { afterEach, describe, expect, it } from "vitest";
|
||||||
import { createPackage } from "@electron/asar";
|
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.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, "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");
|
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);
|
const payload = fs.readFileSync(outputPath);
|
||||||
fs.rmSync(rootDir, { recursive: true, force: true });
|
fs.rmSync(rootDir, { recursive: true, force: true });
|
||||||
return payload;
|
return payload;
|
||||||
|
|||||||
Reference in New Issue
Block a user