add mp4s to rename step
This commit is contained in:
@@ -28,6 +28,9 @@ function Sync-SequenceFilenames {
|
||||
$collisions = 0
|
||||
$errors = 0
|
||||
$checked = 0
|
||||
$minFrame = [int]::MaxValue
|
||||
$maxFrame = -1
|
||||
$frameCount = 0
|
||||
|
||||
if ($LogFile) { "[$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')] RENAME CHECK in '$SequenceFolderPath' (seq='$SequenceName')" | Add-Content -LiteralPath $LogFile }
|
||||
|
||||
@@ -52,6 +55,13 @@ function Sync-SequenceFilenames {
|
||||
continue
|
||||
}
|
||||
|
||||
try {
|
||||
$n = [int]$digits
|
||||
if ($n -lt $minFrame) { $minFrame = $n }
|
||||
if ($n -gt $maxFrame) { $maxFrame = $n }
|
||||
$frameCount++
|
||||
} catch {}
|
||||
|
||||
$targetBase = "$SequenceName" + '_' + $digits
|
||||
if ($base -eq $targetBase) { continue }
|
||||
|
||||
@@ -73,6 +83,62 @@ function Sync-SequenceFilenames {
|
||||
}
|
||||
}
|
||||
|
||||
$minOut = $null
|
||||
$maxOut = $null
|
||||
if ($frameCount -gt 0) {
|
||||
$minOut = $minFrame
|
||||
$maxOut = $maxFrame
|
||||
}
|
||||
return [pscustomobject]@{
|
||||
Renamed = $renamed
|
||||
Collisions = $collisions
|
||||
Errors = $errors
|
||||
Checked = $checked
|
||||
MinFrame = $minOut
|
||||
MaxFrame = $maxOut
|
||||
FrameCount = $frameCount
|
||||
}
|
||||
}
|
||||
|
||||
function Rename-SequencePreviewMp4 {
|
||||
param(
|
||||
[Parameter(Mandatory)] [string]$SequenceFolderPath,
|
||||
[Parameter(Mandatory)] [string]$SequenceName,
|
||||
[Parameter(Mandatory)] [int]$StartFrame,
|
||||
[Parameter(Mandatory)] [int]$EndFrame,
|
||||
[string]$LogFile
|
||||
)
|
||||
$renamed = 0
|
||||
$collisions = 0
|
||||
$errors = 0
|
||||
$checked = 0
|
||||
|
||||
$targetName = "$SequenceName-$StartFrame-$EndFrame.mp4"
|
||||
$targetPath = Join-Path $SequenceFolderPath $targetName
|
||||
|
||||
$mp4s = Get-ChildItem -LiteralPath $SequenceFolderPath -File -Filter '*.mp4' -ErrorAction SilentlyContinue |
|
||||
Where-Object { $_.FullName -notlike '*\_archive\*' }
|
||||
|
||||
foreach ($m in $mp4s) {
|
||||
$checked++
|
||||
if ($m.Name -eq $targetName) { continue }
|
||||
try {
|
||||
if (Test-Path -LiteralPath $targetPath) {
|
||||
$collisions++
|
||||
if ($LogFile) { "[$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')] MP4 RENAME SKIP collision: '$($m.Name)' -> '$targetName'" | Add-Content -LiteralPath $LogFile }
|
||||
continue
|
||||
}
|
||||
Rename-Item -LiteralPath $m.FullName -NewName $targetName -ErrorAction Stop
|
||||
$renamed++
|
||||
if ($LogFile) { "[$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')] MP4 RENAME: '$($m.Name)' -> '$targetName'" | Add-Content -LiteralPath $LogFile }
|
||||
break
|
||||
}
|
||||
catch {
|
||||
$errors++
|
||||
if ($LogFile) { "[$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')] MP4 RENAME ERROR for '$($m.Name)': $($_.Exception.Message)" | Add-Content -LiteralPath $LogFile }
|
||||
}
|
||||
}
|
||||
|
||||
return [pscustomobject]@{
|
||||
Renamed = $renamed
|
||||
Collisions = $collisions
|
||||
@@ -99,6 +165,9 @@ try {
|
||||
$filesRenamedTotal = 0
|
||||
$renameCollisions = 0
|
||||
$renameErrors = 0
|
||||
$mp4RenamedTotal = 0
|
||||
$mp4Collisions = 0
|
||||
$mp4Errors = 0
|
||||
foreach ($d in $dailyDirs) {
|
||||
$dailiesScanned++
|
||||
$seqDirs = @(Get-ChildItem -LiteralPath $d.FullName -Directory | Where-Object { $_.Name -ne '_archive' })
|
||||
@@ -112,6 +181,16 @@ try {
|
||||
$filesRenamedTotal += $renameResult.Renamed
|
||||
$renameCollisions += $renameResult.Collisions
|
||||
$renameErrors += $renameResult.Errors
|
||||
|
||||
if ($renameResult.Renamed -gt 0 -and $renameResult.FrameCount -gt 0 -and $null -ne $renameResult.MinFrame -and $null -ne $renameResult.MaxFrame) {
|
||||
$mp4Result = Rename-SequencePreviewMp4 -SequenceFolderPath $s.FullName -SequenceName $s.Name -StartFrame $renameResult.MinFrame -EndFrame $renameResult.MaxFrame -LogFile $logFile
|
||||
if ($DebugMode -or $mp4Result.Renamed -gt 0 -or $mp4Result.Collisions -gt 0 -or $mp4Result.Errors -gt 0) {
|
||||
Write-Host "[MP4]|$($s.FullName)|$($s.Name)|renamed=$($mp4Result.Renamed)|collisions=$($mp4Result.Collisions)|errors=$($mp4Result.Errors)" -ForegroundColor Cyan
|
||||
}
|
||||
$mp4RenamedTotal += $mp4Result.Renamed
|
||||
$mp4Collisions += $mp4Result.Collisions
|
||||
$mp4Errors += $mp4Result.Errors
|
||||
}
|
||||
$young = Get-YoungestTimestamp -FolderPath $s.FullName
|
||||
$filesCount = @(Get-ChildItem -LiteralPath $s.FullName -Recurse -File -ErrorAction SilentlyContinue | Where-Object { $_.FullName -notlike '*\_archive\*' }).Count
|
||||
$seqName = $s.Name
|
||||
@@ -210,6 +289,7 @@ try {
|
||||
Write-Host "Completed OK: $sequencesMirrored" -ForegroundColor Green
|
||||
Write-Host "Completed FAIL: $mirrorFailures" -ForegroundColor Red
|
||||
Write-Host "Files renamed: $filesRenamedTotal (collisions: $renameCollisions, errors: $renameErrors)" -ForegroundColor White
|
||||
Write-Host "Preview MP4s renamed: $mp4RenamedTotal (collisions: $mp4Collisions, errors: $mp4Errors)" -ForegroundColor White
|
||||
|
||||
# Summarize skipped sequences
|
||||
$skippedLines = @()
|
||||
|
||||
Reference in New Issue
Block a user