import { BaseCommand, flags } from '@adonisjs/core/ace' import { CommandOptions } from '@adonisjs/core/types/ace' import { renameFromStoredContents, renameHiddenNamed } from '#services/ArchiveService' import { regroupAndRenameFromPar2 } from '#services/NameService' /** Renames random-named releases from their stored archive listings (no downloads). */ export default class ReleaseRename extends BaseCommand { public static commandName = 'release:rename' public static description = 'Renames random-named releases from their par2 listings and archive contents.' public static options: CommandOptions = { startApp: true, } @flags.boolean({ description: 'Only releases named after a hidden archive entry (e.g. a decoy ".x.mkv")' }) declare hidden: boolean public async run() { if (this.hidden) { this.logger.info(`Renamed ${await renameHiddenNamed()} releases named after a hidden archive entry.`) return } const par2 = await regroupAndRenameFromPar2() this.logger.info(`par2: ${par2.regrouped} files moved into the set that names them, ${par2.renamed} releases renamed.`) this.logger.info(`Renamed ${await renameFromStoredContents()} releases from their archive contents.`) } }