refa: search panel

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-04-17 16:13:11 +08:00
parent 7b9e4b2f82
commit 4db7711a36
21 changed files with 1607 additions and 1504 deletions

View File

@@ -1,5 +1,6 @@
// ignore_for_file: constant_identifier_names
enum SearchType {
// all,
// 视频video
video,
// 番剧media_bangumi,
@@ -23,7 +24,15 @@ enum SearchType {
}
extension SearchTypeExtension on SearchType {
String get label => ['视频', '番剧', '影视', '直播间', '用户', '专栏'][index];
String get label => [
// '综合',
'视频',
'番剧',
'影视',
'直播间',
'用户',
'专栏',
][index];
}
// 搜索类型为视频、专栏及相簿时

View File

@@ -4,9 +4,21 @@ import 'package:PiliPlus/utils/utils.dart';
import '../model_owner.dart';
import '../model_video.dart';
class SearchVideoModel {
abstract class SearchNumData<T> {
SearchNumData({
this.numResults,
this.list,
});
int? numResults;
List<SearchVideoItemModel>? list;
List<T>? list;
}
class SearchVideoModel extends SearchNumData<SearchVideoItemModel> {
SearchVideoModel({
super.numResults,
super.list,
});
SearchVideoModel.fromJson(Map<String, dynamic> json) {
numResults = (json['numResults'] as num?)?.toInt();
@@ -88,15 +100,12 @@ class SearchOwner extends Owner {
}
}
class SearchUserModel {
class SearchUserModel extends SearchNumData<SearchUserItemModel> {
SearchUserModel({
this.numResults,
this.list,
super.numResults,
super.list,
});
int? numResults;
List<SearchUserItemModel>? list;
SearchUserModel.fromJson(Map<String, dynamic> json) {
numResults = (json['numResults'] as num?)?.toInt();
list = (json['result'] as List?)
@@ -165,15 +174,12 @@ class SearchUserItemModel {
}
}
class SearchLiveModel {
class SearchLiveModel extends SearchNumData<SearchLiveItemModel> {
SearchLiveModel({
this.numResults,
this.list,
super.numResults,
super.list,
});
int? numResults;
List<SearchLiveItemModel>? list;
SearchLiveModel.fromJson(Map<String, dynamic> json) {
numResults = (json['numResults'] as num?)?.toInt();
list = json['result']
@@ -246,15 +252,12 @@ class SearchLiveItemModel {
}
}
class SearchMBangumiModel {
class SearchMBangumiModel extends SearchNumData<SearchMBangumiItemModel> {
SearchMBangumiModel({
this.numResults,
this.list,
super.numResults,
super.list,
});
int? numResults;
List<SearchMBangumiItemModel>? list;
SearchMBangumiModel.fromJson(Map<String, dynamic> json) {
numResults = (json['numResults'] as num?)?.toInt();
list = (json['result'] as List?)
@@ -348,15 +351,12 @@ class SearchMBangumiItemModel {
}
}
class SearchArticleModel {
class SearchArticleModel extends SearchNumData<SearchArticleItemModel> {
SearchArticleModel({
this.numResults,
this.list,
super.numResults,
super.list,
});
int? numResults;
List<SearchArticleItemModel>? list;
SearchArticleModel.fromJson(Map<String, dynamic> json) {
numResults = (json['numResults'] as num?)?.toInt();
list = (json['result'] as List?)