mangayomi-mirror/lib/models/video.dart
Moustapha Kodjo Amadou 80efee40d1 dart format
2025-05-30 17:43:42 +01:00

53 lines
1.4 KiB
Dart

import 'package:mangayomi/eval/javascript/http.dart';
class Video {
String url;
String quality;
String originalUrl;
Map<String, String>? headers;
List<Track>? subtitles;
List<Track>? audios;
Video(
this.url,
this.quality,
this.originalUrl, {
this.headers,
this.subtitles,
this.audios,
});
factory Video.fromJson(Map<String, dynamic> json) {
return Video(
json['url'].toString().trim(),
json['quality'].toString().trim(),
json['originalUrl'].toString().trim(),
headers: (json['headers'] as Map?)?.toMapStringString,
subtitles: json['subtitles'] != null
? (json['subtitles'] as List).map((e) => Track.fromJson(e)).toList()
: [],
audios: json['audios'] != null
? (json['audios'] as List).map((e) => Track.fromJson(e)).toList()
: [],
);
}
Map<String, dynamic> toJson() => {
'url': url,
'quality': quality,
'originalUrl': originalUrl,
'headers': headers,
'subtitles': subtitles?.map((e) => e.toJson()).toList(),
'audios': audios?.map((e) => e.toJson()).toList(),
};
}
class Track {
String? file;
String? label;
Track({this.file, this.label});
Track.fromJson(Map<String, dynamic> json) {
file = json['file']?.toString().trim();
label = json['label']?.toString().trim();
}
Map<String, dynamic> toJson() => {'file': file, 'label': label};
}