mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
feat: search media_ft
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -82,7 +82,7 @@ class SearchHttp {
|
||||
int? pubEnd,
|
||||
}) async {
|
||||
var reqData = {
|
||||
'search_type': searchType.type,
|
||||
'search_type': searchType.name,
|
||||
'keyword': keyword,
|
||||
// 'order_sort': 0,
|
||||
// 'user_type': 0,
|
||||
@@ -117,7 +117,7 @@ class SearchHttp {
|
||||
case SearchType.bili_user:
|
||||
data = SearchUserModel.fromJson(res.data['data']);
|
||||
break;
|
||||
case SearchType.media_bangumi:
|
||||
case SearchType.media_bangumi || SearchType.media_ft:
|
||||
data = SearchMBangumiModel.fromJson(res.data['data']);
|
||||
break;
|
||||
case SearchType.article:
|
||||
|
||||
@@ -5,7 +5,7 @@ enum SearchType {
|
||||
// 番剧:media_bangumi,
|
||||
media_bangumi,
|
||||
// 影视:media_ft
|
||||
// media_ft,
|
||||
media_ft,
|
||||
// 直播间及主播:live
|
||||
// live,
|
||||
// 直播间:live_room
|
||||
@@ -23,9 +23,7 @@ enum SearchType {
|
||||
}
|
||||
|
||||
extension SearchTypeExtension on SearchType {
|
||||
String get type =>
|
||||
['video', 'media_bangumi', 'live_room', 'bili_user', 'article'][index];
|
||||
String get label => ['视频', '番剧', '直播间', '用户', '专栏'][index];
|
||||
String get label => ['视频', '番剧', '影视', '直播间', '用户', '专栏'][index];
|
||||
}
|
||||
|
||||
// 搜索类型为视频、专栏及相簿时
|
||||
|
||||
@@ -98,7 +98,7 @@ class SearchPanelController extends CommonController {
|
||||
keyword: keyword!,
|
||||
page: currentPage,
|
||||
order: order.value,
|
||||
duration: searchType!.type != 'video' ? null : duration.value,
|
||||
duration: searchType!.name != 'video' ? null : duration.value,
|
||||
tids: tids,
|
||||
orderSort: orderSort,
|
||||
userType: userType,
|
||||
|
||||
@@ -46,7 +46,7 @@ class _SearchPanelState extends State<SearchPanel>
|
||||
searchType: widget.searchType,
|
||||
tag: widget.tag,
|
||||
),
|
||||
tag: widget.searchType!.type + widget.keyword!,
|
||||
tag: widget.searchType!.name + widget.keyword!,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -71,14 +71,17 @@ class _SearchPanelState extends State<SearchPanel>
|
||||
mainAxisSpacing: 2,
|
||||
maxCrossAxisExtent: Grid.maxRowWidth * 2,
|
||||
childAspectRatio: StyleString.aspectRatio *
|
||||
(widget.searchType == SearchType.media_bangumi ? 1.5 : 2.2),
|
||||
(widget.searchType == SearchType.media_bangumi ||
|
||||
widget.searchType == SearchType.media_ft
|
||||
? 1.5
|
||||
: 2.2),
|
||||
),
|
||||
delegate: SliverChildBuilderDelegate(
|
||||
(context, index) {
|
||||
switch (widget.searchType) {
|
||||
case SearchType.video:
|
||||
return const VideoCardHSkeleton();
|
||||
case SearchType.media_bangumi:
|
||||
case SearchType.media_bangumi || SearchType.media_ft:
|
||||
return const MediaBangumiSkeleton();
|
||||
case SearchType.bili_user:
|
||||
return const VideoCardHSkeleton();
|
||||
@@ -101,7 +104,7 @@ class _SearchPanelState extends State<SearchPanel>
|
||||
_searchPanelController,
|
||||
loadingState,
|
||||
);
|
||||
case SearchType.media_bangumi:
|
||||
case SearchType.media_bangumi || SearchType.media_ft:
|
||||
return searchBangumiPanel(
|
||||
context,
|
||||
_searchPanelController,
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
import 'package:PiliPlus/models/common/search_type.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
class SearchResultController extends GetxController {
|
||||
String? keyword;
|
||||
|
||||
RxList<int> count = List.generate(5, (_) => -1).toList().obs;
|
||||
RxList<int> count =
|
||||
List.generate(SearchType.values.length, (_) => -1).toList().obs;
|
||||
|
||||
@override
|
||||
void onInit() {
|
||||
|
||||
@@ -56,7 +56,7 @@ class _SearchResultPageState extends State<SearchResultPage>
|
||||
),
|
||||
),
|
||||
title: GestureDetector(
|
||||
onTap: () => Get.back(),
|
||||
onTap: Get.back,
|
||||
child: SizedBox(
|
||||
width: double.infinity,
|
||||
child: Text(
|
||||
@@ -110,7 +110,7 @@ class _SearchResultPageState extends State<SearchResultPage>
|
||||
onTap: (index) {
|
||||
if (_tabController.indexIsChanging.not) {
|
||||
Get.find<SearchPanelController>(
|
||||
tag: SearchType.values[index].type +
|
||||
tag: SearchType.values[index].name +
|
||||
_searchResultController.keyword!)
|
||||
.animateToTop();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user