story(vol05): 完成89至112章与第五卷阅读包
This commit is contained in:
@@ -139,7 +139,7 @@ if ($cumulative -ne 75) { $failures.Add("Expected 75 seconds, got $cumulative")
|
||||
|
||||
$bodyStart = $scriptText.IndexOf('INT. ')
|
||||
$scriptChars = if ($bodyStart -ge 0) { [regex]::Replace($scriptText.Substring($bodyStart), '\s', '').Length } else { 0 }
|
||||
$novelFiles = @(Get-ChildItem -LiteralPath (Join-Path $projectRoot '05_小说创作/03_正文') -Filter '*.md' -File -Recurse | Where-Object { $_.Name -match '^\d{2}_' })
|
||||
$novelFiles = @(Get-ChildItem -LiteralPath (Join-Path $projectRoot '05_小说创作/03_正文') -Filter '*.md' -File -Recurse | Where-Object { $_.Name -match '^\d+_' })
|
||||
$novelChars = ($novelFiles | ForEach-Object { [regex]::Replace((Get-Content -LiteralPath $_.FullName -Raw -Encoding UTF8), '\s', '').Length } | Measure-Object -Sum).Sum
|
||||
$pngCount = @(Get-ChildItem -LiteralPath (Join-Path $projectRoot '06_AI动漫制作') -Filter '*.png' -File -Recurse).Count
|
||||
|
||||
@@ -286,21 +286,21 @@ if (($chapterIds -join ',') -ne ((1..24) -join ',')) { $failures.Add('Expected 2
|
||||
$episodeText = Read-ProjectText '06_AI动漫制作/01_改编开发/02_分集大纲/第一季_12集分集大纲.md'
|
||||
$episodeIds = @([regex]::Matches($episodeText, '(?m)^\| (\d+) \|') | ForEach-Object { [int]$_.Groups[1].Value })
|
||||
if (($episodeIds -join ',') -ne ((1..12) -join ',')) { $failures.Add('Expected 12 ordered V03 episode rows') }
|
||||
# The writing now extends through chapter 68; allow subsequent chapters without
|
||||
# freezing progress at today's count, while rejecting gaps and duplicate IDs.
|
||||
$firstVolumeIds = @($novelFiles | Where-Object { $_.Directory.Name -eq '第一卷' } | ForEach-Object { [int]$_.Name.Substring(0, 2) } | Sort-Object)
|
||||
# Parse complete numeric prefixes beyond chapter 99. Allow further chapters
|
||||
# without freezing today's total, while rejecting gaps and duplicate IDs.
|
||||
$firstVolumeIds = @($novelFiles | Where-Object { $_.Directory.Name -eq '第一卷' } | ForEach-Object { [int]($_.Name -split '_', 2)[0] } | Sort-Object)
|
||||
if (($firstVolumeIds -join ',') -ne ((0..24) -join ',')) {
|
||||
$failures.Add('Volume one must contain the prologue and chapters 1-24')
|
||||
}
|
||||
$draftIds = @($novelFiles | ForEach-Object { [int]$_.Name.Substring(0, 2) } | Sort-Object)
|
||||
$draftIds = @($novelFiles | ForEach-Object { [int]($_.Name -split '_', 2)[0] } | Sort-Object)
|
||||
if ($draftIds.Count -lt 69 -or ($draftIds -join ',') -ne ((0..($draftIds.Count - 1)) -join ',')) {
|
||||
$failures.Add('Novel draft IDs must be unique, continuous from 00 and reach at least chapter 68')
|
||||
}
|
||||
$secondVolumeIds = @($novelFiles | Where-Object { $_.Directory.Name -eq '第二卷' } | ForEach-Object { [int]$_.Name.Substring(0, 2) } | Sort-Object)
|
||||
$secondVolumeIds = @($novelFiles | Where-Object { $_.Directory.Name -eq '第二卷' } | ForEach-Object { [int]($_.Name -split '_', 2)[0] } | Sort-Object)
|
||||
if (($secondVolumeIds -join ',') -ne ((25..48) -join ',')) {
|
||||
$failures.Add('Volume two must contain chapters 25-48')
|
||||
}
|
||||
$thirdVolumeIds = @($novelFiles | Where-Object { $_.Directory.Name -eq '第三卷' } | ForEach-Object { [int]$_.Name.Substring(0, 2) } | Sort-Object)
|
||||
$thirdVolumeIds = @($novelFiles | Where-Object { $_.Directory.Name -eq '第三卷' } | ForEach-Object { [int]($_.Name -split '_', 2)[0] } | Sort-Object)
|
||||
if (($thirdVolumeIds -join ',') -ne ((49..68) -join ',')) {
|
||||
$failures.Add('Volume three must contain chapters 49-68')
|
||||
}
|
||||
@@ -309,7 +309,7 @@ $thirdOutlineIds = @([regex]::Matches($thirdOutline, '(?m)^\| (\d+) \|') | ForEa
|
||||
if (($thirdOutlineIds -join ',') -ne ($thirdVolumeIds -join ',')) {
|
||||
$failures.Add('Volume three chapter outline and prose IDs differ')
|
||||
}
|
||||
$fourthVolumeIds = @($novelFiles | Where-Object { $_.Directory.Name -eq '第四卷' } | ForEach-Object { [int]$_.Name.Substring(0, 2) } | Sort-Object)
|
||||
$fourthVolumeIds = @($novelFiles | Where-Object { $_.Directory.Name -eq '第四卷' } | ForEach-Object { [int]($_.Name -split '_', 2)[0] } | Sort-Object)
|
||||
if ($fourthVolumeIds.Count -gt 0) {
|
||||
if (($fourthVolumeIds -join ',') -ne ((69..88) -join ',')) {
|
||||
$failures.Add('Completed volume four must contain chapters 69-88')
|
||||
@@ -320,6 +320,17 @@ if ($fourthVolumeIds.Count -gt 0) {
|
||||
$failures.Add('Volume four chapter outline and prose IDs differ')
|
||||
}
|
||||
}
|
||||
$fifthVolumeIds = @($novelFiles | Where-Object { $_.Directory.Name -eq '第五卷' } | ForEach-Object { [int]($_.Name -split '_', 2)[0] } | Sort-Object)
|
||||
if ($fifthVolumeIds.Count -gt 0) {
|
||||
if (($fifthVolumeIds -join ',') -ne ((89..112) -join ',')) {
|
||||
$failures.Add('Completed volume five must contain chapters 89-112')
|
||||
}
|
||||
$fifthOutline = Read-ProjectText '05_小说创作/02_章节大纲/第五卷_章节大纲.md'
|
||||
$fifthOutlineIds = @([regex]::Matches($fifthOutline, '(?m)^\| (\d+) \|') | ForEach-Object { [int]$_.Groups[1].Value })
|
||||
if (($fifthOutlineIds -join ',') -ne ($fifthVolumeIds -join ',')) {
|
||||
$failures.Add('Volume five chapter outline and prose IDs differ')
|
||||
}
|
||||
}
|
||||
foreach ($legacy in @(
|
||||
'06_AI动漫制作/03_分镜与镜头/01_镜头表/S01E01_SC12_75秒试片镜头表.md',
|
||||
'06_AI动漫制作/04_生成方案/01_图像提示词/S01E01_SC12_关键帧提示词.md',
|
||||
|
||||
Reference in New Issue
Block a user