emby-toolbox/EmbyToolbox/Models/ConversionQueueItemErrorCopy.cs
Emby Toolbox 6264b487fe Initial commit: Emby Toolbox (conversion scroll fix, bulk Del for tracks).
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-12 21:33:47 +05:00

39 lines
1.3 KiB
C#

using System.Collections;
namespace EmbyToolbox.Models;
/// <summary>Правила контекстного меню «Копировать ошибку» и состава текста буфера обмена.</summary>
public static class ConversionQueueItemErrorCopy
{
public static bool IsEligibleItem(ConversionQueueItem? item)
{
return item is not null
&& string.Equals(item.Status, ConversionQueueStatus.Error, StringComparison.Ordinal)
&& !string.IsNullOrWhiteSpace(item.ErrorMessage);
}
public static bool ShouldShowForSelection(IList? selected)
{
if (selected is not { Count: 1 })
{
return false;
}
return IsEligibleItem(selected[0] as ConversionQueueItem);
}
/// <summary>
/// Если есть подробный вывод (ffmpeg stderr, ffprobe stderr и т.д.) — только он; иначе краткий <see cref="ConversionQueueItem.ErrorMessage"/>.
/// </summary>
public static string GetClipboardText(ConversionQueueItem item)
{
var detail = item.ErrorDetails?.Trim();
if (!string.IsNullOrEmpty(detail))
{
return detail;
}
return item.ErrorMessage?.Trim() ?? string.Empty;
}
}