mod: seek from url

related #208

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-02-23 11:28:10 +08:00
parent 8e4ce07d19
commit 108648cabf
2 changed files with 15 additions and 3 deletions

View File

@@ -1,4 +1,5 @@
import 'dart:convert';
import 'package:PiliPlus/utils/extension.dart';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:PiliPlus/http/loading_state.dart';
@@ -140,7 +141,7 @@ class SearchHttp {
}
}
static Future<int> ab2c({dynamic aid, dynamic bvid}) async {
static Future<int> ab2c({dynamic aid, dynamic bvid, int? part}) async {
Map<String, dynamic> data = {};
if (aid != null) {
data['aid'] = aid;
@@ -150,7 +151,10 @@ class SearchHttp {
final dynamic res = await Request()
.get(Api.ab2c, queryParameters: <String, dynamic>{...data});
if (res.data['code'] == 0) {
return res.data['data'].first['cid'];
return part != null
? ((res.data['data'] as List).getOrNull(part - 1)?['cid'] ??
res.data['data'].first['cid'])
: res.data['data'].first['cid'];
} else {
SmartDialog.showToast("ab2c error: ${res.data['message']}");
return -1;

View File

@@ -453,10 +453,13 @@ class PiliScheme {
debugPrint('投稿');
final Map<String, dynamic> map = IdUtils.matchAvorBv(input: path);
if (map.isNotEmpty) {
final queryParameters = uri.queryParameters;
videoPush(
map['AV'],
map['BV'],
off: off,
progress: queryParameters['dm_progress'],
part: queryParameters['p'],
);
return true;
}
@@ -547,6 +550,7 @@ class PiliScheme {
bool showDialog = true,
bool off = false,
String? progress,
String? part,
}) async {
try {
aid ??= IdUtils.bv2av(bvid!);
@@ -554,7 +558,11 @@ class PiliScheme {
if (showDialog) {
SmartDialog.showLoading<dynamic>(msg: '获取中...');
}
final int cid = await SearchHttp.ab2c(bvid: bvid, aid: aid);
final int cid = await SearchHttp.ab2c(
bvid: bvid,
aid: aid,
part: part != null ? int.tryParse(part) : null,
);
if (showDialog) {
SmartDialog.dismiss();
}