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