Add remote host and item diagnostics

This commit is contained in:
Sucukdeluxe
2026-03-09 01:21:11 +01:00
parent 90a06d2926
commit 56ce7c2aea
13 changed files with 1387 additions and 79 deletions
+30
View File
@@ -52,6 +52,7 @@ import { AllDebridWebUnrestrictor, BestDebridWebUnrestrictor, DebridService, Meg
import { cleanupArchives, clearExtractResumeState, collectArchiveCleanupTargets, extractPackageArchives, findArchiveCandidates, hasAnyFilesRecursive, removeEmptyDirectoryTree, type ExtractArchiveFailureInfo } from "./extractor";
import { validateFileAgainstManifest } from "./integrity";
import { logger } from "./logger";
import { ensureItemLog, getItemLogPath as getPersistedItemLogPath, logItemEvent as writeItemLogEvent } from "./item-log";
import { ensurePackageLog, getPackageLogPath as getPersistedPackageLogPath, logPackageEvent as writePackageLogEvent } from "./package-log";
import { StoragePaths, saveSession, saveSessionAsync, saveSettings, saveSettingsAsync } from "./storage";
import { compactErrorText, ensureDirPath, filenameFromUrl, formatEta, humanSize, looksLikeOpaqueFilename, nowMs, sanitizeFilename, sleep } from "./utils";
@@ -1327,6 +1328,14 @@ export class DownloadManager extends EventEmitter {
return getPersistedPackageLogPath(packageId);
}
public getItemLogPath(itemId: string): string | null {
const item = this.session.items[itemId];
if (item) {
return this.ensureItemLogForItem(item);
}
return getPersistedItemLogPath(itemId);
}
private ensurePackageLogForPackage(pkg: PackageEntry): string | null {
return ensurePackageLog({
packageId: pkg.id,
@@ -1336,6 +1345,17 @@ export class DownloadManager extends EventEmitter {
});
}
private ensureItemLogForItem(item: DownloadItem): string | null {
const pkg = this.session.packages[item.packageId];
return ensureItemLog({
itemId: item.id,
packageId: item.packageId,
packageName: pkg?.name || "",
fileName: item.fileName,
targetPath: item.targetPath
});
}
private logPackage(packageId: string, level: "INFO" | "WARN" | "ERROR", message: string, fields?: Record<string, unknown>): void {
writePackageLogEvent(packageId, level, message, fields);
}
@@ -1358,6 +1378,7 @@ export class DownloadManager extends EventEmitter {
if (pkg) {
this.ensurePackageLogForPackage(pkg);
}
this.ensureItemLogForItem(item);
this.logPackage(item.packageId, level, message, {
packageName: pkg?.name || "",
itemId: item.id,
@@ -1366,6 +1387,15 @@ export class DownloadManager extends EventEmitter {
targetPath: item.targetPath,
...fields
});
writeItemLogEvent(item.id, level, message, {
packageId: item.packageId,
packageName: pkg?.name || "",
itemId: item.id,
fileName: item.fileName,
status: item.status,
targetPath: item.targetPath,
...fields
});
}
public setSettings(next: AppSettings): void {