87 lines
2.6 KiB
C#
87 lines
2.6 KiB
C#
using AntDesign;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using VideoAnalysisCore.AICore.ChatGPT.Dto;
|
|
using VideoAnalysisCore.Enum;
|
|
|
|
namespace Learn.VideoAnalysis.Controllers.Dto
|
|
{
|
|
/// <summary>
|
|
/// 视频处理 请求
|
|
/// </summary>
|
|
public class VideoAnalysisReq
|
|
{
|
|
/// <summary>
|
|
/// 媒体路径
|
|
/// </summary>
|
|
[Required(ErrorMessage = "资源URL是必填项")]
|
|
[Url(ErrorMessage = "请输入有效的 URL")]
|
|
public string MediaUrl { get; set; } = string.Empty;
|
|
/// <summary>
|
|
/// ApiKey
|
|
/// </summary>
|
|
[Required(ErrorMessage = "接口Token是必填项")]
|
|
public string ApiToken { get; set; } = string.Empty;
|
|
/// <summary>
|
|
/// 自定义值 任务完成后附带通知
|
|
/// </summary>
|
|
public string Tag { get; set; } = string.Empty;
|
|
/// <summary>
|
|
/// 自定义Id可用于任务完成之后的查询
|
|
/// </summary>
|
|
public string? TagId { get; set; }
|
|
/// <summary>
|
|
///回调Api地址
|
|
/// </summary>
|
|
//[Required(ErrorMessage = "回调Api地址是必填项")]
|
|
//[Url(ErrorMessage = "请输入有效的 URL")]
|
|
//public string CallBackUrl { get; set; } = string.Empty;
|
|
|
|
|
|
}
|
|
public class TextValue
|
|
{
|
|
public TextValue(float v)
|
|
{
|
|
var s = TimeSpan.FromSeconds((double)v);
|
|
var td = new[] { s.Hours, s.Minutes, s.Seconds };
|
|
Text = string.Join(':', td.Where(s => s > 0));
|
|
Value = v;
|
|
}
|
|
public TextValue(string t,object v)
|
|
{
|
|
|
|
}
|
|
public TextValue()
|
|
{
|
|
|
|
}
|
|
public string Text { get; set; }
|
|
public object Value { get; set; }
|
|
}
|
|
public class TaskInfoRes: TaskRes
|
|
{
|
|
public TaskInfoRes()
|
|
{
|
|
|
|
}
|
|
/// <summary>
|
|
/// 任务当前执行状态
|
|
/// </summary>
|
|
public RedisChannelEnum Status { get; set; }
|
|
/// <summary>
|
|
/// 时间轴状态枚举
|
|
/// </summary>
|
|
public Dictionary<int, string> TimeTypeEnum =>
|
|
Enum.GetValues(typeof(TimeBaseTypeEnum))
|
|
.Cast<TimeBaseTypeEnum>()
|
|
.ToDictionary(x => (int)x, x => x.ToString());
|
|
|
|
/// <summary>
|
|
/// 时间轴合计
|
|
/// </summary>
|
|
public Dictionary<TimeBaseTypeEnum, TextValue>? TimeBaseTotal =>
|
|
TimeBase?.GroupBy(s => s.TimeBaseType??TimeBaseTypeEnum.教师讲授)?
|
|
.ToDictionary(s => s.Key, s => new TextValue(s.Sum(x => x.End - x.Start)));
|
|
}
|
|
}
|