feat(studio): run nitro scans in the background with cancel-re-attach and nightly auto-clean
This commit is contained in:
1 parent
9d571e0c29
commit
6c53f4680c
14 files changed
+1547
-303
No files matched your search
@@ -6497,6 +6497,78 @@
|
||||
},
|
||||
"admin": {
|
||||
"studio": {
|
||||
"nitroCleanup": {
|
||||
"alreadyRunning": "A scan is already running — attached to it.",
|
||||
"ageUnknown": "age unknown",
|
||||
"ageBelow": "< 1d",
|
||||
"scanButton": "Scan furniture assets",
|
||||
"scanningAssets": "Scanning assets…",
|
||||
"cancelButton": "Cancel",
|
||||
"deleteSelected": "Delete selected ({count})",
|
||||
"deleting": "Deleting…",
|
||||
"redownloadBroken": "Re-download broken",
|
||||
"redownloading": "Re-downloading…",
|
||||
"autoClean": "Auto-clean old fakes",
|
||||
"cleaning": "Cleaning…",
|
||||
"exportManifest": "Export manifest",
|
||||
"exporting": "Exporting…",
|
||||
"phaseStems": "Loading furniture stems…",
|
||||
"phaseReaddir": "Reading asset directories…",
|
||||
"phaseValidate": "Validating .nitro bundles…",
|
||||
"phaseScanning": "Scanning…",
|
||||
"scanProgressFiles": "{count} files",
|
||||
"repairProgress": "ok {ok}, failed {failed}",
|
||||
"attachedNotice": "Scan continues in the background — results will appear when it finishes.",
|
||||
"sessionCancelled": "Scan cancelled.",
|
||||
"onlyOldLabel": "Only show files older than",
|
||||
"onlyOldAgeLabel": "Minimum age in days to display",
|
||||
"onlyOldToggle": "Hide recent files",
|
||||
"daysLabel": "days",
|
||||
"autoAgeLabel": "Minimum age in days for auto-clean",
|
||||
"loadingResult": "Loading scan result…",
|
||||
"scannedStat": "asset files scanned",
|
||||
"cachedNotice": "(cached — directories unchanged)",
|
||||
"fakeStat": "Fake nitros (no matching item)",
|
||||
"brokenStat": "Broken nitros (unparseable)",
|
||||
"groupEmpty": "None found",
|
||||
"selectedCount": "{count} selected",
|
||||
"copiesBadge": "{count} copies",
|
||||
"groupFakeLabel": "Fake nitros",
|
||||
"groupFakeDescription": "These files match no item in items_base — leftovers from deleted or renamed furniture.",
|
||||
"groupBrokenLabel": "Broken nitros",
|
||||
"groupBrokenDescription": "These files belong to an item but cannot be parsed as a valid Nitro bundle.",
|
||||
"groupSwfLabel": "Orphaned SWFs",
|
||||
"groupSwfDescription": ".swf files that match no item in items_base.",
|
||||
"groupIconLabel": "Orphaned icons",
|
||||
"groupIconDescription": "Icon files that match no item in items_base.",
|
||||
"warningText": "Deleting a broken .nitro leaves its item in the database without a bundle — prefer re-downloading it, or let the catalog audit re-obtain it later. Database rows are never removed by this tool.",
|
||||
"onlyAssetsTouched": "Only asset files are touched — FurnitureData.json and database rows stay intact.",
|
||||
"emptyHint": "Scan every furni asset directory to find fake and broken nitro bundles plus orphaned SWFs and icons. Delete them, re-download the broken ones, or auto-clean old leftovers.",
|
||||
"noResult": "No scan result yet — run a furniture asset scan first.",
|
||||
"scanFailed": "The scan failed.",
|
||||
"confirmDeleteTitle": "Delete {count} asset file(s)?",
|
||||
"confirmDeleteDescription": "The files will be removed from every directory (public + mirrored gamedata). Database rows are never touched.",
|
||||
"confirmDeleteLabel": "Delete",
|
||||
"confirmRepairTitle": "Re-download {count} broken .nitro bundle(s)?",
|
||||
"confirmRepairDescription": "The bundles will be fetched again from the configured nitro sources and written over every directory (public + mirrored gamedata).",
|
||||
"confirmRepairLabel": "Re-download",
|
||||
"confirmAutoCleanTitle": "Auto-clean fake nitros older than {days} day(s)?",
|
||||
"confirmAutoCleanDescription": "Only fake .nitro files (no matching item) older than the threshold are removed. Broken bundles and recent files are never touched.",
|
||||
"confirmAutoCleanLabel": "Auto-clean",
|
||||
"toastDeletePartial": "Deleted {copies} copy/copies, but some files could not be removed",
|
||||
"toastDeleteDone": "Deleted {copies} file copy/copies ({deleted} file(s))",
|
||||
"toastRepairDone": "Repaired {count} .nitro bundle(s)",
|
||||
"toastRepairFailed": "Could not re-obtain any bundle ({failed} failed)",
|
||||
"toastRepairCancelled": "Repair cancelled",
|
||||
"toastAutoCleanDone": "Auto-cleaned {deleted} old fake .nitro file(s) ({copies} copies). Skipped {recent} recent + {broken} broken.",
|
||||
"toastAutoCleanNothing": "Nothing old enough to remove (skipped {recent} recent, {broken} broken)",
|
||||
"toastManifestDownload": "Scan manifest downloaded",
|
||||
"historyTitle": "Auto-clean history",
|
||||
"historyScheduled": "scheduled",
|
||||
"historyManual": "manual",
|
||||
"historyEntry": "{deleted} removed ({copies} copies); {recent} recent and {broken} broken skipped",
|
||||
"historyErrors": "{count} errors"
|
||||
},
|
||||
"importDiagnostics": {
|
||||
"attempts": "Source file diagnostics",
|
||||
"preliminary": "Preliminary check: these addresses were checked without downloading the files. The import will validate the original files.",
|
||||
|
||||
@@ -6503,6 +6503,78 @@
|
||||
},
|
||||
"admin": {
|
||||
"studio": {
|
||||
"nitroCleanup": {
|
||||
"alreadyRunning": "Er draait al een scan — de resultaten volgen als die klaar is.",
|
||||
"ageUnknown": "leeftijd onbekend",
|
||||
"ageBelow": "< 1d",
|
||||
"scanButton": "Furniture assets scannen",
|
||||
"scanningAssets": "Assets scannen…",
|
||||
"cancelButton": "Annuleren",
|
||||
"deleteSelected": "{count} geselecteerd verwijderen",
|
||||
"deleting": "Verwijderen…",
|
||||
"redownloadBroken": "Opnieuw downloaden",
|
||||
"redownloading": "Opnieuw downloaden…",
|
||||
"autoClean": "Oude fakes opschonen",
|
||||
"cleaning": "Opschonen…",
|
||||
"exportManifest": "Manifest exporteren",
|
||||
"exporting": "Exporteren…",
|
||||
"phaseStems": "Furniture stems laden…",
|
||||
"phaseReaddir": "Asset-mappen lezen…",
|
||||
"phaseValidate": ".nitro-bundles valideren…",
|
||||
"phaseScanning": "Scannen…",
|
||||
"scanProgressFiles": "{count} bestanden",
|
||||
"repairProgress": "ok {ok}, mislukt {failed}",
|
||||
"attachedNotice": "De scan draait op de achtergrond verder — resultaten verschijnen als die klaar is.",
|
||||
"sessionCancelled": "Scan geannuleerd.",
|
||||
"onlyOldLabel": "Alleen bestanden ouder dan",
|
||||
"onlyOldAgeLabel": "Minimumleeftijd in dagen om te tonen",
|
||||
"onlyOldToggle": "Recente bestanden verbergen",
|
||||
"daysLabel": "dagen",
|
||||
"autoAgeLabel": "Minimumleeftijd in dagen voor opruimen",
|
||||
"loadingResult": "Scanresultaat laden…",
|
||||
"scannedStat": "asset-bestanden gescand",
|
||||
"cachedNotice": "(in cache — mappen ongewijzigd)",
|
||||
"fakeStat": "Fake-nitros (geen overeenkomend item)",
|
||||
"brokenStat": "Kapotte nitros (niet parseerbaar)",
|
||||
"groupEmpty": "Niets gevonden",
|
||||
"selectedCount": "{count} geselecteerd",
|
||||
"copiesBadge": "{count} kopieën",
|
||||
"groupFakeLabel": "Fake-nitros",
|
||||
"groupFakeDescription": "Deze bestanden matchen geen enkel item in items_base — overblijfselen van verwijderde of hernoemde furniture.",
|
||||
"groupBrokenLabel": "Kapotte nitros",
|
||||
"groupBrokenDescription": "Deze bestanden horen bij een item maar kunnen niet als geldige Nitro-bundle worden gelezen.",
|
||||
"groupSwfLabel": "Verweesde SWFs",
|
||||
"groupSwfDescription": ".swf-bestanden die geen enkel item in items_base matchen.",
|
||||
"groupIconLabel": "Verweesde iconen",
|
||||
"groupIconDescription": "Icoonbestanden die geen enkel item in items_base matchen.",
|
||||
"warningText": "Een kapotte .nitro verwijderen laat het item in de database achter zonder bundle — download het liever opnieuw, of laat de catalogaudit het later opnieuw ophalen. Database-rijen worden door deze tool nooit verwijderd.",
|
||||
"onlyAssetsTouched": "Alleen asset-bestanden worden aangeraakt — FurnitureData.json en database-rijen blijven intact.",
|
||||
"emptyHint": "Scan elke furni-assetmap om fake- en kapotte nitro-bundles plus verweesde SWFs en iconen te vinden. Verwijder ze, download de kapotte opnieuw of ruim oude overblijfselen automatisch op.",
|
||||
"noResult": "Nog geen scanresultaat — start eerst een furniture-assetscan.",
|
||||
"scanFailed": "De scan is mislukt.",
|
||||
"confirmDeleteTitle": "{count} assetbestand(en) verwijderen?",
|
||||
"confirmDeleteDescription": "De bestanden worden uit elke map verwijderd (publiek + gespiegelde gamedata). Database-rijen worden nooit aangeraakt.",
|
||||
"confirmDeleteLabel": "Verwijderen",
|
||||
"confirmRepairTitle": "{count} kapotte .nitro-bundles opnieuw downloaden?",
|
||||
"confirmRepairDescription": "De bundles worden opnieuw opgehaald van de geconfigureerde nitro-bronnen en over elke map geschreven (publiek + gespiegelde gamedata).",
|
||||
"confirmRepairLabel": "Opnieuw downloaden",
|
||||
"confirmAutoCleanTitle": "Fake-nitros ouder dan {days} dag(en) automatisch opruimen?",
|
||||
"confirmAutoCleanDescription": "Alleen fake .nitro-bestanden (geen overeenkomend item) ouder dan de drempel worden verwijderd. Kapotte bundles en recente bestanden worden nooit aangeraakt.",
|
||||
"confirmAutoCleanLabel": "Opschonen",
|
||||
"toastDeletePartial": "{copies} kopie(ën) verwijderd, maar sommige bestanden konden niet worden verwijderd",
|
||||
"toastDeleteDone": "{copies} bestandskopie(ën) verwijderd ({deleted} bestand(en))",
|
||||
"toastRepairDone": "{count} .nitro-bundle(s) gerepareerd",
|
||||
"toastRepairFailed": "Geen enkele bundle kon worden opgehaald ({failed} mislukt)",
|
||||
"toastRepairCancelled": "Herstel geannuleerd",
|
||||
"toastAutoCleanDone": "{deleted} oude fake .nitro-bestand(en) opgeruimd ({copies} kopieën). {recent} recente en {broken} kapotte overgeslagen.",
|
||||
"toastAutoCleanNothing": "Niets oud genoeg om te verwijderen ({recent} recente en {broken} kapotte overgeslagen)",
|
||||
"toastManifestDownload": "Scanmanifest gedownload",
|
||||
"historyTitle": "Opruimgeschiedenis",
|
||||
"historyScheduled": "gepland",
|
||||
"historyManual": "handmatig",
|
||||
"historyEntry": "{deleted} verwijderd ({copies} kopieën); {recent} recente en {broken} kapotte overgeslagen",
|
||||
"historyErrors": "{count} fouten"
|
||||
},
|
||||
"importDiagnostics": {
|
||||
"attempts": "Bestandsdiagnostiek",
|
||||
"preliminary": "Voorafgaande controle van adressen; inhoud wordt tijdens import gevalideerd.",
|
||||
|
||||
Reference in new issue
Block a user