opt change episode

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-08-03 10:42:26 +08:00
parent 14fd660ce2
commit cf835e330b
20 changed files with 223 additions and 298 deletions

View File

@@ -1,22 +1,24 @@
import 'package:PiliPlus/models_new/media_list/media_list.dart';
class MediaListData {
List<MediaListItemModel>? mediaList;
List<MediaListItemModel> mediaList;
bool? hasMore;
int? totalCount;
String? nextStartKey;
MediaListData({
this.mediaList,
required this.mediaList,
this.hasMore,
this.totalCount,
this.nextStartKey,
});
factory MediaListData.fromJson(Map<String, dynamic> json) => MediaListData(
mediaList: (json['media_list'] as List<dynamic>?)
?.map((e) => MediaListItemModel.fromJson(e as Map<String, dynamic>))
.toList(),
mediaList:
(json['media_list'] as List<dynamic>?)
?.map((e) => MediaListItemModel.fromJson(e as Map<String, dynamic>))
.toList() ??
<MediaListItemModel>[],
hasMore: json['has_more'] as bool?,
totalCount: json['total_count'] as int?,
nextStartKey: json['next_start_key'] as String?,

View File

@@ -1,15 +1,15 @@
import 'package:PiliPlus/models/model_owner.dart';
import 'package:PiliPlus/models_new/fav/fav_detail/cnt_info.dart';
import 'package:PiliPlus/models_new/media_list/badge.dart';
import 'package:PiliPlus/models_new/media_list/coin.dart';
import 'package:PiliPlus/models_new/media_list/ogv_info.dart';
import 'package:PiliPlus/models_new/media_list/page.dart';
import 'package:PiliPlus/models_new/media_list/rights.dart';
import 'package:PiliPlus/models_new/video/video_detail/episode.dart';
import 'package:PiliPlus/utils/extension.dart';
class MediaListItemModel {
class MediaListItemModel extends BaseEpisodeItem {
@override
int? get id => aid;
int? aid;
int? offset;
int? index;
String? intro;
@@ -17,32 +17,27 @@ class MediaListItemModel {
int? tid;
int? copyRight;
CntInfo? cntInfo;
String? cover;
int? duration;
int? pubtime;
int? likeState;
int? favState;
int? page;
List<Page>? pages;
String? title;
int? type;
Owner? upper;
String? link;
String? bvid;
String? shortLink;
Rights? rights;
dynamic elecInfo;
Coin? coin;
OgvInfo? ogvInfo;
double? progressPercent;
Badge? badge;
bool? forbidFav;
int? moreType;
int? businessOid;
int? cid;
MediaListItemModel({
this.aid,
super.aid,
this.offset,
this.index,
this.intro,
@@ -50,29 +45,29 @@ class MediaListItemModel {
this.tid,
this.copyRight,
this.cntInfo,
this.cover,
super.cover,
this.duration,
this.pubtime,
this.likeState,
this.favState,
this.page,
this.pages,
this.title,
super.title,
this.type,
this.upper,
this.link,
this.bvid,
super.bvid,
this.shortLink,
this.rights,
this.elecInfo,
this.coin,
this.ogvInfo,
this.progressPercent,
this.badge,
super.badge,
this.forbidFav,
this.moreType,
this.businessOid,
this.cid,
super.cid,
});
MediaListItemModel.fromJson(Map<String, dynamic> json) {
@@ -106,7 +101,7 @@ class MediaListItemModel {
? null
: OgvInfo.fromJson(json['ogv_info']);
progressPercent = (json['progress_percent'] as num?)?.toDouble();
badge = json['badge'] == null ? null : Badge.fromJson(json['badge']);
badge = json['badge']?['text'];
forbidFav = json['forbid_fav'] as bool?;
moreType = json['more_type'] as int?;
businessOid = json['business_oid'] as int?;