opt models

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-06-04 15:20:35 +08:00
parent f50b1d2beb
commit b960359a39
858 changed files with 11000 additions and 12588 deletions

View File

@@ -0,0 +1,17 @@
import 'package:PiliPlus/models_new/sub/sub/list.dart';
class SubData {
int? count;
List<SubItemModel>? list;
bool? hasMore;
SubData({this.count, this.list, this.hasMore});
factory SubData.fromJson(Map<String, dynamic> json) => SubData(
count: json['count'] as int?,
list: (json['list'] as List<dynamic>?)
?.map((e) => SubItemModel.fromJson(e as Map<String, dynamic>))
.toList(),
hasMore: json['has_more'] as bool?,
);
}

View File

@@ -0,0 +1,81 @@
import 'package:PiliPlus/models_new/sub/sub/upper.dart';
class SubItemModel {
int? id;
int? fid;
int? mid;
int? attr;
String? attrDesc;
String? title;
String? cover;
Upper? upper;
int? coverType;
String? intro;
int? ctime;
int? mtime;
int? state;
int? favState;
int? mediaCount;
int? viewCount;
int? vt;
bool? isTop;
dynamic recentFav;
int? playSwitch;
int? type;
String? link;
String? bvid;
SubItemModel({
this.id,
this.fid,
this.mid,
this.attr,
this.attrDesc,
this.title,
this.cover,
this.upper,
this.coverType,
this.intro,
this.ctime,
this.mtime,
this.state,
this.favState,
this.mediaCount,
this.viewCount,
this.vt,
this.isTop,
this.recentFav,
this.playSwitch,
this.type,
this.link,
this.bvid,
});
factory SubItemModel.fromJson(Map<String, dynamic> json) => SubItemModel(
id: json['id'] as int?,
fid: json['fid'] as int?,
mid: json['mid'] as int?,
attr: json['attr'] as int?,
attrDesc: json['attr_desc'] as String?,
title: json['title'] as String?,
cover: json['cover'] as String?,
upper: json['upper'] == null
? null
: Upper.fromJson(json['upper'] as Map<String, dynamic>),
coverType: json['cover_type'] as int?,
intro: json['intro'] as String?,
ctime: json['ctime'] as int?,
mtime: json['mtime'] as int?,
state: json['state'] as int?,
favState: json['fav_state'] as int?,
mediaCount: json['media_count'] as int?,
viewCount: json['view_count'] as int?,
vt: json['vt'] as int?,
isTop: json['is_top'] as bool?,
recentFav: json['recent_fav'] as dynamic,
playSwitch: json['play_switch'] as int?,
type: json['type'] as int?,
link: json['link'] as String?,
bvid: json['bvid'] as String?,
);
}

View File

@@ -0,0 +1,15 @@
class Upper {
int? mid;
String? name;
String? face;
String? jumpLink;
Upper({this.mid, this.name, this.face, this.jumpLink});
factory Upper.fromJson(Map<String, dynamic> json) => Upper(
mid: json['mid'] as int?,
name: json['name'] as String?,
face: json['face'] as String?,
jumpLink: json['jump_link'] as String?,
);
}

View File

@@ -0,0 +1,15 @@
class CntInfo {
int? collect;
int? play;
int? danmaku;
int? vt;
CntInfo({this.collect, this.play, this.danmaku, this.vt});
factory CntInfo.fromJson(Map<String, dynamic> json) => CntInfo(
collect: json['collect'] as int?,
play: json['play'] as int?,
danmaku: json['danmaku'] as int?,
vt: json['vt'] as int?,
);
}

View File

@@ -0,0 +1,18 @@
import "package:PiliPlus/models_new/sub/sub_detail/info.dart";
import 'package:PiliPlus/models_new/sub/sub_detail/media.dart';
class SubDetailData {
Info? info;
List<SubDetailItemModel>? medias;
SubDetailData({this.info, this.medias});
factory SubDetailData.fromJson(Map<String, dynamic> json) => SubDetailData(
info: json['info'] == null
? null
: Info.fromJson(json['info'] as Map<String, dynamic>),
medias: (json['medias'] as List<dynamic>?)
?.map((e) => SubDetailItemModel.fromJson(e as Map<String, dynamic>))
.toList(),
);
}

View File

@@ -0,0 +1,42 @@
import 'package:PiliPlus/models_new/sub/sub_detail/cnt_info.dart';
import 'package:PiliPlus/models_new/sub/sub_detail/upper.dart';
class Info {
int? id;
int? seasonType;
String? title;
String? cover;
Upper? upper;
CntInfo? cntInfo;
int? mediaCount;
String? intro;
int? enableVt;
Info({
this.id,
this.seasonType,
this.title,
this.cover,
this.upper,
this.cntInfo,
this.mediaCount,
this.intro,
this.enableVt,
});
factory Info.fromJson(Map<String, dynamic> json) => Info(
id: json['id'] as int?,
seasonType: json['season_type'] as int?,
title: json['title'] as String?,
cover: json['cover'] as String?,
upper: json['upper'] == null
? null
: Upper.fromJson(json['upper'] as Map<String, dynamic>),
cntInfo: json['cnt_info'] == null
? null
: CntInfo.fromJson(json['cnt_info'] as Map<String, dynamic>),
mediaCount: json['media_count'] as int?,
intro: json['intro'] as String?,
enableVt: json['enable_vt'] as int?,
);
}

View File

@@ -0,0 +1,49 @@
import 'package:PiliPlus/models_new/sub/sub_detail/cnt_info.dart';
import 'package:PiliPlus/models_new/sub/sub_detail/upper.dart';
class SubDetailItemModel {
int? id;
String? title;
String? cover;
int? duration;
int? pubtime;
String? bvid;
Upper? upper;
CntInfo? cntInfo;
int? enableVt;
String? vtDisplay;
bool? isSelfView;
SubDetailItemModel({
this.id,
this.title,
this.cover,
this.duration,
this.pubtime,
this.bvid,
this.upper,
this.cntInfo,
this.enableVt,
this.vtDisplay,
this.isSelfView,
});
factory SubDetailItemModel.fromJson(Map<String, dynamic> json) =>
SubDetailItemModel(
id: json['id'] as int?,
title: json['title'] as String?,
cover: json['cover'] as String?,
duration: json['duration'] as int?,
pubtime: json['pubtime'] as int?,
bvid: json['bvid'] as String?,
upper: json['upper'] == null
? null
: Upper.fromJson(json['upper'] as Map<String, dynamic>),
cntInfo: json['cnt_info'] == null
? null
: CntInfo.fromJson(json['cnt_info'] as Map<String, dynamic>),
enableVt: json['enable_vt'] as int?,
vtDisplay: json['vt_display'] as String?,
isSelfView: json['is_self_view'] as bool?,
);
}

View File

@@ -0,0 +1,11 @@
class Upper {
int? mid;
String? name;
Upper({this.mid, this.name});
factory Upper.fromJson(Map<String, dynamic> json) => Upper(
mid: json['mid'] as int?,
name: json['name'] as String?,
);
}