clean up models

Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-04-05 12:10:18 +08:00
parent b897103af0
commit 279f21857d
308 changed files with 156 additions and 6243 deletions

View File

@@ -431,7 +431,9 @@ abstract final class UserHttp {
} }
} }
static Future<LoadingState<void>> spaceSettingMod(Map data) async { static Future<LoadingState<void>> spaceSettingMod(
Map<String, dynamic> data,
) async {
final res = await Request().post( final res = await Request().post(
Api.spaceSettingMod, Api.spaceSettingMod,
queryParameters: { queryParameters: {

View File

@@ -5,19 +5,7 @@ class AccountMyInfoData {
num? coins; num? coins;
String? birthday; String? birthday;
String? face; String? face;
int? faceNftNew;
int? sex; int? sex;
int? level;
int? rank;
int? silence;
int? emailStatus;
int? telStatus;
int? identification;
int? isTourist;
int? pinPrompting;
int? inRegAudit;
bool? hasFaceNft;
bool? setBirthday;
AccountMyInfoData({ AccountMyInfoData({
this.mid, this.mid,
@@ -26,19 +14,7 @@ class AccountMyInfoData {
this.coins, this.coins,
this.birthday, this.birthday,
this.face, this.face,
this.faceNftNew,
this.sex, this.sex,
this.level,
this.rank,
this.silence,
this.emailStatus,
this.telStatus,
this.identification,
this.isTourist,
this.pinPrompting,
this.inRegAudit,
this.hasFaceNft,
this.setBirthday,
}); });
factory AccountMyInfoData.fromJson(Map<String, dynamic> json) => factory AccountMyInfoData.fromJson(Map<String, dynamic> json) =>
@@ -49,18 +25,6 @@ class AccountMyInfoData {
coins: json['coins'] as num?, coins: json['coins'] as num?,
birthday: json['birthday'] as String?, birthday: json['birthday'] as String?,
face: json['face'] as String?, face: json['face'] as String?,
faceNftNew: json['face_nft_new'] as int?,
sex: json['sex'] as int?, sex: json['sex'] as int?,
level: json['level'] as int?,
rank: json['rank'] as int?,
silence: json['silence'] as int?,
emailStatus: json['email_status'] as int?,
telStatus: json['tel_status'] as int?,
identification: json['identification'] as int?,
isTourist: json['is_tourist'] as int?,
pinPrompting: json['pin_prompting'] as int?,
inRegAudit: json['in_reg_audit'] as int?,
hasFaceNft: json['has_face_nft'] as bool?,
setBirthday: json['set_birthday'] as bool?,
); );
} }

View File

@@ -1,86 +1,26 @@
import 'package:PiliPlus/models_new/article/article_info/share_channel.dart';
import 'package:PiliPlus/models_new/article/article_info/stats.dart'; import 'package:PiliPlus/models_new/article/article_info/stats.dart';
import 'package:PiliPlus/utils/extension/iterable_ext.dart'; import 'package:PiliPlus/utils/extension/iterable_ext.dart';
class ArticleInfoData { class ArticleInfoData {
int? like;
bool? attention;
bool? favorite; bool? favorite;
num? coin;
Stats? stats; Stats? stats;
String? title; String? title;
String? bannerUrl;
int? mid;
String? authorName;
bool? isAuthor;
List<String>? imageUrls;
List<String>? originImageUrls; List<String>? originImageUrls;
bool? shareable;
bool? showLaterWatch;
bool? showSmallWindow;
bool? inList;
int? pre;
int? next;
List<ShareChannel>? shareChannels;
int? type;
String? videoUrl;
String? location;
bool? disableShare;
ArticleInfoData({ ArticleInfoData({
this.like,
this.attention,
this.favorite, this.favorite,
this.coin,
this.stats, this.stats,
this.title, this.title,
this.bannerUrl,
this.mid,
this.authorName,
this.isAuthor,
this.imageUrls,
this.originImageUrls, this.originImageUrls,
this.shareable,
this.showLaterWatch,
this.showSmallWindow,
this.inList,
this.pre,
this.next,
this.shareChannels,
this.type,
this.videoUrl,
this.location,
this.disableShare,
}); });
factory ArticleInfoData.fromJson(Map<String, dynamic> json) => factory ArticleInfoData.fromJson(Map<String, dynamic> json) =>
ArticleInfoData( ArticleInfoData(
like: json['like'] as int?,
attention: json['attention'] as bool?,
favorite: json['favorite'] as bool?, favorite: json['favorite'] as bool?,
coin: json['coin'] as num?,
stats: json['stats'] == null stats: json['stats'] == null
? null ? null
: Stats.fromJson(json['stats'] as Map<String, dynamic>), : Stats.fromJson(json['stats'] as Map<String, dynamic>),
title: json['title'] as String?, title: json['title'] as String?,
bannerUrl: json['banner_url'] as String?,
mid: json['mid'] as int?,
authorName: json['author_name'] as String?,
isAuthor: json['is_author'] as bool?,
imageUrls: (json['image_urls'] as List?)?.fromCast(),
originImageUrls: (json['origin_image_urls'] as List?)?.fromCast(), originImageUrls: (json['origin_image_urls'] as List?)?.fromCast(),
shareable: json['shareable'] as bool?,
showLaterWatch: json['show_later_watch'] as bool?,
showSmallWindow: json['show_small_window'] as bool?,
inList: json['in_list'] as bool?,
pre: json['pre'] as int?,
next: json['next'] as int?,
shareChannels: (json['share_channels'] as List<dynamic>?)
?.map((e) => ShareChannel.fromJson(e as Map<String, dynamic>))
.toList(),
type: json['type'] as int?,
videoUrl: json['video_url'] as String?,
location: json['location'] as String?,
disableShare: json['disable_share'] as bool?,
); );
} }

View File

@@ -1,13 +0,0 @@
class ShareChannel {
String? name;
String? picture;
String? shareChannel;
ShareChannel({this.name, this.picture, this.shareChannel});
factory ShareChannel.fromJson(Map<String, dynamic> json) => ShareChannel(
name: json['name'] as String?,
picture: json['picture'] as String?,
shareChannel: json['share_channel'] as String?,
);
}

View File

@@ -1,32 +1,20 @@
class Stats { class Stats {
int? view;
int? favorite; int? favorite;
int? like; int? like;
int? dislike;
int? reply; int? reply;
int? share; int? share;
num? coin;
int? dynam1c;
Stats({ Stats({
this.view,
this.favorite, this.favorite,
this.like, this.like,
this.dislike,
this.reply, this.reply,
this.share, this.share,
this.coin,
this.dynam1c,
}); });
factory Stats.fromJson(Map<String, dynamic> json) => Stats( factory Stats.fromJson(Map<String, dynamic> json) => Stats(
view: json['view'] as int?,
favorite: json['favorite'] as int?, favorite: json['favorite'] as int?,
like: json['like'] as int?, like: json['like'] as int?,
dislike: json['dislike'] as int?,
reply: json['reply'] as int?, reply: json['reply'] as int?,
share: json['share'] as int?, share: json['share'] as int?,
coin: json['coin'] as num?,
dynam1c: json['dynamic'] as int?,
); );
} }

View File

@@ -1,67 +1,32 @@
import 'package:PiliPlus/models_new/article/article_list/category.dart';
import 'package:PiliPlus/models_new/article/article_list/stats.dart'; import 'package:PiliPlus/models_new/article/article_list/stats.dart';
import 'package:PiliPlus/utils/extension/iterable_ext.dart'; import 'package:PiliPlus/utils/extension/iterable_ext.dart';
class ArticleListItemModel { class ArticleListItemModel {
int? id; int? id;
String? title; String? title;
int? state;
int? publishTime;
int? words;
List<String>? imageUrls; List<String>? imageUrls;
Category? category;
List<Category>? categories;
String? summary; String? summary;
int? type;
String? dynIdStr; String? dynIdStr;
int? attributes;
int? authorUid;
int? onlyFans;
Stats? stats; Stats? stats;
int? likeState;
ArticleListItemModel({ ArticleListItemModel({
this.id, this.id,
this.title, this.title,
this.state,
this.publishTime,
this.words,
this.imageUrls, this.imageUrls,
this.category,
this.categories,
this.summary, this.summary,
this.type,
this.dynIdStr, this.dynIdStr,
this.attributes,
this.authorUid,
this.onlyFans,
this.stats, this.stats,
this.likeState,
}); });
factory ArticleListItemModel.fromJson(Map<String, dynamic> json) => factory ArticleListItemModel.fromJson(Map<String, dynamic> json) =>
ArticleListItemModel( ArticleListItemModel(
id: json['id'] as int?, id: json['id'] as int?,
title: json['title'] as String?, title: json['title'] as String?,
state: json['state'] as int?,
publishTime: json['publish_time'] as int?,
words: json['words'] as int?,
imageUrls: (json['image_urls'] as List?)?.fromCast(), imageUrls: (json['image_urls'] as List?)?.fromCast(),
category: json['category'] == null
? null
: Category.fromJson(json['category'] as Map<String, dynamic>),
categories: (json['categories'] as List<dynamic>?)
?.map((e) => Category.fromJson(e as Map<String, dynamic>))
.toList(),
summary: json['summary'] as String?, summary: json['summary'] as String?,
type: json['type'] as int?,
dynIdStr: json['dyn_id_str'] as String?, dynIdStr: json['dyn_id_str'] as String?,
attributes: json['attributes'] as int?,
authorUid: json['author_uid'] as int?,
onlyFans: json['only_fans'] as int?,
stats: json['stats'] == null stats: json['stats'] == null
? null ? null
: Stats.fromJson(json['stats'] as Map<String, dynamic>), : Stats.fromJson(json['stats'] as Map<String, dynamic>),
likeState: json['like_state'] as int?,
); );
} }

View File

@@ -1,13 +0,0 @@
class Category {
int? id;
int? parentId;
String? name;
Category({this.id, this.parentId, this.name});
factory Category.fromJson(Map<String, dynamic> json) => Category(
id: json['id'] as int?,
parentId: json['parent_id'] as int?,
name: json['name'] as String?,
);
}

View File

@@ -1,21 +1,16 @@
import 'package:PiliPlus/models/model_owner.dart'; import 'package:PiliPlus/models/model_owner.dart';
import 'package:PiliPlus/models_new/article/article_list/article.dart'; import 'package:PiliPlus/models_new/article/article_list/article.dart';
import 'package:PiliPlus/models_new/article/article_list/last.dart';
import 'package:PiliPlus/models_new/article/article_list/list.dart'; import 'package:PiliPlus/models_new/article/article_list/list.dart';
class ArticleListData { class ArticleListData {
ArticleListInfo? list; ArticleListInfo? list;
List<ArticleListItemModel>? articles; List<ArticleListItemModel>? articles;
Owner? author; Owner? author;
Last? last;
bool? attention;
ArticleListData({ ArticleListData({
this.list, this.list,
this.articles, this.articles,
this.author, this.author,
this.last,
this.attention,
}); });
factory ArticleListData.fromJson(Map<String, dynamic> json) => factory ArticleListData.fromJson(Map<String, dynamic> json) =>
@@ -31,9 +26,5 @@ class ArticleListData {
author: json['author'] == null author: json['author'] == null
? null ? null
: Owner.fromJson(json['author'] as Map<String, dynamic>), : Owner.fromJson(json['author'] as Map<String, dynamic>),
last: json['last'] == null
? null
: Last.fromJson(json['last'] as Map<String, dynamic>),
attention: json['attention'] as bool?,
); );
} }

View File

@@ -1,13 +0,0 @@
class Label {
String? path;
String? text;
String? labelTheme;
Label({this.path, this.text, this.labelTheme});
factory Label.fromJson(Map<String, dynamic> json) => Label(
path: json['path'] as String?,
text: json['text'] as String?,
labelTheme: json['label_theme'] as String?,
);
}

View File

@@ -1,55 +0,0 @@
import 'package:PiliPlus/models_new/article/article_list/category.dart';
import 'package:PiliPlus/utils/extension/iterable_ext.dart';
class Last {
int? id;
String? title;
int? state;
int? publishTime;
int? words;
List<String>? imageUrls;
Category? category;
dynamic categories;
String? summary;
int? type;
String? dynIdStr;
int? attributes;
int? authorUid;
int? onlyFans;
Last({
this.id,
this.title,
this.state,
this.publishTime,
this.words,
this.imageUrls,
this.category,
this.categories,
this.summary,
this.type,
this.dynIdStr,
this.attributes,
this.authorUid,
this.onlyFans,
});
factory Last.fromJson(Map<String, dynamic> json) => Last(
id: json['id'] as int?,
title: json['title'] as String?,
state: json['state'] as int?,
publishTime: json['publish_time'] as int?,
words: json['words'] as int?,
imageUrls: (json['image_urls'] as List?)?.fromCast(),
category: json['category'] == null
? null
: Category.fromJson(json['category'] as Map<String, dynamic>),
categories: json['categories'] as dynamic,
summary: json['summary'] as String?,
type: json['type'] as int?,
dynIdStr: json['dyn_id_str'] as String?,
attributes: json['attributes'] as int?,
authorUid: json['author_uid'] as int?,
onlyFans: json['only_fans'] as int?,
);
}

View File

@@ -1,54 +1,30 @@
class ArticleListInfo { class ArticleListInfo {
int? id; int? id;
int? mid;
String? name; String? name;
String? imageUrl; String? imageUrl;
int? updateTime; int? updateTime;
int? ctime;
int? publishTime;
String? summary;
int? words; int? words;
int? read; int? read;
int? articlesCount; int? articlesCount;
int? state;
String? reason;
String? applyTime;
String? checkTime;
ArticleListInfo({ ArticleListInfo({
this.id, this.id,
this.mid,
this.name, this.name,
this.imageUrl, this.imageUrl,
this.updateTime, this.updateTime,
this.ctime,
this.publishTime,
this.summary,
this.words, this.words,
this.read, this.read,
this.articlesCount, this.articlesCount,
this.state,
this.reason,
this.applyTime,
this.checkTime,
}); });
factory ArticleListInfo.fromJson(Map<String, dynamic> json) => factory ArticleListInfo.fromJson(Map<String, dynamic> json) =>
ArticleListInfo( ArticleListInfo(
id: json['id'] as int?, id: json['id'] as int?,
mid: json['mid'] as int?,
name: json['name'] as String?, name: json['name'] as String?,
imageUrl: json['image_url'] as String?, imageUrl: json['image_url'] as String?,
updateTime: json['update_time'] as int?, updateTime: json['update_time'] as int?,
ctime: json['ctime'] as int?,
publishTime: json['publish_time'] as int?,
summary: json['summary'] as String?,
words: json['words'] as int?, words: json['words'] as int?,
read: json['read'] as int?, read: json['read'] as int?,
articlesCount: json['articles_count'] as int?, articlesCount: json['articles_count'] as int?,
state: json['state'] as int?,
reason: json['reason'] as String?,
applyTime: json['apply_time'] as String?,
checkTime: json['check_time'] as String?,
); );
} }

View File

@@ -1,32 +1,17 @@
class Stats { class Stats {
int? view; int? view;
int? favorite;
int? like; int? like;
int? dislike;
int? reply; int? reply;
int? share;
num? coin;
int? dynam1c;
Stats({ Stats({
this.view, this.view,
this.favorite,
this.like, this.like,
this.dislike,
this.reply, this.reply,
this.share,
this.coin,
this.dynam1c,
}); });
factory Stats.fromJson(Map<String, dynamic> json) => Stats( factory Stats.fromJson(Map<String, dynamic> json) => Stats(
view: json['view'] as int?, view: json['view'] as int?,
favorite: json['favorite'] as int?,
like: json['like'] as int?, like: json['like'] as int?,
dislike: json['dislike'] as int?,
reply: json['reply'] as int?, reply: json['reply'] as int?,
share: json['share'] as int?,
coin: json['coin'] as num?,
dynam1c: json['dynamic'] as int?,
); );
} }

View File

@@ -1,13 +0,0 @@
class Category {
int? id;
int? parentId;
String? name;
Category({this.id, this.parentId, this.name});
factory Category.fromJson(Map<String, dynamic> json) => Category(
id: json['id'] as int?,
parentId: json['parent_id'] as int?,
name: json['name'] as String?,
);
}

View File

@@ -1,95 +1,28 @@
import 'package:PiliPlus/models/model_avatar.dart'; import 'package:PiliPlus/models/model_avatar.dart';
import 'package:PiliPlus/models_new/article/article_view/category.dart';
import 'package:PiliPlus/models_new/article/article_view/media.dart';
import 'package:PiliPlus/models_new/article/article_view/ops.dart'; import 'package:PiliPlus/models_new/article/article_view/ops.dart';
import 'package:PiliPlus/models_new/article/article_view/opus.dart'; import 'package:PiliPlus/models_new/article/article_view/opus.dart';
import 'package:PiliPlus/models_new/article/article_view/stats.dart';
import 'package:PiliPlus/models_new/article/article_view/tag.dart';
import 'package:PiliPlus/utils/extension/iterable_ext.dart'; import 'package:PiliPlus/utils/extension/iterable_ext.dart';
class ArticleViewData { class ArticleViewData {
int? id; int? id;
Category? category;
List<Category>? categories;
String? title; String? title;
String? summary;
String? bannerUrl;
int? templateId;
int? state;
Avatar? author; Avatar? author;
int? reprint;
List<String>? imageUrls;
int? publishTime; int? publishTime;
int? ctime;
int? mtime;
Stats? stats;
List<Tag>? tags;
int? words;
List<String>? originImageUrls; List<String>? originImageUrls;
dynamic list;
bool? isLike;
Media? media;
String? applyTime;
String? checkTime;
int? original;
int? actId;
dynamic dispute;
dynamic authenMark;
int? coverAvid;
dynamic topVideoInfo;
int? type; int? type;
int? checkState;
int? originTemplateId;
int? privatePub;
dynamic contentPicList;
String? content; String? content;
String? keywords;
int? versionId;
String? dynIdStr; String? dynIdStr;
int? totalArtNum;
ArticleOpus? opus; ArticleOpus? opus;
List<ArticleOps>? ops; List<ArticleOps>? ops;
ArticleViewData({ ArticleViewData({
this.id, this.id,
this.category,
this.categories,
this.title,
this.summary,
this.bannerUrl,
this.templateId,
this.state,
this.author, this.author,
this.reprint,
this.imageUrls,
this.publishTime, this.publishTime,
this.ctime,
this.mtime,
this.stats,
this.tags,
this.words,
this.originImageUrls, this.originImageUrls,
this.list,
this.isLike,
this.media,
this.applyTime,
this.checkTime,
this.original,
this.actId,
this.dispute,
this.authenMark,
this.coverAvid,
this.topVideoInfo,
this.type, this.type,
this.checkState,
this.originTemplateId,
this.privatePub,
this.contentPicList,
this.content, this.content,
this.keywords,
this.versionId,
this.dynIdStr, this.dynIdStr,
this.totalArtNum,
this.opus, this.opus,
this.ops, this.ops,
}); });
@@ -97,56 +30,14 @@ class ArticleViewData {
factory ArticleViewData.fromJson(Map<String, dynamic> json) => factory ArticleViewData.fromJson(Map<String, dynamic> json) =>
ArticleViewData( ArticleViewData(
id: json['id'] as int?, id: json['id'] as int?,
category: json['category'] == null
? null
: Category.fromJson(json['category'] as Map<String, dynamic>),
categories: (json['categories'] as List<dynamic>?)
?.map((e) => Category.fromJson(e as Map<String, dynamic>))
.toList(),
title: json['title'] as String?,
summary: json['summary'] as String?,
bannerUrl: json['banner_url'] as String?,
templateId: json['template_id'] as int?,
state: json['state'] as int?,
author: json['author'] == null author: json['author'] == null
? null ? null
: Avatar.fromJson(json['author'] as Map<String, dynamic>), : Avatar.fromJson(json['author'] as Map<String, dynamic>),
reprint: json['reprint'] as int?,
imageUrls: (json['image_urls'] as List?)?.fromCast(),
publishTime: json['publish_time'] as int?, publishTime: json['publish_time'] as int?,
ctime: json['ctime'] as int?,
mtime: json['mtime'] as int?,
stats: json['stats'] == null
? null
: Stats.fromJson(json['stats'] as Map<String, dynamic>),
tags: (json['tags'] as List<dynamic>?)
?.map((e) => Tag.fromJson(e as Map<String, dynamic>))
.toList(),
words: json['words'] as int?,
originImageUrls: (json['origin_image_urls'] as List?)?.fromCast(), originImageUrls: (json['origin_image_urls'] as List?)?.fromCast(),
list: json['list'] as dynamic,
isLike: json['is_like'] as bool?,
media: json['media'] == null
? null
: Media.fromJson(json['media'] as Map<String, dynamic>),
applyTime: json['apply_time'] as String?,
checkTime: json['check_time'] as String?,
original: json['original'] as int?,
actId: json['act_id'] as int?,
dispute: json['dispute'] as dynamic,
authenMark: json['authenMark'] as dynamic,
coverAvid: json['cover_avid'] as int?,
topVideoInfo: json['top_video_info'] as dynamic,
type: json['type'] as int?, type: json['type'] as int?,
checkState: json['check_state'] as int?,
originTemplateId: json['origin_template_id'] as int?,
privatePub: json['private_pub'] as int?,
contentPicList: json['content_pic_list'] as dynamic,
content: json['content'] as String?, content: json['content'] as String?,
keywords: json['keywords'] as String?,
versionId: json['version_id'] as int?,
dynIdStr: json['dyn_id_str'] as String?, dynIdStr: json['dyn_id_str'] as String?,
totalArtNum: json['total_art_num'] as int?,
opus: json['opus'] == null opus: json['opus'] == null
? null ? null
: ArticleOpus.fromJson(json['opus'] as Map<String, dynamic>), : ArticleOpus.fromJson(json['opus'] as Map<String, dynamic>),

View File

@@ -1,13 +0,0 @@
class Label {
String? path;
String? text;
String? labelTheme;
Label({this.path, this.text, this.labelTheme});
factory Label.fromJson(Map<String, dynamic> json) => Label(
path: json['path'] as String?,
text: json['text'] as String?,
labelTheme: json['label_theme'] as String?,
);
}

View File

@@ -1,35 +0,0 @@
class Media {
int? score;
int? mediaId;
String? title;
String? cover;
String? area;
int? typeId;
String? typeName;
int? spoiler;
int? seasonId;
Media({
this.score,
this.mediaId,
this.title,
this.cover,
this.area,
this.typeId,
this.typeName,
this.spoiler,
this.seasonId,
});
factory Media.fromJson(Map<String, dynamic> json) => Media(
score: json['score'] as int?,
mediaId: json['media_id'] as int?,
title: json['title'] as String?,
cover: json['cover'] as String?,
area: json['area'] as String?,
typeId: json['type_id'] as int?,
typeName: json['type_name'] as String?,
spoiler: json['spoiler'] as int?,
seasonId: json['season_id'] as int?,
);
}

View File

@@ -1,15 +1,9 @@
import 'package:PiliPlus/models/dynamics/article_content_model.dart'; import 'package:PiliPlus/models/dynamics/article_content_model.dart';
class ArticleOpus { class ArticleOpus {
int? opusid;
int? opussource;
String? title;
List<ArticleContentModel>? content; List<ArticleContentModel>? content;
ArticleOpus.fromJson(Map<String, dynamic> json) { ArticleOpus.fromJson(Map<String, dynamic> json) {
opusid = json['opus_id'];
opussource = json['opus_source'];
title = json['title'];
if (json['content']?['paragraphs'] case List list) { if (json['content']?['paragraphs'] case List list) {
content = list.map((i) => ArticleContentModel.fromJson(i)).toList(); content = list.map((i) => ArticleContentModel.fromJson(i)).toList();
} }

View File

@@ -1,32 +0,0 @@
class Stats {
int? view;
int? favorite;
int? like;
int? dislike;
int? reply;
int? share;
num? coin;
int? dynam1c;
Stats({
this.view,
this.favorite,
this.like,
this.dislike,
this.reply,
this.share,
this.coin,
this.dynam1c,
});
factory Stats.fromJson(Map<String, dynamic> json) => Stats(
view: json['view'] as int?,
favorite: json['favorite'] as int?,
like: json['like'] as int?,
dislike: json['dislike'] as int?,
reply: json['reply'] as int?,
share: json['share'] as int?,
coin: json['coin'] as num?,
dynam1c: json['dynamic'] as int?,
);
}

View File

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

View File

@@ -2,16 +2,14 @@ import 'package:PiliPlus/models_new/blacklist/list.dart';
class BlackListData { class BlackListData {
List<BlackListItem>? list; List<BlackListItem>? list;
int? reVersion;
int? total; int? total;
BlackListData({this.list, this.reVersion, this.total}); BlackListData({this.list, this.total});
factory BlackListData.fromJson(Map<String, dynamic> json) => BlackListData( factory BlackListData.fromJson(Map<String, dynamic> json) => BlackListData(
list: (json['list'] as List<dynamic>?) list: (json['list'] as List<dynamic>?)
?.map((e) => BlackListItem.fromJson(e as Map<String, dynamic>)) ?.map((e) => BlackListItem.fromJson(e as Map<String, dynamic>))
.toList(), .toList(),
reVersion: json['re_version'] as int?,
total: json['total'] as int?, total: json['total'] as int?,
); );
} }

View File

@@ -1,61 +1,20 @@
import 'package:PiliPlus/models/model_avatar.dart';
class BlackListItem { class BlackListItem {
int? mid; int? mid;
int? attribute;
int? mtime; int? mtime;
dynamic tag;
int? special;
String? uname; String? uname;
String? face; String? face;
String? sign;
int? faceNft;
BaseOfficialVerify? officialVerify;
Vip? vip;
String? nftIcon;
String? recReason;
String? trackId;
String? followTime;
BlackListItem({ BlackListItem({
this.mid, this.mid,
this.attribute,
this.mtime, this.mtime,
this.tag,
this.special,
this.uname, this.uname,
this.face, this.face,
this.sign,
this.faceNft,
this.officialVerify,
this.vip,
this.nftIcon,
this.recReason,
this.trackId,
this.followTime,
}); });
factory BlackListItem.fromJson(Map<String, dynamic> json) => BlackListItem( factory BlackListItem.fromJson(Map<String, dynamic> json) => BlackListItem(
mid: json['mid'] as int?, mid: json['mid'] as int?,
attribute: json['attribute'] as int?,
mtime: json['mtime'] as int?, mtime: json['mtime'] as int?,
tag: json['tag'] as dynamic,
special: json['special'] as int?,
uname: json['uname'] as String?, uname: json['uname'] as String?,
face: json['face'] as String?, face: json['face'] as String?,
sign: json['sign'] as String?,
faceNft: json['face_nft'] as int?,
officialVerify: json['official_verify'] == null
? null
: BaseOfficialVerify.fromJson(
json['official_verify'] as Map<String, dynamic>,
),
vip: json['vip'] == null
? null
: Vip.fromJson(json['vip'] as Map<String, dynamic>),
nftIcon: json['nft_icon'] as String?,
recReason: json['rec_reason'] as String?,
trackId: json['track_id'] as String?,
followTime: json['follow_time'] as String?,
); );
} }

View File

@@ -1,15 +1,13 @@
import 'package:PiliPlus/models_new/coin_log/list.dart'; import 'package:PiliPlus/models_new/coin_log/list.dart';
class CoinLogData { class CoinLogData {
List<CoinLogItem>? list; CoinLogData({this.list});
int? count;
CoinLogData({this.list, this.count}); List<CoinLogItem>? list;
factory CoinLogData.fromJson(Map<String, dynamic> json) => CoinLogData( factory CoinLogData.fromJson(Map<String, dynamic> json) => CoinLogData(
list: (json['list'] as List<dynamic>?) list: (json['list'] as List<dynamic>?)
?.map((e) => CoinLogItem.fromJson(e as Map<String, dynamic>)) ?.map((e) => CoinLogItem.fromJson(e as Map<String, dynamic>))
.toList(), .toList(),
count: json['count'] as int?,
); );
} }

View File

@@ -1,14 +1,14 @@
class CoinLogItem { class CoinLogItem {
final String time;
final String delta;
final String reason;
const CoinLogItem({ const CoinLogItem({
required this.time, required this.time,
required this.delta, required this.delta,
required this.reason, required this.reason,
}); });
final String time;
final String delta;
final String reason;
factory CoinLogItem.fromJson(Map<String, dynamic> json) => CoinLogItem( factory CoinLogItem.fromJson(Map<String, dynamic> json) => CoinLogItem(
time: json['time'], time: json['time'],
delta: (json['delta'] as num).toString(), delta: (json['delta'] as num).toString(),

View File

@@ -1,31 +1,13 @@
class DanmakuPost { class DanmakuPost {
DanmakuPost({ DanmakuPost({
required this.action,
required this.animation,
required this.colorfulSrc,
required this.dmContent,
required this.dmid, required this.dmid,
required this.dmidStr,
required this.visible,
}); });
final String? action;
final String? animation;
final dynamic colorfulSrc;
final String? dmContent;
final int? dmid; final int? dmid;
final String? dmidStr;
final bool? visible;
factory DanmakuPost.fromJson(Map<String, dynamic> json) { factory DanmakuPost.fromJson(Map<String, dynamic> json) {
return DanmakuPost( return DanmakuPost(
action: json["action"],
animation: json["animation"],
colorfulSrc: json["colorful_src"],
dmContent: json["dm_content"],
dmid: json["dmid"], dmid: json["dmid"],
dmidStr: json["dmid_str"],
visible: json["visible"],
); );
} }
} }

View File

@@ -2,14 +2,12 @@ import 'package:PiliPlus/models_new/dynamic/dyn_mention/item.dart';
class MentionGroup { class MentionGroup {
String? groupName; String? groupName;
int? groupType;
List<MentionItem>? items; List<MentionItem>? items;
MentionGroup({this.groupName, this.groupType, this.items}); MentionGroup({this.groupName, this.items});
factory MentionGroup.fromJson(Map<String, dynamic> json) => MentionGroup( factory MentionGroup.fromJson(Map<String, dynamic> json) => MentionGroup(
groupName: json['group_name'] as String?, groupName: json['group_name'] as String?,
groupType: json['group_type'] as int?,
items: (json['items'] as List<dynamic>?) items: (json['items'] as List<dynamic>?)
?.map((e) => MentionItem.fromJson(e as Map<String, dynamic>)) ?.map((e) => MentionItem.fromJson(e as Map<String, dynamic>))
.toList(), .toList(),

View File

@@ -4,14 +4,12 @@ class MentionItem with MultiSelectData {
final String? face; final String? face;
final int? fans; final int? fans;
final String? name; final String? name;
final int? officialVerifyType;
final String? uid; final String? uid;
MentionItem({ MentionItem({
this.face, this.face,
this.fans, this.fans,
this.name, this.name,
this.officialVerifyType,
this.uid, this.uid,
}); });
@@ -19,7 +17,6 @@ class MentionItem with MultiSelectData {
face: json['face'] as String?, face: json['face'] as String?,
fans: json['fans'] as int?, fans: json['fans'] as int?,
name: json['name'] as String?, name: json['name'] as String?,
officialVerifyType: json['official_verify_type'] as int?,
uid: json['uid'] as String?, uid: json['uid'] as String?,
); );

View File

@@ -1,23 +1,17 @@
class DynReserveData { class DynReserveData {
int? finalBtnStatus; int? finalBtnStatus;
int? btnMode;
int? reserveUpdate; int? reserveUpdate;
String? descUpdate; String? descUpdate;
String? toast;
DynReserveData({ DynReserveData({
this.finalBtnStatus, this.finalBtnStatus,
this.btnMode,
this.reserveUpdate, this.reserveUpdate,
this.descUpdate, this.descUpdate,
this.toast,
}); });
factory DynReserveData.fromJson(Map<String, dynamic> json) => DynReserveData( factory DynReserveData.fromJson(Map<String, dynamic> json) => DynReserveData(
finalBtnStatus: json['final_btn_status'] as int?, finalBtnStatus: json['final_btn_status'] as int?,
btnMode: json['btn_mode'] as int?,
reserveUpdate: json['reserve_update'] as int?, reserveUpdate: json['reserve_update'] as int?,
descUpdate: json['desc_update'] as String?, descUpdate: json['desc_update'] as String?,
toast: json['toast'] as String?,
); );
} }

View File

@@ -1,48 +1,18 @@
class ReserveInfoData { class ReserveInfoData {
int? id; int? id;
String? title; String? title;
int? stime;
int? etime;
int? type;
int? livePlanStartTime; int? livePlanStartTime;
int? lotteryType;
String? lotteryId;
int? subType;
ReserveInfoData({ ReserveInfoData({
this.id, this.id,
this.title, this.title,
this.stime,
this.etime,
this.type,
this.livePlanStartTime, this.livePlanStartTime,
this.lotteryType,
this.lotteryId,
this.subType,
}); });
factory ReserveInfoData.fromJson(Map<String, dynamic> json) => factory ReserveInfoData.fromJson(Map<String, dynamic> json) =>
ReserveInfoData( ReserveInfoData(
id: json['id'] as int?, id: json['id'] as int?,
title: json['title'] as String?, title: json['title'] as String?,
stime: json['stime'] as int?,
etime: json['etime'] as int?,
type: json['type'] as int?,
livePlanStartTime: json['live_plan_start_time'] as int?, livePlanStartTime: json['live_plan_start_time'] as int?,
lotteryType: json['lottery_type'] as int?,
lotteryId: json['lottery_id'] as String?,
subType: json['sub_type'] as int?,
); );
Map<String, dynamic> toJson() => {
'id': id,
'title': title,
'stime': stime,
'etime': etime,
'type': type,
'live_plan_start_time': livePlanStartTime,
'lottery_type': lotteryType,
'lottery_id': lotteryId,
'sub_type': subType,
};
} }

View File

@@ -2,17 +2,15 @@ import 'package:PiliPlus/models_new/dynamic/dyn_topic_feed/all_sort_by.dart';
class TopicSortByConf { class TopicSortByConf {
List<AllSortBy>? allSortBy; List<AllSortBy>? allSortBy;
int? defaultSortBy;
int? showSortBy; int? showSortBy;
TopicSortByConf({this.allSortBy, this.defaultSortBy, this.showSortBy}); TopicSortByConf({this.allSortBy, this.showSortBy});
factory TopicSortByConf.fromJson(Map<String, dynamic> json) { factory TopicSortByConf.fromJson(Map<String, dynamic> json) {
return TopicSortByConf( return TopicSortByConf(
allSortBy: (json['all_sort_by'] as List<dynamic>?) allSortBy: (json['all_sort_by'] as List<dynamic>?)
?.map((e) => AllSortBy.fromJson(e as Map<String, dynamic>)) ?.map((e) => AllSortBy.fromJson(e as Map<String, dynamic>))
.toList(), .toList(),
defaultSortBy: json['default_sort_by'] as int?,
showSortBy: json['show_sort_by'] as int?, showSortBy: json['show_sort_by'] as int?,
); );
} }

View File

@@ -1,32 +1,20 @@
import 'package:PiliPlus/models_new/dynamic/dyn_topic_pub_search/new_topic.dart';
import 'package:PiliPlus/models_new/dynamic/dyn_topic_pub_search/page_info.dart'; import 'package:PiliPlus/models_new/dynamic/dyn_topic_pub_search/page_info.dart';
import 'package:PiliPlus/models_new/dynamic/dyn_topic_top/topic_item.dart'; import 'package:PiliPlus/models_new/dynamic/dyn_topic_top/topic_item.dart';
class TopicPubSearchData { class TopicPubSearchData {
NewTopic? newTopic;
bool? hasCreateJurisdiction;
List<TopicItem>? topicItems; List<TopicItem>? topicItems;
String? requestId;
PageInfo? pageInfo; PageInfo? pageInfo;
TopicPubSearchData({ TopicPubSearchData({
this.newTopic,
this.hasCreateJurisdiction,
this.topicItems, this.topicItems,
this.requestId,
this.pageInfo, this.pageInfo,
}); });
factory TopicPubSearchData.fromJson(Map<String, dynamic> json) => factory TopicPubSearchData.fromJson(Map<String, dynamic> json) =>
TopicPubSearchData( TopicPubSearchData(
newTopic: json['new_topic'] == null
? null
: NewTopic.fromJson(json['new_topic'] as Map<String, dynamic>),
hasCreateJurisdiction: json['has_create_jurisdiction'] as bool?,
topicItems: (json['topic_items'] as List<dynamic>?) topicItems: (json['topic_items'] as List<dynamic>?)
?.map((e) => TopicItem.fromJson(e as Map<String, dynamic>)) ?.map((e) => TopicItem.fromJson(e as Map<String, dynamic>))
.toList(), .toList(),
requestId: json['request_id'] as String?,
pageInfo: json['page_info'] == null pageInfo: json['page_info'] == null
? null ? null
: PageInfo.fromJson(json['page_info'] as Map<String, dynamic>), : PageInfo.fromJson(json['page_info'] as Map<String, dynamic>),

View File

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

View File

@@ -1,11 +1,9 @@
class PageInfo { class PageInfo {
int? offset;
bool? hasMore; bool? hasMore;
PageInfo({this.offset, this.hasMore}); PageInfo({this.hasMore});
factory PageInfo.fromJson(Map<String, dynamic> json) => PageInfo( factory PageInfo.fromJson(Map<String, dynamic> json) => PageInfo(
offset: json['offset'] as int?,
hasMore: json['has_more'] as bool?, hasMore: json['has_more'] as bool?,
); );
} }

View File

@@ -4,16 +4,10 @@ import 'package:PiliPlus/models_new/dynamic/dyn_topic_top/topic_item.dart';
class TopDetails { class TopDetails {
TopicItem? topicItem; TopicItem? topicItem;
TopicCreator? topicCreator; TopicCreator? topicCreator;
bool? hasCreateJurisdiction;
int? wordColor;
bool? closePubLayerEntry;
TopDetails({ TopDetails({
this.topicItem, this.topicItem,
this.topicCreator, this.topicCreator,
this.hasCreateJurisdiction,
this.wordColor,
this.closePubLayerEntry,
}); });
factory TopDetails.fromJson(Map<String, dynamic> json) => TopDetails( factory TopDetails.fromJson(Map<String, dynamic> json) => TopDetails(
@@ -23,8 +17,5 @@ class TopDetails {
topicCreator: json['topic_creator'] == null topicCreator: json['topic_creator'] == null
? null ? null
: TopicCreator.fromJson(json['topic_creator'] as Map<String, dynamic>), : TopicCreator.fromJson(json['topic_creator'] as Map<String, dynamic>),
hasCreateJurisdiction: json['has_create_jurisdiction'] as bool?,
wordColor: json['word_color'] as int?,
closePubLayerEntry: json['close_pub_layer_entry'] as bool?,
); );
} }

View File

@@ -5,14 +5,7 @@ class TopicItem {
int discuss; int discuss;
int fav; int fav;
int like; int like;
int? dynamics;
String? jumpUrl;
String? backColor;
String? description; String? description;
String? sharePic;
String? shareUrl;
int? ctime;
bool? showInteractData;
bool? isFav; bool? isFav;
bool? isLike; bool? isLike;
@@ -23,14 +16,7 @@ class TopicItem {
required this.discuss, required this.discuss,
required this.fav, required this.fav,
required this.like, required this.like,
this.dynamics,
this.jumpUrl,
this.backColor,
this.description, this.description,
this.sharePic,
this.shareUrl,
this.ctime,
this.showInteractData,
this.isFav, this.isFav,
this.isLike, this.isLike,
}); });
@@ -42,14 +28,7 @@ class TopicItem {
discuss: json['discuss'] ?? 0, discuss: json['discuss'] ?? 0,
fav: json['fav'] ?? 0, fav: json['fav'] ?? 0,
like: json['like'] ?? 0, like: json['like'] ?? 0,
dynamics: json['dynamics'] as int?,
jumpUrl: json['jump_url'] as String?,
backColor: json['back_color'] as String?,
description: json['description'] as String?, description: json['description'] as String?,
sharePic: json['share_pic'] as String?,
shareUrl: json['share_url'] as String?,
ctime: json['ctime'] as int?,
showInteractData: json['show_interact_data'] as bool?,
isFav: json['is_fav'] as bool?, isFav: json['is_fav'] as bool?,
isLike: json['is_like'] as bool?, isLike: json['is_like'] as bool?,
); );

View File

@@ -1,13 +1,9 @@
class Author { class Author {
String? name; String? name;
String? face;
String? mid;
Author({this.name, this.face, this.mid}); Author({this.name});
factory Author.fromJson(Map<String, dynamic> json) => Author( factory Author.fromJson(Map<String, dynamic> json) => Author(
name: json['name'] as String?, name: json['name'] as String?,
face: json['face'] as String?,
mid: json['mid'] as String?,
); );
} }

View File

@@ -1,13 +1,9 @@
class Cover { class Cover {
String? url; String? url;
int? width;
int? height;
Cover({this.url, this.width, this.height}); Cover({this.url});
factory Cover.fromJson(Map<String, dynamic> json) => Cover( factory Cover.fromJson(Map<String, dynamic> json) => Cover(
url: json['url'] as String?, url: json['url'] as String?,
width: json['width'] as int?,
height: json['height'] as int?,
); );
} }

View File

@@ -3,16 +3,10 @@ import 'package:PiliPlus/models_new/fav/fav_article/item.dart';
class FavArticleData { class FavArticleData {
List<FavArticleItemModel>? items; List<FavArticleItemModel>? items;
bool? hasMore; bool? hasMore;
String? offset;
String? updateNum;
String? updateBaseline;
FavArticleData({ FavArticleData({
this.items, this.items,
this.hasMore, this.hasMore,
this.offset,
this.updateNum,
this.updateBaseline,
}); });
factory FavArticleData.fromJson(Map<String, dynamic> json) => FavArticleData( factory FavArticleData.fromJson(Map<String, dynamic> json) => FavArticleData(
@@ -20,8 +14,5 @@ class FavArticleData {
?.map((e) => FavArticleItemModel.fromJson(e as Map<String, dynamic>)) ?.map((e) => FavArticleItemModel.fromJson(e as Map<String, dynamic>))
.toList(), .toList(),
hasMore: json['has_more'] as bool?, hasMore: json['has_more'] as bool?,
offset: json['offset'] as String?,
updateNum: json['update_num'] as String?,
updateBaseline: json['update_baseline'] as String?,
); );
} }

View File

@@ -3,20 +3,16 @@ import 'package:PiliPlus/models_new/fav/fav_article/cover.dart';
import 'package:PiliPlus/models_new/fav/fav_article/stat.dart'; import 'package:PiliPlus/models_new/fav/fav_article/stat.dart';
class FavArticleItemModel { class FavArticleItemModel {
String? jumpUrl;
String? opusId; String? opusId;
String? content; String? content;
dynamic badge;
Author? author; Author? author;
Cover? cover; Cover? cover;
Stat? stat; Stat? stat;
String? pubTime; String? pubTime;
FavArticleItemModel({ FavArticleItemModel({
this.jumpUrl,
this.opusId, this.opusId,
this.content, this.content,
this.badge,
this.author, this.author,
this.cover, this.cover,
this.stat, this.stat,
@@ -25,10 +21,8 @@ class FavArticleItemModel {
factory FavArticleItemModel.fromJson(Map<String, dynamic> json) => factory FavArticleItemModel.fromJson(Map<String, dynamic> json) =>
FavArticleItemModel( FavArticleItemModel(
jumpUrl: json['jump_url'] as String?,
opusId: json['opus_id'] as String?, opusId: json['opus_id'] as String?,
content: json['content'] as String?, content: json['content'] as String?,
badge: json['badge'] as dynamic,
author: json['author'] == null author: json['author'] == null
? null ? null
: Author.fromJson(json['author'] as Map<String, dynamic>), : Author.fromJson(json['author'] as Map<String, dynamic>),

View File

@@ -1,11 +1,9 @@
class Stat { class Stat {
String? view;
String? like; String? like;
Stat({this.view, this.like}); Stat({this.like});
factory Stat.fromJson(Map<String, dynamic> json) => Stat( factory Stat.fromJson(Map<String, dynamic> json) => Stat(
view: json['view'] as String?,
like: json['like'] as String?, like: json['like'] as String?,
); );
} }

View File

@@ -1,41 +1,15 @@
class CntInfo { class CntInfo {
int? collect;
int? play; int? play;
int? thumbUp;
int? thumbDown;
int? share;
int? reply;
int? danmaku; int? danmaku;
num? coin;
int? vt;
int? playSwitch;
String? viewText1;
CntInfo({ CntInfo({
this.collect,
this.play, this.play,
this.thumbUp,
this.thumbDown,
this.share,
this.reply,
this.danmaku, this.danmaku,
this.coin,
this.vt,
this.playSwitch,
this.viewText1,
}); });
factory CntInfo.fromJson(Map<String, dynamic> json) => CntInfo( factory CntInfo.fromJson(Map<String, dynamic> json) => CntInfo(
collect: json['collect'] as int?,
play: json['play'] as int?, play: json['play'] as int?,
thumbUp: json['thumb_up'] as int?,
thumbDown: json['thumb_down'] as int?,
share: json['share'] as int?,
reply: json['reply'] as int?,
danmaku: json['danmaku'] as int?, danmaku: json['danmaku'] as int?,
coin: json['coin'] as num?,
vt: json['vt'] as int?,
playSwitch: json['play_switch'] as int?,
viewText1: json['view_text_1'] as String?,
); );
} }

View File

@@ -5,9 +5,8 @@ class FavDetailData {
FavFolderInfo? info; FavFolderInfo? info;
List<FavDetailItemModel>? medias; List<FavDetailItemModel>? medias;
bool? hasMore; bool? hasMore;
int? ttl;
FavDetailData({this.info, this.medias, this.hasMore, this.ttl}); FavDetailData({this.info, this.medias, this.hasMore});
factory FavDetailData.fromJson(Map<String, dynamic> json) => FavDetailData( factory FavDetailData.fromJson(Map<String, dynamic> json) => FavDetailData(
info: json['info'] == null info: json['info'] == null
@@ -17,6 +16,5 @@ class FavDetailData {
?.map((e) => FavDetailItemModel.fromJson(e as Map<String, dynamic>)) ?.map((e) => FavDetailItemModel.fromJson(e as Map<String, dynamic>))
.toList(), .toList(),
hasMore: json['has_more'] as bool?, hasMore: json['has_more'] as bool?,
ttl: json['ttl'] as int?,
); );
} }

View File

@@ -1,69 +0,0 @@
import 'package:PiliPlus/models/model_owner.dart';
import 'package:PiliPlus/models_new/fav/fav_detail/cnt_info.dart';
class FavDetailInfo {
int? id;
int? fid;
int? mid;
int? attr;
String? title;
String? cover;
Owner? upper;
int? coverType;
CntInfo? cntInfo;
int? type;
String? intro;
int? ctime;
int? mtime;
int? state;
int? favState;
int? likeState;
int? mediaCount;
bool? isTop;
FavDetailInfo({
this.id,
this.fid,
this.mid,
this.attr,
this.title,
this.cover,
this.upper,
this.coverType,
this.cntInfo,
this.type,
this.intro,
this.ctime,
this.mtime,
this.state,
this.favState,
this.likeState,
this.mediaCount,
this.isTop,
});
factory FavDetailInfo.fromJson(Map<String, dynamic> json) => FavDetailInfo(
id: json['id'] as int?,
fid: json['fid'] as int?,
mid: json['mid'] as int?,
attr: json['attr'] as int?,
title: json['title'] as String?,
cover: json['cover'] as String?,
upper: json['upper'] == null
? null
: Owner.fromJson(json['upper'] as Map<String, dynamic>),
coverType: json['cover_type'] as int?,
cntInfo: json['cnt_info'] == null
? null
: CntInfo.fromJson(json['cnt_info'] as Map<String, dynamic>),
type: json['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?,
likeState: json['like_state'] as int?,
mediaCount: json['media_count'] as int?,
isTop: json['is_top'] as bool?,
);
}

View File

@@ -10,19 +10,14 @@ class FavDetailItemModel with MultiSelectData {
String? title; String? title;
String? cover; String? cover;
String? intro; String? intro;
int? page;
int? duration; int? duration;
Owner? upper; Owner? upper;
int? attr; int? attr;
CntInfo? cntInfo; CntInfo? cntInfo;
String? link;
int? ctime;
int? pubtime;
int? favTime; int? favTime;
String? bvid; String? bvid;
Ogv? ogv; Ogv? ogv;
Ugc? ugc; Ugc? ugc;
String? mediaListLink;
FavDetailItemModel({ FavDetailItemModel({
this.id, this.id,
@@ -30,19 +25,14 @@ class FavDetailItemModel with MultiSelectData {
this.title, this.title,
this.cover, this.cover,
this.intro, this.intro,
this.page,
this.duration, this.duration,
this.upper, this.upper,
this.attr, this.attr,
this.cntInfo, this.cntInfo,
this.link,
this.ctime,
this.pubtime,
this.favTime, this.favTime,
this.bvid, this.bvid,
this.ogv, this.ogv,
this.ugc, this.ugc,
this.mediaListLink,
}); });
factory FavDetailItemModel.fromJson(Map<String, dynamic> json) => factory FavDetailItemModel.fromJson(Map<String, dynamic> json) =>
@@ -52,7 +42,6 @@ class FavDetailItemModel with MultiSelectData {
title: json['title'] as String?, title: json['title'] as String?,
cover: json['cover'] as String?, cover: json['cover'] as String?,
intro: json['intro'] as String?, intro: json['intro'] as String?,
page: json['page'] as int?,
duration: json['duration'] as int?, duration: json['duration'] as int?,
upper: json['upper'] == null upper: json['upper'] == null
? null ? null
@@ -61,15 +50,11 @@ class FavDetailItemModel with MultiSelectData {
cntInfo: json['cnt_info'] == null cntInfo: json['cnt_info'] == null
? null ? null
: CntInfo.fromJson(json['cnt_info'] as Map<String, dynamic>), : CntInfo.fromJson(json['cnt_info'] as Map<String, dynamic>),
link: json['link'] as String?,
ctime: json['ctime'] as int?,
pubtime: json['pubtime'] as int?,
favTime: json['fav_time'] as int?, favTime: json['fav_time'] as int?,
bvid: json['bvid'] ?? json['bv_id'], bvid: json['bvid'] ?? json['bv_id'],
ogv: json['ogv'] == null ? null : Ogv.fromJson(json['ogv']), ogv: json['ogv'] == null ? null : Ogv.fromJson(json['ogv']),
ugc: json['ugc'] == null ugc: json['ugc'] == null
? null ? null
: Ugc.fromJson(json['ugc'] as Map<String, dynamic>), : Ugc.fromJson(json['ugc'] as Map<String, dynamic>),
mediaListLink: json['media_list_link'] as String?,
); );
} }

View File

@@ -1,17 +1,14 @@
class Ogv { class Ogv {
String? typeName; String? typeName;
int? typeId;
int? seasonId; int? seasonId;
Ogv({ Ogv({
this.typeName, this.typeName,
this.typeId,
this.seasonId, this.seasonId,
}); });
factory Ogv.fromJson(Map<String, dynamic> json) => Ogv( factory Ogv.fromJson(Map<String, dynamic> json) => Ogv(
typeName: json['type_name'], typeName: json['type_name'],
typeId: json['type_id'],
seasonId: json['season_id'], seasonId: json['season_id'],
); );
} }

View File

@@ -5,42 +5,24 @@ class FavFolderInfo {
int? fid; int? fid;
int mid; int mid;
int attr; int attr;
String? attrDesc;
String title; String title;
String cover; String cover;
Owner? upper; Owner? upper;
int? coverType;
String? intro; String? intro;
int? ctime;
int? mtime;
int? state;
int? favState; int? favState;
int mediaCount; int mediaCount;
int? viewCount;
bool? isTop;
int? type;
String? bvid;
FavFolderInfo({ FavFolderInfo({
this.id = 0, this.id = 0,
this.fid, this.fid,
this.mid = 0, this.mid = 0,
this.attr = -1, this.attr = -1,
this.attrDesc,
this.title = '', this.title = '',
this.cover = '', this.cover = '',
this.upper, this.upper,
this.coverType,
this.intro, this.intro,
this.ctime,
this.mtime,
this.state,
this.favState, this.favState,
this.mediaCount = 0, this.mediaCount = 0,
this.viewCount,
this.isTop,
this.type,
this.bvid,
}); });
factory FavFolderInfo.fromJson(Map<String, dynamic> json) => FavFolderInfo( factory FavFolderInfo.fromJson(Map<String, dynamic> json) => FavFolderInfo(
@@ -48,22 +30,13 @@ class FavFolderInfo {
fid: json['fid'] as int?, fid: json['fid'] as int?,
mid: json['mid'] as int? ?? 0, mid: json['mid'] as int? ?? 0,
attr: json['attr'] as int? ?? 0, attr: json['attr'] as int? ?? 0,
attrDesc: json['attr_desc'] as String?,
title: json['title'] as String? ?? '', title: json['title'] as String? ?? '',
cover: json['cover'] as String? ?? '', cover: json['cover'] as String? ?? '',
upper: json['upper'] == null upper: json['upper'] == null
? null ? null
: Owner.fromJson(json['upper'] as Map<String, dynamic>), : Owner.fromJson(json['upper'] as Map<String, dynamic>),
coverType: json['cover_type'] as int?,
intro: json['intro'] as String?, 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?, favState: json['fav_state'] as int?,
mediaCount: json['media_count'] as int? ?? 0, mediaCount: json['media_count'] as int? ?? 0,
viewCount: json['view_count'] as int?,
isTop: json['is_top'] as bool?,
type: json['type'] as int?,
bvid: json['bvid'] as String?,
); );
} }

View File

@@ -1,29 +0,0 @@
class Arc {
int? oid;
String? bvid;
String? pic;
String? desc;
int? status;
int? oidType;
int? aid;
Arc({
this.oid,
this.bvid,
this.pic,
this.desc,
this.status,
this.oidType,
this.aid,
});
factory Arc.fromJson(Map<String, dynamic> json) => Arc(
oid: json['oid'] as int?,
bvid: json['bvid'] as String?,
pic: json['pic'] as String?,
desc: json['desc'] as String?,
status: json['status'] as int?,
oidType: json['oid_type'] as int?,
aid: json['aid'] as int?,
);
}

View File

@@ -1,18 +1,13 @@
import 'package:PiliPlus/models_new/fav/fav_note/list.dart'; import 'package:PiliPlus/models_new/fav/fav_note/list.dart';
import 'package:PiliPlus/models_new/fav/fav_note/page.dart';
class FavNoteData { class FavNoteData {
List<FavNoteItemModel>? list; List<FavNoteItemModel>? list;
Page? page;
FavNoteData({this.list, this.page}); FavNoteData({this.list});
factory FavNoteData.fromJson(Map<String, dynamic> json) => FavNoteData( factory FavNoteData.fromJson(Map<String, dynamic> json) => FavNoteData(
list: (json['list'] as List<dynamic>?) list: (json['list'] as List<dynamic>?)
?.map((e) => FavNoteItemModel.fromJson(e as Map<String, dynamic>)) ?.map((e) => FavNoteItemModel.fromJson(e as Map<String, dynamic>))
.toList(), .toList(),
page: json['page'] == null
? null
: Page.fromJson(json['page'] as Map<String, dynamic>),
); );
} }

View File

@@ -1,13 +0,0 @@
class Page {
int? total;
int? size;
int? num;
Page({this.total, this.size, this.num});
factory Page.fromJson(Map<String, dynamic> json) => Page(
total: json['total'] as int?,
size: json['size'] as int?,
num: json['num'] as int?,
);
}

View File

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

View File

@@ -1,27 +0,0 @@
import 'package:PiliPlus/models_new/fav/fav_pgc/multi_img.dart';
class BadgeInfo {
String? text;
String? bgColor;
String? bgColorNight;
String? img;
MultiImg? multiImg;
BadgeInfo({
this.text,
this.bgColor,
this.bgColorNight,
this.img,
this.multiImg,
});
factory BadgeInfo.fromJson(Map<String, dynamic> json) => BadgeInfo(
text: json['text'] as String?,
bgColor: json['bg_color'] as String?,
bgColorNight: json['bg_color_night'] as String?,
img: json['img'] as String?,
multiImg: json['multi_img'] == null
? null
: MultiImg.fromJson(json['multi_img'] as Map<String, dynamic>),
);
}

View File

@@ -1,18 +0,0 @@
import 'package:PiliPlus/models_new/fav/fav_pgc/content_attr.dart';
import 'package:PiliPlus/models_new/fav/fav_pgc/vip_or_pay.dart';
class BadgeInfos {
ContentAttr? contentAttr;
VipOrPay? vipOrPay;
BadgeInfos({this.contentAttr, this.vipOrPay});
factory BadgeInfos.fromJson(Map<String, dynamic> json) => BadgeInfos(
contentAttr: json['content_attr'] == null
? null
: ContentAttr.fromJson(json['content_attr'] as Map<String, dynamic>),
vipOrPay: json['vip_or_pay'] == null
? null
: VipOrPay.fromJson(json['vip_or_pay'] as Map<String, dynamic>),
);
}

View File

@@ -1,9 +0,0 @@
class CcOnLock {
String? typeUrl;
CcOnLock({this.typeUrl});
factory CcOnLock.fromJson(Map<String, dynamic> json) => CcOnLock(
typeUrl: json['type_url'] as String?,
);
}

View File

@@ -1,39 +0,0 @@
import 'package:PiliPlus/models_new/fav/fav_pgc/cc_on_lock.dart';
import 'package:PiliPlus/models_new/fav/fav_pgc/highlight_ineffective_hd.dart';
import 'package:PiliPlus/models_new/fav/fav_pgc/highlight_ineffective_ott.dart';
import 'package:PiliPlus/models_new/fav/fav_pgc/highlight_ineffective_pink.dart';
class ConfigAttrs {
CcOnLock? ccOnLock;
HighlightIneffectiveHd? highlightIneffectiveHd;
HighlightIneffectiveOtt? highlightIneffectiveOtt;
HighlightIneffectivePink? highlightIneffectivePink;
ConfigAttrs({
this.ccOnLock,
this.highlightIneffectiveHd,
this.highlightIneffectiveOtt,
this.highlightIneffectivePink,
});
factory ConfigAttrs.fromJson(Map<String, dynamic> json) => ConfigAttrs(
ccOnLock: json['cc_on_lock'] == null
? null
: CcOnLock.fromJson(json['cc_on_lock'] as Map<String, dynamic>),
highlightIneffectiveHd: json['highlight_ineffective_hd'] == null
? null
: HighlightIneffectiveHd.fromJson(
json['highlight_ineffective_hd'] as Map<String, dynamic>,
),
highlightIneffectiveOtt: json['highlight_ineffective_ott'] == null
? null
: HighlightIneffectiveOtt.fromJson(
json['highlight_ineffective_ott'] as Map<String, dynamic>,
),
highlightIneffectivePink: json['highlight_ineffective_pink'] == null
? null
: HighlightIneffectivePink.fromJson(
json['highlight_ineffective_pink'] as Map<String, dynamic>,
),
);
}

View File

@@ -1,27 +0,0 @@
import 'package:PiliPlus/models_new/fav/fav_pgc/multi_img.dart';
class ContentAttr {
String? text;
String? bgColor;
String? bgColorNight;
String? img;
MultiImg? multiImg;
ContentAttr({
this.text,
this.bgColor,
this.bgColorNight,
this.img,
this.multiImg,
});
factory ContentAttr.fromJson(Map<String, dynamic> json) => ContentAttr(
text: json['text'] as String?,
bgColor: json['bg_color'] as String?,
bgColorNight: json['bg_color_night'] as String?,
img: json['img'] as String?,
multiImg: json['multi_img'] == null
? null
: MultiImg.fromJson(json['multi_img'] as Map<String, dynamic>),
);
}

View File

@@ -2,18 +2,14 @@ import 'package:PiliPlus/models_new/fav/fav_pgc/list.dart';
class FavPgcData { class FavPgcData {
List<FavPgcItemModel>? list; List<FavPgcItemModel>? list;
int? pn;
int? ps;
int? total; int? total;
FavPgcData({this.list, this.pn, this.ps, this.total}); FavPgcData({this.list, this.total});
factory FavPgcData.fromJson(Map<String, dynamic> json) => FavPgcData( factory FavPgcData.fromJson(Map<String, dynamic> json) => FavPgcData(
list: (json['list'] as List<dynamic>?) list: (json['list'] as List<dynamic>?)
?.map((e) => FavPgcItemModel.fromJson(e as Map<String, dynamic>)) ?.map((e) => FavPgcItemModel.fromJson(e as Map<String, dynamic>))
.toList(), .toList(),
pn: json['pn'] as int?,
ps: json['ps'] as int?,
total: json['total'] as int?, total: json['total'] as int?,
); );
} }

View File

@@ -1,26 +0,0 @@
class FirstEpInfo {
int? id;
String? cover;
String? title;
String? longTitle;
String? pubTime;
int? duration;
FirstEpInfo({
this.id,
this.cover,
this.title,
this.longTitle,
this.pubTime,
this.duration,
});
factory FirstEpInfo.fromJson(Map<String, dynamic> json) => FirstEpInfo(
id: json['id'] as int?,
cover: json['cover'] as String?,
title: json['title'] as String?,
longTitle: json['long_title'] as String?,
pubTime: json['pub_time'] as String?,
duration: json['duration'] as int?,
);
}

View File

@@ -1,11 +0,0 @@
class HighlightIneffectiveHd {
String? typeUrl;
HighlightIneffectiveHd({this.typeUrl});
factory HighlightIneffectiveHd.fromJson(Map<String, dynamic> json) {
return HighlightIneffectiveHd(
typeUrl: json['type_url'] as String?,
);
}
}

View File

@@ -1,11 +0,0 @@
class HighlightIneffectiveOtt {
String? typeUrl;
HighlightIneffectiveOtt({this.typeUrl});
factory HighlightIneffectiveOtt.fromJson(Map<String, dynamic> json) {
return HighlightIneffectiveOtt(
typeUrl: json['type_url'] as String?,
);
}
}

View File

@@ -1,11 +0,0 @@
class HighlightIneffectivePink {
String? typeUrl;
HighlightIneffectivePink({this.typeUrl});
factory HighlightIneffectivePink.fromJson(Map<String, dynamic> json) {
return HighlightIneffectivePink(
typeUrl: json['type_url'] as String?,
);
}
}

View File

@@ -1,208 +1,39 @@
import 'package:PiliPlus/models_new/fav/fav_pgc/area.dart';
import 'package:PiliPlus/models_new/fav/fav_pgc/badge_info.dart';
import 'package:PiliPlus/models_new/fav/fav_pgc/badge_infos.dart';
import 'package:PiliPlus/models_new/fav/fav_pgc/config_attrs.dart';
import 'package:PiliPlus/models_new/fav/fav_pgc/first_ep_info.dart';
import 'package:PiliPlus/models_new/fav/fav_pgc/new_ep.dart'; import 'package:PiliPlus/models_new/fav/fav_pgc/new_ep.dart';
import 'package:PiliPlus/models_new/fav/fav_pgc/producer.dart';
import 'package:PiliPlus/models_new/fav/fav_pgc/publish.dart';
import 'package:PiliPlus/models_new/fav/fav_pgc/rating.dart';
import 'package:PiliPlus/models_new/fav/fav_pgc/rights.dart';
import 'package:PiliPlus/models_new/fav/fav_pgc/section.dart';
import 'package:PiliPlus/models_new/fav/fav_pgc/series.dart';
import 'package:PiliPlus/models_new/fav/fav_pgc/stat.dart';
import 'package:PiliPlus/pages/common/multi_select/base.dart'; import 'package:PiliPlus/pages/common/multi_select/base.dart';
import 'package:PiliPlus/utils/extension/iterable_ext.dart';
class FavPgcItemModel with MultiSelectData { class FavPgcItemModel with MultiSelectData {
int? seasonId; int? seasonId;
int? mediaId;
int? seasonType;
String? seasonTypeName;
String? title; String? title;
String? cover; String? cover;
int? totalCount;
int? isFinish; int? isFinish;
int? isStarted;
int? isPlay;
String? badge; String? badge;
int? badgeType;
Rights? rights;
Stat? stat;
NewEp? newEp; NewEp? newEp;
Rating? rating;
String? squareCover;
int? seasonStatus;
String? seasonTitle;
String? badgeEp;
int? mediaAttr;
int? seasonAttr;
String? evaluate;
List<Area>? areas;
String? subtitle;
int? firstEp;
int? canWatch;
Series? series;
Publish? publish;
int? mode;
List<Section>? section;
String? url;
BadgeInfo? badgeInfo;
String? renewalTime; String? renewalTime;
FirstEpInfo? firstEpInfo;
int? formalEpCount;
String? shortUrl;
BadgeInfos? badgeInfos;
String? seasonVersion;
String? horizontalCover169;
String? horizontalCover1610;
String? subtitle14;
int? viewableCrowdType;
List<Producer>? producers;
String? summary;
List<String>? styles;
ConfigAttrs? configAttrs;
int? followStatus;
int? isNew;
String? progress; String? progress;
bool? bothFollow;
String? subtitle25;
FavPgcItemModel({ FavPgcItemModel({
this.seasonId, this.seasonId,
this.mediaId,
this.seasonType,
this.seasonTypeName,
this.title, this.title,
this.cover, this.cover,
this.totalCount,
this.isFinish, this.isFinish,
this.isStarted,
this.isPlay,
this.badge, this.badge,
this.badgeType,
this.rights,
this.stat,
this.newEp, this.newEp,
this.rating,
this.squareCover,
this.seasonStatus,
this.seasonTitle,
this.badgeEp,
this.mediaAttr,
this.seasonAttr,
this.evaluate,
this.areas,
this.subtitle,
this.firstEp,
this.canWatch,
this.series,
this.publish,
this.mode,
this.section,
this.url,
this.badgeInfo,
this.renewalTime, this.renewalTime,
this.firstEpInfo,
this.formalEpCount,
this.shortUrl,
this.badgeInfos,
this.seasonVersion,
this.horizontalCover169,
this.horizontalCover1610,
this.subtitle14,
this.viewableCrowdType,
this.producers,
this.summary,
this.styles,
this.configAttrs,
this.followStatus,
this.isNew,
this.progress, this.progress,
this.bothFollow,
this.subtitle25,
}); });
factory FavPgcItemModel.fromJson( factory FavPgcItemModel.fromJson(
Map<String, dynamic> json, Map<String, dynamic> json,
) => FavPgcItemModel( ) => FavPgcItemModel(
seasonId: json['season_id'] as int?, seasonId: json['season_id'] as int?,
mediaId: json['media_id'] as int?,
seasonType: json['season_type'] as int?,
seasonTypeName: json['season_type_name'] as String?,
title: json['title'] as String?, title: json['title'] as String?,
cover: json['cover'] as String?, cover: json['cover'] as String?,
totalCount: json['total_count'] as int?,
isFinish: json['is_finish'] as int?, isFinish: json['is_finish'] as int?,
isStarted: json['is_started'] as int?,
isPlay: json['is_play'] as int?,
badge: json['badge'] as String?, badge: json['badge'] as String?,
badgeType: json['badge_type'] as int?,
rights: json['rights'] == null
? null
: Rights.fromJson(json['rights'] as Map<String, dynamic>),
stat: json['stat'] == null
? null
: Stat.fromJson(json['stat'] as Map<String, dynamic>),
newEp: json['new_ep'] == null newEp: json['new_ep'] == null
? null ? null
: NewEp.fromJson(json['new_ep'] as Map<String, dynamic>), : NewEp.fromJson(json['new_ep'] as Map<String, dynamic>),
rating: json['rating'] == null
? null
: Rating.fromJson(json['rating'] as Map<String, dynamic>),
squareCover: json['square_cover'] as String?,
seasonStatus: json['season_status'] as int?,
seasonTitle: json['season_title'] as String?,
badgeEp: json['badge_ep'] as String?,
mediaAttr: json['media_attr'] as int?,
seasonAttr: json['season_attr'] as int?,
evaluate: json['evaluate'] as String?,
areas: (json['areas'] as List<dynamic>?)
?.map((e) => Area.fromJson(e as Map<String, dynamic>))
.toList(),
subtitle: json['subtitle'] as String?,
firstEp: json['first_ep'] as int?,
canWatch: json['can_watch'] as int?,
series: json['series'] == null
? null
: Series.fromJson(json['series'] as Map<String, dynamic>),
publish: json['publish'] == null
? null
: Publish.fromJson(json['publish'] as Map<String, dynamic>),
mode: json['mode'] as int?,
section: (json['section'] as List<dynamic>?)
?.map((e) => Section.fromJson(e as Map<String, dynamic>))
.toList(),
url: json['url'] as String?,
badgeInfo: json['badge_info'] == null
? null
: BadgeInfo.fromJson(json['badge_info'] as Map<String, dynamic>),
renewalTime: json['renewal_time'] as String?, renewalTime: json['renewal_time'] as String?,
firstEpInfo: json['first_ep_info'] == null
? null
: FirstEpInfo.fromJson(json['first_ep_info'] as Map<String, dynamic>),
formalEpCount: json['formal_ep_count'] as int?,
shortUrl: json['short_url'] as String?,
badgeInfos: json['badge_infos'] == null
? null
: BadgeInfos.fromJson(json['badge_infos'] as Map<String, dynamic>),
seasonVersion: json['season_version'] as String?,
horizontalCover169: json['horizontal_cover_16_9'] as String?,
horizontalCover1610: json['horizontal_cover_16_10'] as String?,
subtitle14: json['subtitle_14'] as String?,
viewableCrowdType: json['viewable_crowd_type'] as int?,
producers: (json['producers'] as List<dynamic>?)
?.map((e) => Producer.fromJson(e as Map<String, dynamic>))
.toList(),
summary: json['summary'] as String?,
styles: (json['styles'] as List?)?.fromCast(),
configAttrs: json['config_attrs'] == null
? null
: ConfigAttrs.fromJson(json['config_attrs'] as Map<String, dynamic>),
followStatus: json['follow_status'] as int?,
isNew: json['is_new'] as int?,
progress: json['progress'] == '' ? null : json['progress'], progress: json['progress'] == '' ? null : json['progress'],
bothFollow: json['both_follow'] as bool?,
subtitle25: json['subtitle_25'] as String?,
); );
} }

View File

@@ -1,11 +0,0 @@
class MultiImg {
String? color;
String? mediumRemind;
MultiImg({this.color, this.mediumRemind});
factory MultiImg.fromJson(Map<String, dynamic> json) => MultiImg(
color: json['color'] as String?,
mediumRemind: json['medium_remind'] as String?,
);
}

View File

@@ -1,29 +1,11 @@
class NewEp { class NewEp {
int? id;
String? indexShow; String? indexShow;
String? cover;
String? title;
String? longTitle;
String? pubTime;
int? duration;
NewEp({ NewEp({
this.id,
this.indexShow, this.indexShow,
this.cover,
this.title,
this.longTitle,
this.pubTime,
this.duration,
}); });
factory NewEp.fromJson(Map<String, dynamic> json) => NewEp( factory NewEp.fromJson(Map<String, dynamic> json) => NewEp(
id: json['id'] as int?,
indexShow: json['index_show'] as String?, indexShow: json['index_show'] as String?,
cover: json['cover'] as String?,
title: json['title'] as String?,
longTitle: json['long_title'] as String?,
pubTime: json['pub_time'] as String?,
duration: json['duration'] as int?,
); );
} }

View File

@@ -1,15 +0,0 @@
class Producer {
int? mid;
int? type;
int? isContribute;
String? title;
Producer({this.mid, this.type, this.isContribute, this.title});
factory Producer.fromJson(Map<String, dynamic> json) => Producer(
mid: json['mid'] as int?,
type: json['type'] as int?,
isContribute: json['is_contribute'] as int?,
title: json['title'] as String?,
);
}

View File

@@ -1,20 +0,0 @@
class Publish {
String? pubTime;
String? pubTimeShow;
String? releaseDate;
String? releaseDateShow;
Publish({
this.pubTime,
this.pubTimeShow,
this.releaseDate,
this.releaseDateShow,
});
factory Publish.fromJson(Map<String, dynamic> json) => Publish(
pubTime: json['pub_time'] as String?,
pubTimeShow: json['pub_time_show'] as String?,
releaseDate: json['release_date'] as String?,
releaseDateShow: json['release_date_show'] as String?,
);
}

View File

@@ -1,11 +0,0 @@
class Rating {
double? score;
int? count;
Rating({this.score, this.count});
factory Rating.fromJson(Map<String, dynamic> json) => Rating(
score: (json['score'] as num?)?.toDouble(),
count: json['count'] as int?,
);
}

View File

@@ -1,23 +0,0 @@
class Rights {
int? allowReview;
int? allowPreview;
int? isSelection;
int? selectionStyle;
int? isRcmd;
Rights({
this.allowReview,
this.allowPreview,
this.isSelection,
this.selectionStyle,
this.isRcmd,
});
factory Rights.fromJson(Map<String, dynamic> json) => Rights(
allowReview: json['allow_review'] as int?,
allowPreview: json['allow_preview'] as int?,
isSelection: json['is_selection'] as int?,
selectionStyle: json['selection_style'] as int?,
isRcmd: json['is_rcmd'] as int?,
);
}

View File

@@ -1,31 +0,0 @@
import 'package:PiliPlus/utils/extension/iterable_ext.dart';
class Section {
int? sectionId;
int? seasonId;
int? limitGroup;
int? watchPlatform;
String? copyright;
int? banAreaShow;
List<int>? episodeIds;
Section({
this.sectionId,
this.seasonId,
this.limitGroup,
this.watchPlatform,
this.copyright,
this.banAreaShow,
this.episodeIds,
});
factory Section.fromJson(Map<String, dynamic> json) => Section(
sectionId: json['section_id'] as int?,
seasonId: json['season_id'] as int?,
limitGroup: json['limit_group'] as int?,
watchPlatform: json['watch_platform'] as int?,
copyright: json['copyright'] as String?,
banAreaShow: json['ban_area_show'] as int?,
episodeIds: (json['episode_ids'] as List?)?.fromCast(),
);
}

View File

@@ -1,23 +0,0 @@
class Series {
int? seriesId;
String? title;
int? seasonCount;
int? newSeasonId;
int? seriesOrd;
Series({
this.seriesId,
this.title,
this.seasonCount,
this.newSeasonId,
this.seriesOrd,
});
factory Series.fromJson(Map<String, dynamic> json) => Series(
seriesId: json['series_id'] as int?,
title: json['title'] as String?,
seasonCount: json['season_count'] as int?,
newSeasonId: json['new_season_id'] as int?,
seriesOrd: json['series_ord'] as int?,
);
}

View File

@@ -1,35 +0,0 @@
class Stat {
int? follow;
int? view;
int? danmaku;
int? reply;
num? coin;
int? seriesFollow;
int? seriesView;
int? likes;
int? favorite;
Stat({
this.follow,
this.view,
this.danmaku,
this.reply,
this.coin,
this.seriesFollow,
this.seriesView,
this.likes,
this.favorite,
});
factory Stat.fromJson(Map<String, dynamic> json) => Stat(
follow: json['follow'] as int?,
view: json['view'] as int?,
danmaku: json['danmaku'] as int?,
reply: json['reply'] as int?,
coin: json['coin'] as num?,
seriesFollow: json['series_follow'] as int?,
seriesView: json['series_view'] as int?,
likes: json['likes'] as int?,
favorite: json['favorite'] as int?,
);
}

View File

@@ -1,27 +0,0 @@
import 'package:PiliPlus/models_new/fav/fav_pgc/multi_img.dart';
class VipOrPay {
String? text;
String? bgColor;
String? bgColorNight;
String? img;
MultiImg? multiImg;
VipOrPay({
this.text,
this.bgColor,
this.bgColorNight,
this.img,
this.multiImg,
});
factory VipOrPay.fromJson(Map<String, dynamic> json) => VipOrPay(
text: json['text'] as String?,
bgColor: json['bg_color'] as String?,
bgColorNight: json['bg_color_night'] as String?,
img: json['img'] as String?,
multiImg: json['multi_img'] == null
? null
: MultiImg.fromJson(json['multi_img'] as Map<String, dynamic>),
);
}

View File

@@ -1,11 +1,9 @@
class PageInfo { class PageInfo {
int? curPageNum;
int? total; int? total;
PageInfo({this.curPageNum, this.total}); PageInfo({this.total});
factory PageInfo.fromJson(Map<String, dynamic> json) => PageInfo( factory PageInfo.fromJson(Map<String, dynamic> json) => PageInfo(
curPageNum: json['cur_page_num'] as int?,
total: json['total'] as int?, total: json['total'] as int?,
); );
} }

View File

@@ -1,29 +1,14 @@
class FavTopicItem { class FavTopicItem {
int? id; int? id;
String? name; String? name;
int? view;
int? discuss;
String? jumpUrl;
String? statDesc;
bool? showInteractData;
FavTopicItem({ FavTopicItem({
this.id, this.id,
this.name, this.name,
this.view,
this.discuss,
this.jumpUrl,
this.statDesc,
this.showInteractData,
}); });
factory FavTopicItem.fromJson(Map<String, dynamic> json) => FavTopicItem( factory FavTopicItem.fromJson(Map<String, dynamic> json) => FavTopicItem(
id: json['id'] as int?, id: json['id'] as int?,
name: json['name'] as String?, name: json['name'] as String?,
view: json['view'] as int?,
discuss: json['discuss'] as int?,
jumpUrl: json['jump_url'] as String?,
statDesc: json['stat_desc'] as String?,
showInteractData: json['show_interact_data'] as bool?,
); );
} }

View File

@@ -3,35 +3,22 @@ import 'package:PiliPlus/models/model_avatar.dart';
class FollowItemModel extends UpItem { class FollowItemModel extends UpItem {
int? attribute; int? attribute;
int? mtime;
dynamic tag;
int? special;
String? sign; String? sign;
BaseOfficialVerify? officialVerify; BaseOfficialVerify? officialVerify;
Vip? vip;
String? followTime;
FollowItemModel({ FollowItemModel({
required super.mid, required super.mid,
this.attribute, this.attribute,
this.mtime,
this.tag,
this.special,
super.uname, super.uname,
super.face, super.face,
this.sign, this.sign,
this.officialVerify, this.officialVerify,
this.vip,
this.followTime,
}); });
factory FollowItemModel.fromJson(Map<String, dynamic> json) => factory FollowItemModel.fromJson(Map<String, dynamic> json) =>
FollowItemModel( FollowItemModel(
mid: json['mid'] as int? ?? 0, mid: json['mid'] as int? ?? 0,
attribute: json['attribute'] as int?, attribute: json['attribute'] as int?,
mtime: json['mtime'] as int?,
tag: json['tag'] as dynamic,
special: json['special'] as int?,
uname: json['uname'] as String?, uname: json['uname'] as String?,
face: json['face'] as String?, face: json['face'] as String?,
sign: json['sign'] as String?, sign: json['sign'] as String?,
@@ -40,9 +27,5 @@ class FollowItemModel extends UpItem {
: BaseOfficialVerify.fromJson( : BaseOfficialVerify.fromJson(
json['official_verify'] as Map<String, dynamic>, json['official_verify'] as Map<String, dynamic>,
), ),
vip: json['vip'] == null
? null
: Vip.fromJson(json['vip'] as Map<String, dynamic>),
followTime: json['follow_time'] as String?,
); );
} }

View File

@@ -1,15 +0,0 @@
class Cursor {
int? max;
int? viewAt;
String? business;
int? ps;
Cursor({this.max, this.viewAt, this.business, this.ps});
factory Cursor.fromJson(Map<String, dynamic> json) => Cursor(
max: json['max'] as int?,
viewAt: json['view_at'] as int?,
business: json['business'] as String?,
ps: json['ps'] as int?,
);
}

View File

@@ -1,18 +1,13 @@
import 'package:PiliPlus/models_new/history/cursor.dart';
import 'package:PiliPlus/models_new/history/list.dart'; import 'package:PiliPlus/models_new/history/list.dart';
import 'package:PiliPlus/models_new/history/tab.dart'; import 'package:PiliPlus/models_new/history/tab.dart';
class HistoryData { class HistoryData {
Cursor? cursor;
List<HistoryTab>? tab; List<HistoryTab>? tab;
List<HistoryItemModel>? list; List<HistoryItemModel>? list;
HistoryData({this.cursor, this.tab, this.list}); HistoryData({this.tab, this.list});
factory HistoryData.fromJson(Map<String, dynamic> json) => HistoryData( factory HistoryData.fromJson(Map<String, dynamic> json) => HistoryData(
cursor: json['cursor'] == null
? null
: Cursor.fromJson(json['cursor'] as Map<String, dynamic>),
tab: (json['tab'] as List<dynamic>?) tab: (json['tab'] as List<dynamic>?)
?.map((e) => HistoryTab.fromJson(e as Map<String, dynamic>)) ?.map((e) => HistoryTab.fromJson(e as Map<String, dynamic>))
.toList(), .toList(),

View File

@@ -4,7 +4,6 @@ class History {
String? bvid; String? bvid;
int? page; int? page;
int? cid; int? cid;
String? part;
String? business; String? business;
History({ History({
@@ -13,7 +12,6 @@ class History {
this.bvid, this.bvid,
this.page, this.page,
this.cid, this.cid,
this.part,
this.business, this.business,
}); });
@@ -23,7 +21,6 @@ class History {
bvid: json['bvid'], bvid: json['bvid'],
page: json['page'], page: json['page'],
cid: json['cid'] == 0 ? null : json['cid'], cid: json['cid'] == 0 ? null : json['cid'],
part: json['part'],
business: json['business'], business: json['business'],
); );
} }

View File

@@ -4,24 +4,18 @@ import 'package:PiliPlus/utils/extension/iterable_ext.dart';
class HistoryItemModel with MultiSelectData { class HistoryItemModel with MultiSelectData {
String? title; String? title;
String? longTitle;
String? cover; String? cover;
List<String>? covers; List<String>? covers;
String? uri; String? uri;
late History history; late History history;
int? videos; int? videos;
String? authorName; String? authorName;
String? authorFace;
int? authorMid; int? authorMid;
int? viewAt; int? viewAt;
int? progress; int? progress;
String? badge; String? badge;
String? showTitle; String? showTitle;
int? duration; int? duration;
String? current;
int? total;
String? newDesc;
int? isFinish;
int? isFav; int? isFav;
int? kid; int? kid;
String? tagName; String? tagName;
@@ -29,24 +23,18 @@ class HistoryItemModel with MultiSelectData {
HistoryItemModel({ HistoryItemModel({
this.title, this.title,
this.longTitle,
this.cover, this.cover,
this.covers, this.covers,
this.uri, this.uri,
required this.history, required this.history,
this.videos, this.videos,
this.authorName, this.authorName,
this.authorFace,
this.authorMid, this.authorMid,
this.viewAt, this.viewAt,
this.progress, this.progress,
this.badge, this.badge,
this.showTitle, this.showTitle,
this.duration, this.duration,
this.current,
this.total,
this.newDesc,
this.isFinish,
this.isFav, this.isFav,
this.kid, this.kid,
this.tagName, this.tagName,
@@ -56,7 +44,6 @@ class HistoryItemModel with MultiSelectData {
factory HistoryItemModel.fromJson(Map<String, dynamic> json) => factory HistoryItemModel.fromJson(Map<String, dynamic> json) =>
HistoryItemModel( HistoryItemModel(
title: json['title'] as String?, title: json['title'] as String?,
longTitle: json['long_title'] as String?,
cover: json['cover'] as String?, cover: json['cover'] as String?,
covers: (json['covers'] as List?)?.fromCast(), covers: (json['covers'] as List?)?.fromCast(),
uri: json['uri'] as String?, uri: json['uri'] as String?,
@@ -65,17 +52,12 @@ class HistoryItemModel with MultiSelectData {
: History.fromJson(json['history'] as Map<String, dynamic>), : History.fromJson(json['history'] as Map<String, dynamic>),
videos: json['videos'] as int?, videos: json['videos'] as int?,
authorName: json['author_name'] as String?, authorName: json['author_name'] as String?,
authorFace: json['author_face'] as String?,
authorMid: json['author_mid'] as int?, authorMid: json['author_mid'] as int?,
viewAt: json['view_at'] as int?, viewAt: json['view_at'] as int?,
progress: json['progress'] as int?, progress: json['progress'] as int?,
badge: json['badge'] as String?, badge: json['badge'] as String?,
showTitle: json['show_title'] as String?, showTitle: json['show_title'] as String?,
duration: json['duration'] as int?, duration: json['duration'] as int?,
current: json['current'] as String?,
total: json['total'] as int?,
newDesc: json['new_desc'] as String?,
isFinish: json['is_finish'] as int?,
isFav: json['is_fav'] as int?, isFav: json['is_fav'] as int?,
kid: json['kid'] as int?, kid: json['kid'] as int?,
tagName: json['tag_name'] as String?, tagName: json['tag_name'] as String?,

View File

@@ -2,24 +2,15 @@ import 'package:PiliPlus/models_new/later/season.dart';
class Bangumi { class Bangumi {
int? epId; int? epId;
String? title;
String? longTitle;
String? cover;
Season? season; Season? season;
Bangumi({ Bangumi({
this.epId, this.epId,
this.title,
this.longTitle,
this.cover,
this.season, this.season,
}); });
factory Bangumi.fromJson(Map<String, dynamic> json) => Bangumi( factory Bangumi.fromJson(Map<String, dynamic> json) => Bangumi(
epId: json['ep_id'] as int?, epId: json['ep_id'] as int?,
title: json['title'] as String?,
longTitle: json['long_title'] as String?,
cover: json['cover'] as String?,
season: json['season'] == null season: json['season'] == null
? null ? null
: Season.fromJson(json['season'] as Map<String, dynamic>), : Season.fromJson(json['season'] as Map<String, dynamic>),

View File

@@ -1,6 +1,5 @@
import 'package:PiliPlus/models/model_owner.dart'; import 'package:PiliPlus/models/model_owner.dart';
import 'package:PiliPlus/models_new/later/bangumi.dart'; import 'package:PiliPlus/models_new/later/bangumi.dart';
import 'package:PiliPlus/models_new/later/page.dart';
import 'package:PiliPlus/models_new/later/rights.dart'; import 'package:PiliPlus/models_new/later/rights.dart';
import 'package:PiliPlus/models_new/later/stat.dart'; import 'package:PiliPlus/models_new/later/stat.dart';
import 'package:PiliPlus/models_new/video/video_detail/dimension.dart'; import 'package:PiliPlus/models_new/video/video_detail/dimension.dart';
@@ -8,7 +7,6 @@ import 'package:PiliPlus/pages/common/multi_select/base.dart';
class LaterItemModel with MultiSelectData { class LaterItemModel with MultiSelectData {
int? aid; int? aid;
int? videos;
String? pic; String? pic;
String? title; String? title;
String? subtitle; String? subtitle;
@@ -18,7 +16,6 @@ class LaterItemModel with MultiSelectData {
Rights? rights; Rights? rights;
Owner? owner; Owner? owner;
Stat? stat; Stat? stat;
List<Page>? pages;
Bangumi? bangumi; Bangumi? bangumi;
int? cid; int? cid;
int? progress; int? progress;
@@ -26,13 +23,11 @@ class LaterItemModel with MultiSelectData {
bool? isPgc; bool? isPgc;
String? pgcLabel; String? pgcLabel;
bool? isPugv; bool? isPugv;
int? seasonId;
bool? isCharging; bool? isCharging;
Dimension? dimension; Dimension? dimension;
LaterItemModel({ LaterItemModel({
this.aid, this.aid,
this.videos,
this.pic, this.pic,
this.title, this.title,
this.subtitle, this.subtitle,
@@ -42,7 +37,6 @@ class LaterItemModel with MultiSelectData {
this.rights, this.rights,
this.owner, this.owner,
this.stat, this.stat,
this.pages,
this.bangumi, this.bangumi,
this.cid, this.cid,
this.progress, this.progress,
@@ -50,14 +44,12 @@ class LaterItemModel with MultiSelectData {
this.isPgc, this.isPgc,
this.pgcLabel, this.pgcLabel,
this.isPugv, this.isPugv,
this.seasonId,
this.isCharging, this.isCharging,
this.dimension, this.dimension,
}); });
factory LaterItemModel.fromJson(Map<String, dynamic> json) => LaterItemModel( factory LaterItemModel.fromJson(Map<String, dynamic> json) => LaterItemModel(
aid: json['aid'] as int?, aid: json['aid'] as int?,
videos: json['videos'] as int?,
pic: json['pic'] as String?, pic: json['pic'] as String?,
title: json['title'] as String?, title: json['title'] as String?,
pubdate: json['pubdate'] as int?, pubdate: json['pubdate'] as int?,
@@ -72,9 +64,6 @@ class LaterItemModel with MultiSelectData {
stat: json['stat'] == null stat: json['stat'] == null
? null ? null
: Stat.fromJson(json['stat'] as Map<String, dynamic>), : Stat.fromJson(json['stat'] as Map<String, dynamic>),
pages: (json['pages'] as List<dynamic>?)
?.map((e) => Page.fromJson(e as Map<String, dynamic>))
.toList(),
bangumi: json['bangumi'] == null bangumi: json['bangumi'] == null
? null ? null
: Bangumi.fromJson(json['bangumi'] as Map<String, dynamic>), : Bangumi.fromJson(json['bangumi'] as Map<String, dynamic>),
@@ -90,7 +79,6 @@ class LaterItemModel with MultiSelectData {
isPgc: json['is_pgc'] as bool?, isPgc: json['is_pgc'] as bool?,
pgcLabel: json['pgc_label'] == '' ? null : json['pgc_label'], pgcLabel: json['pgc_label'] == '' ? null : json['pgc_label'],
isPugv: json['is_pugv'] as bool?, isPugv: json['is_pugv'] as bool?,
seasonId: json['season_id'] as int?,
isCharging: json['charging_pay']?['level'] != null, isCharging: json['charging_pay']?['level'] != null,
dimension: json['dimension'] == null dimension: json['dimension'] == null
? null ? null

View File

@@ -1,17 +0,0 @@
class Page {
int? cid;
int? page;
int? duration;
Page({
this.cid,
this.page,
this.duration,
});
factory Page.fromJson(Map<String, dynamic> json) => Page(
cid: json['cid'] as int?,
page: json['page'] as int?,
duration: json['duration'] as int?,
);
}

View File

@@ -1,14 +1,11 @@
class Season { class Season {
int? seasonId;
String? title; String? title;
Season({ Season({
this.seasonId,
this.title, this.title,
}); });
factory Season.fromJson(Map<String, dynamic> json) => Season( factory Season.fromJson(Map<String, dynamic> json) => Season(
seasonId: json['season_id'] as int?,
title: json['title'] as String?, title: json['title'] as String?,
); );
} }

View File

@@ -1,16 +1,13 @@
class Stat { class Stat {
int? aid;
int? view; int? view;
int? danmaku; int? danmaku;
Stat({ Stat({
this.aid,
this.view, this.view,
this.danmaku, this.danmaku,
}); });
factory Stat.fromJson(Map<String, dynamic> json) => Stat( factory Stat.fromJson(Map<String, dynamic> json) => Stat(
aid: json['aid'] as int?,
view: json['view'] as int?, view: json['view'] as int?,
danmaku: json['danmaku'] as int?, danmaku: json['danmaku'] as int?,
); );

View File

@@ -1,17 +1,13 @@
import 'package:PiliPlus/models_new/live/live_area_list/area_item.dart'; import 'package:PiliPlus/models_new/live/live_area_list/area_item.dart';
class AreaList { class AreaList {
int? id;
String? name; String? name;
int? parentAreaType;
List<AreaItem>? areaList; List<AreaItem>? areaList;
AreaList({this.id, this.name, this.parentAreaType, this.areaList}); AreaList({this.name, this.areaList});
factory AreaList.fromJson(Map<String, dynamic> json) => AreaList( factory AreaList.fromJson(Map<String, dynamic> json) => AreaList(
id: json['id'] as int?,
name: json['name'] ?? '', name: json['name'] ?? '',
parentAreaType: json['parent_area_type'] as int?,
areaList: (json['area_list'] as List<dynamic>?) areaList: (json['area_list'] as List<dynamic>?)
?.map((e) => AreaItem.fromJson(e as Map<String, dynamic>)) ?.map((e) => AreaItem.fromJson(e as Map<String, dynamic>))
.toList(), .toList(),

View File

@@ -4,7 +4,6 @@ class LiveContributionRankItem {
int? uid; int? uid;
String? name; String? name;
String? face; String? face;
int? rank;
int? score; int? score;
UinfoMedal? uinfoMedal; UinfoMedal? uinfoMedal;
@@ -12,7 +11,6 @@ class LiveContributionRankItem {
this.uid, this.uid,
this.name, this.name,
this.face, this.face,
this.rank,
this.score, this.score,
this.uinfoMedal, this.uinfoMedal,
}); });
@@ -22,7 +20,6 @@ class LiveContributionRankItem {
uid: json['uid'] as int?, uid: json['uid'] as int?,
name: json['name'] as String?, name: json['name'] as String?,
face: json['face'] as String?, face: json['face'] as String?,
rank: json['rank'] as int?,
score: json['score'] as int?, score: json['score'] as int?,
uinfoMedal: json['uinfo']?['medal'] == null uinfoMedal: json['uinfo']?['medal'] == null
? null ? null

View File

@@ -10,11 +10,8 @@ class CardLiveItem {
String? _systemCover; String? _systemCover;
String? get systemCover => _systemCover ?? cover; String? get systemCover => _systemCover ?? cover;
String? title; String? title;
int? liveTime;
String? areaName; String? areaName;
int? areaV2Id; int? areaV2Id;
String? areaV2Name;
String? areaV2ParentName;
int? areaV2ParentId; int? areaV2ParentId;
WatchedShow? watchedShow; WatchedShow? watchedShow;
@@ -26,11 +23,8 @@ class CardLiveItem {
this.cover, this.cover,
String? systemCover, String? systemCover,
this.title, this.title,
this.liveTime,
this.areaName, this.areaName,
this.areaV2Id, this.areaV2Id,
this.areaV2Name,
this.areaV2ParentName,
this.areaV2ParentId, this.areaV2ParentId,
this.watchedShow, this.watchedShow,
}) : _systemCover = noneNullOrEmptyString(systemCover); }) : _systemCover = noneNullOrEmptyString(systemCover);
@@ -43,11 +37,8 @@ class CardLiveItem {
cover: json['cover'] as String?, cover: json['cover'] as String?,
systemCover: json['system_cover'], systemCover: json['system_cover'],
title: json['title'] as String?, title: json['title'] as String?,
liveTime: json['live_time'] as int?,
areaName: json['area_name'] as String?, areaName: json['area_name'] as String?,
areaV2Id: json['area_v2_id'] as int?, areaV2Id: json['area_v2_id'] as int?,
areaV2Name: json['area_v2_name'] as String?,
areaV2ParentName: json['area_v2_parent_name'] as String?,
areaV2ParentId: json['area_v2_parent_id'] as int?, areaV2ParentId: json['area_v2_parent_id'] as int?,
watchedShow: json['watched_show'] == null watchedShow: json['watched_show'] == null
? null ? null

View File

@@ -1,37 +1,25 @@
class LiveFollowItem { class LiveFollowItem {
int? roomid; int? roomid;
int? uid;
String? uname; String? uname;
String? title; String? title;
String? face;
int? liveStatus;
String? areaName; String? areaName;
String? areaNameV2;
String? textSmall; String? textSmall;
String? roomCover; String? roomCover;
LiveFollowItem({ LiveFollowItem({
this.roomid, this.roomid,
this.uid,
this.uname, this.uname,
this.title, this.title,
this.face,
this.liveStatus,
this.areaName, this.areaName,
this.areaNameV2,
this.textSmall, this.textSmall,
this.roomCover, this.roomCover,
}); });
factory LiveFollowItem.fromJson(Map<String, dynamic> json) => LiveFollowItem( factory LiveFollowItem.fromJson(Map<String, dynamic> json) => LiveFollowItem(
roomid: json['roomid'] as int?, roomid: json['roomid'] as int?,
uid: json['uid'] as int?,
uname: json['uname'] as String?, uname: json['uname'] as String?,
title: json['title'] as String?, title: json['title'] as String?,
face: json['face'] as String?,
liveStatus: json['live_status'] as int?,
areaName: json['area_name'] as String?, areaName: json['area_name'] as String?,
areaNameV2: json['area_name_v2'] as String?,
textSmall: json['text_small'] as String?, textSmall: json['text_small'] as String?,
roomCover: json['room_cover'] as String?, roomCover: json['room_cover'] as String?,
); );

View File

@@ -5,16 +5,12 @@ class MedalWallData {
int? count; int? count;
String? name; String? name;
String? icon; String? icon;
int? uid;
int? level;
MedalWallData({ MedalWallData({
this.list, this.list,
this.count, this.count,
this.name, this.name,
this.icon, this.icon,
this.uid,
this.level,
}); });
factory MedalWallData.fromJson(Map<String, dynamic> json) => MedalWallData( factory MedalWallData.fromJson(Map<String, dynamic> json) => MedalWallData(
@@ -24,7 +20,5 @@ class MedalWallData {
count: json['count'] as int?, count: json['count'] as int?,
name: json['name'] as String?, name: json['name'] as String?,
icon: json['icon'] as String?, icon: json['icon'] as String?,
uid: json['uid'] as int?,
level: json['level'] as int?,
); );
} }

View File

@@ -1,35 +1,20 @@
class RoomInfo { class RoomInfo {
int? uid; int? uid;
int? roomId;
String? title; String? title;
String? cover; String? cover;
int? liveStatus;
int? liveStartTime;
int? online;
String? appBackground; String? appBackground;
String? subSessionKey;
RoomInfo({ RoomInfo({
this.uid, this.uid,
this.roomId,
this.title, this.title,
this.cover, this.cover,
this.liveStatus,
this.liveStartTime,
this.online,
this.appBackground, this.appBackground,
this.subSessionKey,
}); });
factory RoomInfo.fromJson(Map<String, dynamic> json) => RoomInfo( factory RoomInfo.fromJson(Map<String, dynamic> json) => RoomInfo(
uid: json['uid'] as int?, uid: json['uid'] as int?,
roomId: json['room_id'] as int?,
title: json['title'] as String?, title: json['title'] as String?,
cover: json['cover'] as String?, cover: json['cover'] as String?,
liveStatus: json['live_status'] as int?,
liveStartTime: json['live_start_time'] as int?,
online: json['online'] as int?,
appBackground: json['app_background'] as String?, appBackground: json['app_background'] as String?,
subSessionKey: json['sub_session_key'] as String?,
); );
} }

View File

@@ -2,39 +2,24 @@ import 'package:PiliPlus/models_new/live/live_room_play_info/url_info.dart';
import 'package:PiliPlus/utils/extension/iterable_ext.dart'; import 'package:PiliPlus/utils/extension/iterable_ext.dart';
class CodecItem { class CodecItem {
String? codecName;
int? currentQn; int? currentQn;
List<int>? acceptQn; List<int>? acceptQn;
String? baseUrl; String? baseUrl;
List<UrlInfo>? urlInfo; List<UrlInfo>? urlInfo;
dynamic hdrQn;
int? dolbyType;
String? attrName;
int? hdrType;
CodecItem({ CodecItem({
this.codecName,
this.currentQn, this.currentQn,
this.acceptQn, this.acceptQn,
this.baseUrl, this.baseUrl,
this.urlInfo, this.urlInfo,
this.hdrQn,
this.dolbyType,
this.attrName,
this.hdrType,
}); });
factory CodecItem.fromJson(Map<String, dynamic> json) => CodecItem( factory CodecItem.fromJson(Map<String, dynamic> json) => CodecItem(
codecName: json['codec_name'] as String?,
currentQn: json['current_qn'] as int?, currentQn: json['current_qn'] as int?,
acceptQn: (json['accept_qn'] as List?)?.fromCast(), acceptQn: (json['accept_qn'] as List?)?.fromCast(),
baseUrl: json['base_url'] as String?, baseUrl: json['base_url'] as String?,
urlInfo: (json['url_info'] as List<dynamic>?) urlInfo: (json['url_info'] as List<dynamic>?)
?.map((e) => UrlInfo.fromJson(e as Map<String, dynamic>)) ?.map((e) => UrlInfo.fromJson(e as Map<String, dynamic>))
.toList(), .toList(),
hdrQn: json['hdr_qn'] as dynamic,
dolbyType: json['dolby_type'] as int?,
attrName: json['attr_name'] as String?,
hdrType: json['hdr_type'] as int?,
); );
} }

View File

@@ -1,17 +1,13 @@
import 'package:PiliPlus/models_new/live/live_room_play_info/codec.dart'; import 'package:PiliPlus/models_new/live/live_room_play_info/codec.dart';
class Format { class Format {
String? formatName;
List<CodecItem>? codec; List<CodecItem>? codec;
String? masterUrl;
Format({this.formatName, this.codec, this.masterUrl}); Format({this.codec});
factory Format.fromJson(Map<String, dynamic> json) => Format( factory Format.fromJson(Map<String, dynamic> json) => Format(
formatName: json['format_name'] as String?,
codec: (json['codec'] as List<dynamic>?) codec: (json['codec'] as List<dynamic>?)
?.map((e) => CodecItem.fromJson(e as Map<String, dynamic>)) ?.map((e) => CodecItem.fromJson(e as Map<String, dynamic>))
.toList(), .toList(),
masterUrl: json['master_url'] as String?,
); );
} }

View File

@@ -1,16 +1,13 @@
import 'package:PiliPlus/models_new/live/live_room_play_info/stream.dart'; import 'package:PiliPlus/models_new/live/live_room_play_info/stream.dart';
class Playurl { class Playurl {
int? cid;
List<Stream>? stream; List<Stream>? stream;
Playurl({ Playurl({
this.cid,
this.stream, this.stream,
}); });
factory Playurl.fromJson(Map<String, dynamic> json) => Playurl( factory Playurl.fromJson(Map<String, dynamic> json) => Playurl(
cid: json['cid'] as int?,
stream: (json['stream'] as List<dynamic>?) stream: (json['stream'] as List<dynamic>?)
?.map((e) => Stream.fromJson(e as Map<String, dynamic>)) ?.map((e) => Stream.fromJson(e as Map<String, dynamic>))
.toList(), .toList(),

View File

@@ -1,13 +1,11 @@
import 'package:PiliPlus/models_new/live/live_room_play_info/format.dart'; import 'package:PiliPlus/models_new/live/live_room_play_info/format.dart';
class Stream { class Stream {
String? protocolName;
List<Format>? format; List<Format>? format;
Stream({this.protocolName, this.format}); Stream({this.format});
factory Stream.fromJson(Map<String, dynamic> json) => Stream( factory Stream.fromJson(Map<String, dynamic> json) => Stream(
protocolName: json['protocol_name'] as String?,
format: (json['format'] as List<dynamic>?) format: (json['format'] as List<dynamic>?)
?.map((e) => Format.fromJson(e as Map<String, dynamic>)) ?.map((e) => Format.fromJson(e as Map<String, dynamic>))
.toList(), .toList(),

View File

@@ -1,13 +1,11 @@
class UrlInfo { class UrlInfo {
String? host; String? host;
String? extra; String? extra;
int? streamTtl;
UrlInfo({this.host, this.extra, this.streamTtl}); UrlInfo({this.host, this.extra});
factory UrlInfo.fromJson(Map<String, dynamic> json) => UrlInfo( factory UrlInfo.fromJson(Map<String, dynamic> json) => UrlInfo(
host: json['host'] as String?, host: json['host'] as String?,
extra: json['extra'] as String?, extra: json['extra'] as String?,
streamTtl: json['stream_ttl'] as int?,
); );
} }

View File

@@ -2,24 +2,15 @@ import 'package:PiliPlus/models_new/live/live_search/room.dart';
import 'package:PiliPlus/models_new/live/live_search/user.dart'; import 'package:PiliPlus/models_new/live/live_search/user.dart';
class LiveSearchData { class LiveSearchData {
String? type;
int? page;
int? pagesize;
Room? room; Room? room;
User? user; User? user;
LiveSearchData({ LiveSearchData({
this.type,
this.page,
this.pagesize,
this.room, this.room,
this.user, this.user,
}); });
factory LiveSearchData.fromJson(Map<String, dynamic> json) => LiveSearchData( factory LiveSearchData.fromJson(Map<String, dynamic> json) => LiveSearchData(
type: json['type'] as String?,
page: json['page'] as int?,
pagesize: json['pagesize'] as int?,
room: json['room'] == null room: json['room'] == null
? null ? null
: Room.fromJson(json['room'] as Map<String, dynamic>), : Room.fromJson(json['room'] as Map<String, dynamic>),

View File

@@ -1,19 +0,0 @@
import 'package:PiliPlus/models_new/live/live_search/data.dart';
class LiveSearch {
int? code;
String? message;
int? ttl;
LiveSearchData? data;
LiveSearch({this.code, this.message, this.ttl, this.data});
factory LiveSearch.fromJson(Map<String, dynamic> json) => LiveSearch(
code: json['code'] as int?,
message: json['message'] as String?,
ttl: json['ttl'] as int?,
data: json['data'] == null
? null
: LiveSearchData.fromJson(json['data'] as Map<String, dynamic>),
);
}

View File

@@ -3,9 +3,8 @@ import 'package:PiliPlus/models_new/live/live_search/room_item.dart';
class Room { class Room {
List<LiveSearchRoomItemModel>? list; List<LiveSearchRoomItemModel>? list;
int? totalRoom; int? totalRoom;
int? totalPage;
Room({this.list, this.totalRoom, this.totalPage}); Room({this.list, this.totalRoom});
factory Room.fromJson(Map<String, dynamic> json) => Room( factory Room.fromJson(Map<String, dynamic> json) => Room(
list: (json['list'] as List<dynamic>?) list: (json['list'] as List<dynamic>?)
@@ -14,6 +13,5 @@ class Room {
) )
.toList(), .toList(),
totalRoom: json['total_room'] as int?, totalRoom: json['total_room'] as int?,
totalPage: json['total_page'] as int?,
); );
} }

View File

@@ -3,15 +3,13 @@ import 'package:PiliPlus/models_new/live/live_search/user_item.dart';
class User { class User {
List<LiveSearchUserItemModel>? list; List<LiveSearchUserItemModel>? list;
int? totalUser; int? totalUser;
int? totalPage;
User({this.list, this.totalUser, this.totalPage}); User({this.list, this.totalUser});
factory User.fromJson(Map<String, dynamic> json) => User( factory User.fromJson(Map<String, dynamic> json) => User(
list: (json['list'] as List<dynamic>?) list: (json['list'] as List<dynamic>?)
?.map((e) => LiveSearchUserItemModel.fromJson(e)) ?.map((e) => LiveSearchUserItemModel.fromJson(e))
.toList(), .toList(),
totalUser: json['total_user'] as int?, totalUser: json['total_user'] as int?,
totalPage: json['total_page'] as int?,
); );
} }

View File

@@ -1,16 +1,13 @@
class LiveSecondTag { class LiveSecondTag {
int? id;
String? name; String? name;
String? sortType; String? sortType;
LiveSecondTag({ LiveSecondTag({
this.id,
this.name, this.name,
this.sortType, this.sortType,
}); });
factory LiveSecondTag.fromJson(Map json) => LiveSecondTag( factory LiveSecondTag.fromJson(Map json) => LiveSecondTag(
id: json['id'],
name: json['name'], name: json['name'],
sortType: json['sort_type'], sortType: json['sort_type'],
); );

View File

@@ -1,32 +1,20 @@
class LoginDevice { class LoginDevice {
int? mid;
String? localId;
String? deviceName; String? deviceName;
String? devicePlatform;
bool? isCurrentDevice; bool? isCurrentDevice;
String? latestLoginAt; String? latestLoginAt;
String? source; String? source;
int? origin;
LoginDevice({ LoginDevice({
this.mid,
this.localId,
this.deviceName, this.deviceName,
this.devicePlatform,
this.isCurrentDevice, this.isCurrentDevice,
this.latestLoginAt, this.latestLoginAt,
this.source, this.source,
this.origin,
}); });
factory LoginDevice.fromJson(Map<String, dynamic> json) => LoginDevice( factory LoginDevice.fromJson(Map<String, dynamic> json) => LoginDevice(
mid: json['mid'] as int?,
localId: json['local_id'] as String?,
deviceName: json['device_name'] as String?, deviceName: json['device_name'] as String?,
devicePlatform: json['device_platform'] as String?,
isCurrentDevice: json['is_current_device'] as bool?, isCurrentDevice: json['is_current_device'] as bool?,
latestLoginAt: json['latest_login_at'] as String?, latestLoginAt: json['latest_login_at'] as String?,
source: json['source'] as String?, source: json['source'] as String?,
origin: json['origin'] as int?,
); );
} }

View File

@@ -1,13 +1,11 @@
import 'package:PiliPlus/models_new/login_log/list.dart'; import 'package:PiliPlus/models_new/login_log/list.dart';
class LoginLogData { class LoginLogData {
int? count;
List<LoginLogItem>? list; List<LoginLogItem>? list;
LoginLogData({this.count, this.list}); LoginLogData({this.list});
factory LoginLogData.fromJson(Map<String, dynamic> json) => LoginLogData( factory LoginLogData.fromJson(Map<String, dynamic> json) => LoginLogData(
count: json['count'] as int?,
list: (json['list'] as List<dynamic>?) list: (json['list'] as List<dynamic>?)
?.map((e) => LoginLogItem.fromJson(e as Map<String, dynamic>)) ?.map((e) => LoginLogItem.fromJson(e as Map<String, dynamic>))
.toList(), .toList(),

Some files were not shown because too many files have changed in this diff Show More