using System.Collections;
namespace EmbyToolbox.Models;
/// Правила контекстного меню «Копировать ошибку» и состава текста буфера обмена.
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);
}
///
/// Если есть подробный вывод (ffmpeg stderr, ffprobe stderr и т.д.) — только он; иначе краткий .
///
public static string GetClipboardText(ConversionQueueItem item)
{
var detail = item.ErrorDetails?.Trim();
if (!string.IsNullOrEmpty(detail))
{
return detail;
}
return item.ErrorMessage?.Trim() ?? string.Empty;
}
}