opt: space tab

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-05-11 12:44:33 +08:00
parent 574bf861f0
commit 90ccb86a6f
15 changed files with 51 additions and 38 deletions

View File

@@ -1,4 +1,3 @@
import 'package:PiliPlus/models/space/filter.dart';
import 'package:json_annotation/json_annotation.dart';
part 'item.g.dart';
@@ -47,8 +46,6 @@ class SpaceItem {
bool? state;
String? bvid;
int? videos;
// @JsonKey(name: 'three_point')
// List<ThreePoint>? threePoint;
@JsonKey(name: 'first_cid')
int? firstCid;
@JsonKey(name: 'view_content')
@@ -57,7 +54,6 @@ class SpaceItem {
int? iconType;
@JsonKey(name: 'publish_time_text')
String? publishTimeText;
List<SpaceTabFilter>? filter;
SpaceItem({
this.title,
@@ -89,12 +85,10 @@ class SpaceItem {
this.state,
this.bvid,
this.videos,
// this.threePoint,
this.firstCid,
this.viewContent,
this.iconType,
this.publishTimeText,
this.filter,
});
factory SpaceItem.fromJson(Map<String, dynamic> json) => _$ItemFromJson(json);

View File

@@ -36,16 +36,10 @@ SpaceItem _$ItemFromJson(Map<String, dynamic> json) => SpaceItem(
state: json['state'] as bool?,
bvid: json['bvid'] as String?,
videos: (json['videos'] as num?)?.toInt(),
// threePoint: (json['three_point'] as List<dynamic>?)
// ?.map((e) => ThreePoint.fromJson(e as Map<String, dynamic>))
// .toList(),
firstCid: (json['first_cid'] as num?)?.toInt(),
viewContent: json['view_content'] as String?,
iconType: (json['icon_type'] as num?)?.toInt(),
publishTimeText: json['publish_time_text'] as String?,
filter: (json['filter'] as List?)
?.map((e) => SpaceTabFilter.fromJson(e))
.toList(),
);
Map<String, dynamic> _$ItemToJson(SpaceItem instance) => <String, dynamic>{
@@ -78,7 +72,6 @@ Map<String, dynamic> _$ItemToJson(SpaceItem instance) => <String, dynamic>{
'state': instance.state,
'bvid': instance.bvid,
'videos': instance.videos,
// 'three_point': instance.threePoint,
'first_cid': instance.firstCid,
'view_content': instance.viewContent,
'icon_type': instance.iconType,

View File

@@ -1,16 +1,15 @@
import 'package:PiliPlus/models/space/tab_item.dart';
import 'package:json_annotation/json_annotation.dart';
import 'package:PiliPlus/models/space/item.dart';
part 'tab2.g.dart';
@JsonSerializable()
class Tab2 {
String? title;
String? param;
List<SpaceItem>? items;
final String? title;
final String? param;
final List<SpaceTabItem>? items;
Tab2({this.title, this.param, this.items});
const Tab2({this.title, this.param, this.items});
factory Tab2.fromJson(Map<String, dynamic> json) => _$Tab2FromJson(json);

View File

@@ -10,7 +10,7 @@ Tab2 _$Tab2FromJson(Map<String, dynamic> json) => Tab2(
title: json['title'] as String?,
param: json['param'] as String?,
items: (json['items'] as List<dynamic>?)
?.map((e) => SpaceItem.fromJson(e as Map<String, dynamic>))
?.map((e) => SpaceTabItem.fromJson(e as Map<String, dynamic>))
.toList(),
);

View File

@@ -0,0 +1,27 @@
import 'package:PiliPlus/models/space/filter.dart';
class SpaceTabItem {
final String? title;
final String? param;
final int? seriesId;
final int? seasonId;
final List<SpaceTabFilter>? filter;
const SpaceTabItem({
this.title,
this.param,
this.seriesId,
this.seasonId,
this.filter,
});
factory SpaceTabItem.fromJson(Map<String, dynamic> json) => SpaceTabItem(
title: json['title'] as String?,
param: json['param'] as String?,
seriesId: (json['series_id'] as num?)?.toInt(),
seasonId: (json['season_id'] as num?)?.toInt(),
filter: (json['filter'] as List?)
?.map((e) => SpaceTabFilter.fromJson(e))
.toList(),
);
}