mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
opt: unify trending api & feat: search recommend (#694)
* opt: unify trending api * opt: disable icon * feat: search recommend * mod: recommend api
This commit is contained in:
committed by
GitHub
parent
3638d65008
commit
f0e3b776bb
@@ -766,4 +766,7 @@ class Api {
|
||||
static const String searchTrending = '/x/v2/search/trending/ranking';
|
||||
|
||||
static const String setTopDyn = '/x/dynamic/feed/space/set_top';
|
||||
|
||||
static const String searchRecommend =
|
||||
'${HttpString.appBaseUrl}/x/v2/search/recommend';
|
||||
}
|
||||
|
||||
@@ -7,9 +7,9 @@ abstract class LoadingState<T> {
|
||||
}
|
||||
|
||||
class Loading extends LoadingState<Never> {
|
||||
Loading._internal();
|
||||
const Loading._internal();
|
||||
|
||||
static final Loading _instance = Loading._internal();
|
||||
static const Loading _instance = Loading._internal();
|
||||
|
||||
factory Loading() => _instance;
|
||||
}
|
||||
|
||||
@@ -6,33 +6,12 @@ import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
|
||||
import 'package:PiliPlus/http/loading_state.dart';
|
||||
import '../models/bangumi/info.dart';
|
||||
import '../models/common/search_type.dart';
|
||||
import '../models/search/hot.dart';
|
||||
import '../models/search/result.dart';
|
||||
import '../models/search/suggest.dart';
|
||||
import '../utils/storage.dart';
|
||||
import 'index.dart';
|
||||
|
||||
class SearchHttp {
|
||||
static Future hotSearchList() async {
|
||||
var res = await Request().get(Api.hotSearchList);
|
||||
if (res.data is String) {
|
||||
Map<String, dynamic> resultMap = json.decode(res.data);
|
||||
if (resultMap['code'] == 0) {
|
||||
return {
|
||||
'status': true,
|
||||
'data': HotSearchModel.fromJson(resultMap),
|
||||
};
|
||||
}
|
||||
} else if (res.data is Map<String, dynamic> && res.data['code'] == 0) {
|
||||
return {
|
||||
'status': true,
|
||||
'data': HotSearchModel.fromJson(res.data),
|
||||
};
|
||||
}
|
||||
|
||||
return {'status': false, 'msg': '请求错误'};
|
||||
}
|
||||
|
||||
// 获取搜索建议
|
||||
static Future searchSuggest({required term}) async {
|
||||
var res = await Request().get(Api.searchSuggest,
|
||||
@@ -211,7 +190,7 @@ class SearchHttp {
|
||||
|
||||
static Future<LoadingState<TrendingData>> searchTrending(
|
||||
{int limit = 30}) async {
|
||||
final dynamic res = await Request().get(
|
||||
final res = await Request().get(
|
||||
Api.searchTrending,
|
||||
queryParameters: {
|
||||
'limit': limit,
|
||||
@@ -223,4 +202,17 @@ class SearchHttp {
|
||||
return LoadingState.error(res.data['message']);
|
||||
}
|
||||
}
|
||||
|
||||
static Future<LoadingState<SearchKeywordData>> searchRecommend() async {
|
||||
final res = await Request().get(Api.searchRecommend, queryParameters: {
|
||||
'build': '8350200',
|
||||
'c_locale': 'zh_CN',
|
||||
'mobi_app': 'android',
|
||||
'platform': 'android',
|
||||
's_locale': 'zh_CN',
|
||||
});
|
||||
return res.data['code'] == 0
|
||||
? LoadingState.success(SearchKeywordData.fromJson(res.data['data']))
|
||||
: LoadingState.error(res.data['message']);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user