feat: live area page

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-05-06 18:00:09 +08:00
parent bd1ffb0f24
commit bd31ab5d07
17 changed files with 1145 additions and 65 deletions

View File

@@ -0,0 +1,48 @@
class AreaItem {
dynamic id;
String? name;
String? link;
String? pic;
dynamic parentId;
String? parentName;
int? areaType;
int? tagType;
bool? isFav;
AreaItem({
this.id,
this.name,
this.link,
this.pic,
this.parentId,
this.parentName,
this.areaType,
this.tagType,
});
factory AreaItem.fromJson(Map<String, dynamic> json) => AreaItem(
id: json['id'],
name: json['name'] as String?,
link: json['link'] as String?,
pic: json['pic'] as String?,
parentId: json['parent_id'],
parentName: json['parent_name'] as String?,
areaType: json['area_type'] as int?,
tagType: json['tag_type'] as int?,
);
@override
bool operator ==(Object other) {
if (identical(this, other)) {
return true;
}
if (other is AreaItem) {
return id == other.id && parentId == other.parentId;
}
return false;
}
@override
int get hashCode => Object.hash(id, parentId);
}

View File

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

View File

@@ -1,12 +1,15 @@
import 'package:PiliPlus/models/live/live_feed_index/card_data_list_item.dart';
import 'package:PiliPlus/models/live/live_second_list/tag.dart';
class LiveSecondData {
int? count;
List<CardLiveItem>? cardList;
List<LiveSecondTag>? newTags;
LiveSecondData({
this.count,
this.cardList,
this.newTags,
});
factory LiveSecondData.fromJson(Map<String, dynamic> json) => LiveSecondData(
@@ -14,10 +17,8 @@ class LiveSecondData {
cardList: (json['list'] as List<dynamic>?)
?.map((e) => CardLiveItem.fromJson(e as Map<String, dynamic>))
.toList(),
newTags: (json['new_tags'] as List<dynamic>?)
?.map((e) => LiveSecondTag.fromJson(e as Map<String, dynamic>))
.toList(),
);
Map<String, dynamic> toJson() => {
'count': count,
'list': cardList?.map((e) => e.toJson()).toList(),
};
}

View File

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