72 lines
1.8 KiB
Dart
72 lines
1.8 KiB
Dart
//漫画章节
|
|
import 'package:hgdj/config/address.dart' as address;
|
|
import 'package:path/path.dart' as path;
|
|
|
|
import '../media_content.dart';
|
|
|
|
class ComicChapterInfo {
|
|
int? episodeNumber;
|
|
bool? hasBuy;
|
|
String? id;
|
|
int? listenPermission; // 0:会员 1:金币购买 2:免费
|
|
String? mediaId;
|
|
String? name;
|
|
int? price;
|
|
String? createdAt;
|
|
String? cover;
|
|
String? audioUrl;
|
|
|
|
bool inFreeEpisode = false; //是否属于免费集数(前 freeEpisode 集)
|
|
|
|
MediaContent? mediaContent; //(另外的接口数据返回,外部手动赋值)
|
|
|
|
// 有声小说
|
|
String get getRealAudioUrl {
|
|
if (audioUrl == null || audioUrl!.isEmpty) {
|
|
return "";
|
|
}
|
|
if (!audioUrl!.startsWith("http") && !audioUrl!.startsWith("https")) {
|
|
return path.join(address.Address.audioCdnAddress ?? '', audioUrl);
|
|
}
|
|
return audioUrl!;
|
|
}
|
|
|
|
ComicChapterInfo({
|
|
this.episodeNumber,
|
|
this.hasBuy,
|
|
this.id,
|
|
this.listenPermission,
|
|
this.mediaId,
|
|
this.name,
|
|
this.price,
|
|
this.createdAt,
|
|
this.cover,
|
|
this.audioUrl,
|
|
});
|
|
|
|
ComicChapterInfo.fromJson(Map<String, dynamic> json) {
|
|
episodeNumber = json['episodeNumber'];
|
|
hasBuy = json['hasBuy'];
|
|
id = json['id'];
|
|
listenPermission = json['listenPermission'];
|
|
mediaId = json['mediaId'];
|
|
name = json['name'];
|
|
price = json['price'];
|
|
createdAt = json['createdAt'];
|
|
cover = json['cover'];
|
|
audioUrl = json['audioUrl'];
|
|
}
|
|
|
|
Map<String, dynamic> toJson() {
|
|
final Map<String, dynamic> data = <String, dynamic>{};
|
|
data['episodeNumber'] = episodeNumber;
|
|
data['hasBuy'] = hasBuy;
|
|
data['id'] = id;
|
|
data['listenPermission'] = listenPermission;
|
|
data['mediaId'] = mediaId;
|
|
data['name'] = name;
|
|
data['price'] = price;
|
|
return data;
|
|
}
|
|
}
|