mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
feat: search all
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
// ignore_for_file: constant_identifier_names
|
||||
enum SearchType {
|
||||
// all,
|
||||
all,
|
||||
// 视频:video
|
||||
video,
|
||||
// 番剧:media_bangumi,
|
||||
@@ -25,7 +25,7 @@ enum SearchType {
|
||||
|
||||
extension SearchTypeExtension on SearchType {
|
||||
String get label => [
|
||||
// '综合',
|
||||
'综合',
|
||||
'视频',
|
||||
'番剧',
|
||||
'影视',
|
||||
|
||||
@@ -14,6 +14,46 @@ abstract class SearchNumData<T> {
|
||||
List<T>? list;
|
||||
}
|
||||
|
||||
class SearchAllModel extends SearchNumData {
|
||||
SearchAllModel({
|
||||
super.numResults,
|
||||
super.list,
|
||||
});
|
||||
|
||||
SearchAllModel.fromJson(Map<String, dynamic> json) {
|
||||
numResults = (json['numResults'] as num?)?.toInt();
|
||||
if ((json['result'] as List?)?.isNotEmpty == true) {
|
||||
final isRefresh = json['page'] == 1;
|
||||
list = [];
|
||||
for (final item in json['result']) {
|
||||
if ((item['data'] as List?)?.isNotEmpty == true) {
|
||||
switch (item['result_type']) {
|
||||
case 'media_bangumi' || 'media_bangumi':
|
||||
if (isRefresh) {
|
||||
list!.add((item['data'] as List)
|
||||
.map((e) => SearchMBangumiItemModel.fromJson(e))
|
||||
.toList());
|
||||
}
|
||||
break;
|
||||
case 'bili_user':
|
||||
if (isRefresh) {
|
||||
list!.addAll((item['data'] as List)
|
||||
.map((e) => SearchUserItemModel.fromJson(e))
|
||||
.toList());
|
||||
}
|
||||
break;
|
||||
case 'video':
|
||||
list!.addAll((item['data'] as List)
|
||||
.map((e) => SearchVideoItemModel.fromJson(e))
|
||||
.toList());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class SearchVideoModel extends SearchNumData<SearchVideoItemModel> {
|
||||
SearchVideoModel({
|
||||
super.numResults,
|
||||
|
||||
Reference in New Issue
Block a user