precheck video dimension

Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-04-23 17:08:51 +08:00
parent efc202c10f
commit 5b5983ed50
32 changed files with 237 additions and 81 deletions

View File

@@ -10,6 +10,7 @@ import 'package:PiliPlus/models_new/dynamic/dyn_topic_pub_search/data.dart';
import 'package:PiliPlus/models_new/pgc/pgc_info_model/result.dart';
import 'package:PiliPlus/models_new/search/search_rcmd/data.dart';
import 'package:PiliPlus/models_new/search/search_trending/data.dart';
import 'package:PiliPlus/models_new/video/video_detail/dimension.dart';
import 'package:PiliPlus/utils/request_utils.dart';
import 'package:PiliPlus/utils/wbi_sign.dart';
import 'package:dio/dio.dart';
@@ -172,6 +173,14 @@ abstract final class SearchHttp {
}
static Future<int?> ab2c({dynamic aid, dynamic bvid, int? part}) async {
return (await ab2cWithDimension(aid: aid, bvid: bvid, part: part))?.cid;
}
static Future<({int? cid, Dimension? dimension})?> ab2cWithDimension({
dynamic aid,
dynamic bvid,
int? part,
}) async {
final res = await Request().get(
Api.ab2c,
queryParameters: {
@@ -181,13 +190,19 @@ abstract final class SearchHttp {
);
if (res.data['code'] == 0) {
if (res.data['data'] case List list) {
return part != null
? (list.elementAtOrNull(part - 1)?['cid'] ??
list.firstOrNull?['cid'])
: list.firstOrNull?['cid'];
} else {
return null;
final target = part != null
? (list.elementAtOrNull(part - 1) ?? list.firstOrNull)
: list.firstOrNull;
if (target != null) {
return (
cid: target['cid'] as int?,
dimension: target['dimension'] == null
? null
: Dimension.fromJson(target['dimension']),
);
}
}
return null;
} else {
SmartDialog.showToast("ab2c error: ${res.data['message']}");
return null;