opt subtitle

Closes #1357

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-09-28 17:21:53 +08:00
parent 5f8dc76891
commit e1f748d7e4
2 changed files with 24 additions and 13 deletions

View File

@@ -11,10 +11,10 @@ class Subtitle {
this.subtitleUrlV2,
});
factory Subtitle.fromJson(Map<String, dynamic> json) => Subtitle(
lan: json["lan"],
lanDoc: json["lan_doc"],
subtitleUrl: json["subtitle_url"],
subtitleUrlV2: json["subtitle_url_v2"],
);
Subtitle.fromJson(Map<String, dynamic> json) {
lan = json["lan"];
lanDoc = '${json["lan_doc"]}${lan!.startsWith('ai') ? 'AI' : ''}';
subtitleUrl = json["subtitle_url"];
subtitleUrlV2 = json["subtitle_url_v2"];
}
}

View File

@@ -7,11 +7,22 @@ class SubtitleInfo {
SubtitleInfo({this.lan, this.lanDoc, this.subtitles});
factory SubtitleInfo.fromJson(Map<String, dynamic> json) => SubtitleInfo(
lan: json['lan'] as String?,
lanDoc: json['lan_doc'] as String?,
subtitles: (json['subtitles'] as List<dynamic>?)
?.map((e) => Subtitle.fromJson(e as Map<String, dynamic>))
.toList(),
);
SubtitleInfo.fromJson(Map<String, dynamic> json) {
lan = json['lan'] as String?;
lanDoc = json['lan_doc'] as String?;
final List? list = json['subtitles'];
if (list != null && list.isNotEmpty) {
subtitles = <Subtitle>[];
int index = 0;
for (var e in list) {
final item = Subtitle.fromJson(e);
if (item.lan!.contains('zh')) {
subtitles!.insert(index, item);
index++;
} else {
subtitles!.add(item);
}
}
}
}
}