2026-03-09 20:55:41 +08:00

67 lines
2.2 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/// 图转视频任务项V2 字段映射)
class TaskItem {
const TaskItem({
required this.templateName,
required this.title,
this.previewImageUrl,
this.previewVideoUrl,
this.imageCount = 0,
this.taskType,
this.needopt = false,
this.ext,
this.credits480p,
this.credits720p,
});
final String templateName;
final String title;
final String? previewImageUrl;
final String? previewVideoUrl;
final int imageCount;
final String? taskType;
final bool needopt;
final String? ext;
/// 480P 积分,来自 reverify.greaves
final int? credits480p;
/// 720P 积分,来自 preprocess.greaves
final int? credits720p;
@override
String toString() =>
'TaskItem(templateName: $templateName, title: $title, previewImageUrl: $previewImageUrl, '
'previewVideoUrl: $previewVideoUrl, imageCount: $imageCount, taskType: $taskType, needopt: $needopt, credits480p: $credits480p, credits720p: $credits720p)';
factory TaskItem.fromJson(Map<String, dynamic> json) {
final extract = json['extract'] as Map<String, dynamic>?;
final preempt = json['preempt'] as Map<String, dynamic>?;
final reverify = json['reverify'] as Map<String, dynamic>?;
final preprocess = json['preprocess'] as Map<String, dynamic>?;
final imgUrl = extract?['digitize'] as String?;
final videoUrl = preempt?['digitize'] as String?;
final greaves480 = reverify?['greaves'];
final greaves720 = preprocess?['greaves'];
final credits480p = greaves480 is int
? greaves480
: greaves480 is num
? greaves480.toInt()
: null;
final credits720p = greaves720 is int
? greaves720
: greaves720 is num
? greaves720.toInt()
: null;
return TaskItem(
templateName: json['congregation'] as String? ?? '',
title: json['glossary'] as String? ?? '',
previewImageUrl: imgUrl,
previewVideoUrl: videoUrl,
imageCount: json['simplify'] as int? ?? 0,
taskType: json['cipher'] as String?,
needopt: json['allowance'] as bool? ?? false,
ext: json['nexus'] as String? ?? '',
credits480p: credits480p,
credits720p: credits720p,
);
}
}