Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-10-20 15:30:55 +08:00
parent 67b4ed65ab
commit 23272d285b

View File

@@ -3,6 +3,7 @@ import 'dart:convert';
import 'package:PiliPlus/http/api.dart'; import 'package:PiliPlus/http/api.dart';
import 'package:PiliPlus/http/init.dart'; import 'package:PiliPlus/http/init.dart';
import 'package:PiliPlus/http/loading_state.dart'; import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/http/ua_type.dart';
import 'package:PiliPlus/models/common/search/search_type.dart'; import 'package:PiliPlus/models/common/search/search_type.dart';
import 'package:PiliPlus/models/search/result.dart'; import 'package:PiliPlus/models/search/result.dart';
import 'package:PiliPlus/models/search/suggest.dart'; import 'package:PiliPlus/models/search/suggest.dart';
@@ -86,6 +87,7 @@ class SearchHttp {
queryParameters: params, queryParameters: params,
options: Options( options: Options(
headers: { headers: {
'user-agent': UaType.pc.ua,
'origin': 'https://search.bilibili.com', 'origin': 'https://search.bilibili.com',
'referer': 'referer':
'https://search.bilibili.com/${searchType.name}?keyword=$keyword', 'https://search.bilibili.com/${searchType.name}?keyword=$keyword',
@@ -95,24 +97,27 @@ class SearchHttp {
final resData = res.data; final resData = res.data;
if (resData is Map) { if (resData is Map) {
if (resData['code'] == 0) { if (resData['code'] == 0) {
if (resData.containsKey('v_voucher')) return const Error('触发风控'); final Map<String, dynamic> dataData = resData['data'];
if (dataData.containsKey('v_voucher')) {
return const Error('触发风控');
}
dynamic data; dynamic data;
try { try {
switch (searchType) { switch (searchType) {
case SearchType.video: case SearchType.video:
data = SearchVideoData.fromJson(res.data['data']); data = SearchVideoData.fromJson(dataData);
break; break;
case SearchType.live_room: case SearchType.live_room:
data = SearchLiveData.fromJson(res.data['data']); data = SearchLiveData.fromJson(dataData);
break; break;
case SearchType.bili_user: case SearchType.bili_user:
data = SearchUserData.fromJson(res.data['data']); data = SearchUserData.fromJson(dataData);
break; break;
case SearchType.media_bangumi || SearchType.media_ft: case SearchType.media_bangumi || SearchType.media_ft:
data = SearchPgcData.fromJson(res.data['data']); data = SearchPgcData.fromJson(dataData);
break; break;
case SearchType.article: case SearchType.article:
data = SearchArticleData.fromJson(res.data['data']); data = SearchArticleData.fromJson(dataData);
break; break;
// default: // default:
// break; // break;
@@ -123,7 +128,7 @@ class SearchHttp {
return Error(err.toString()); return Error(err.toString());
} }
} else { } else {
return Error(res.data['message'], code: resData['code']); return Error(resData['message'], code: resData['code']);
} }
} else { } else {
return const Error('服务器错误'); return const Error('服务器错误');