Handle missing file attachments in message processing (#587)
Some checks are pending
Build and Release / Read metadata (push) Waiting to run
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-apple-darwin, osx-arm64, macos-latest, aarch64-apple-darwin, dmg updater) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-pc-windows-msvc.exe, win-arm64, windows-latest, aarch64-pc-windows-msvc, nsis updater) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-unknown-linux-gnu, linux-arm64, ubuntu-22.04-arm, aarch64-unknown-linux-gnu, appimage deb updater) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-apple-darwin, osx-x64, macos-latest, x86_64-apple-darwin, dmg updater) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-pc-windows-msvc.exe, win-x64, windows-latest, x86_64-pc-windows-msvc, nsis updater) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-unknown-linux-gnu, linux-x64, ubuntu-22.04, x86_64-unknown-linux-gnu, appimage deb updater) (push) Blocked by required conditions
Build and Release / Prepare & create release (push) Blocked by required conditions
Build and Release / Publish release (push) Blocked by required conditions

This commit is contained in:
Thorsten Sommer 2025-12-10 17:29:20 +01:00 committed by GitHub
parent 81bc0f39e8
commit f8491e61a5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -155,6 +155,18 @@ public sealed class ContentText : IContent
sb.AppendLine(this.Text); sb.AppendLine(this.Text);
if(this.FileAttachments.Count > 0) if(this.FileAttachments.Count > 0)
{
// Filter out files that no longer exist
var existingFiles = this.FileAttachments.Where(File.Exists).ToList();
// Log warning for missing files
var missingFiles = this.FileAttachments.Except(existingFiles).ToList();
if (missingFiles.Count > 0)
foreach (var missingFile in missingFiles)
LOGGER.LogWarning("File attachment no longer exists and will be skipped: '{MissingFile}'", missingFile);
// Only proceed if there are existing files
if (existingFiles.Count > 0)
{ {
// Check Pandoc availability once before processing file attachments // Check Pandoc availability once before processing file attachments
var pandocState = await Pandoc.CheckAvailabilityAsync(Program.RUST_SERVICE, showMessages: true, showSuccessMessage: false); var pandocState = await Pandoc.CheckAvailabilityAsync(Program.RUST_SERVICE, showMessages: true, showSuccessMessage: false);
@ -167,7 +179,7 @@ public sealed class ContentText : IContent
{ {
sb.AppendLine(); sb.AppendLine();
sb.AppendLine("The following files are attached to this message:"); sb.AppendLine("The following files are attached to this message:");
foreach(var file in this.FileAttachments) foreach(var file in existingFiles)
{ {
sb.AppendLine(); sb.AppendLine();
sb.AppendLine("---------------------------------------"); sb.AppendLine("---------------------------------------");
@ -179,6 +191,8 @@ public sealed class ContentText : IContent
} }
} }
} }
}
return sb.ToString(); return sb.ToString();
} }