From 26bca6df64cc686e968880e578c9fbc3b2adc45c Mon Sep 17 00:00:00 2001 From: iKirby <6316115+iKirby@users.noreply.github.com> Date: Tue, 6 May 2025 16:18:31 +0800 Subject: [PATCH] Fix parsing vivo app id from URL when using source override --- lib/app_sources/vivoappstore.dart | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/lib/app_sources/vivoappstore.dart b/lib/app_sources/vivoappstore.dart index b68b694..fbd512e 100644 --- a/lib/app_sources/vivoappstore.dart +++ b/lib/app_sources/vivoappstore.dart @@ -17,11 +17,7 @@ class VivoAppStore extends AppSource { @override String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) { - var vivoAppId = - Uri.parse(url.replaceAll('/#', '')).queryParameters['appId']; - if (vivoAppId == null) { - throw InvalidURLError(name); - } + var vivoAppId = parseVivoAppId(url); return '$appDetailUrl$vivoAppId'; } @@ -76,20 +72,26 @@ class VivoAppStore extends AppSource { Future> getDetailJson( String standardUrl, Map additionalSettings) async { - var vivoAppId = Uri.parse(standardUrl).queryParameters['appId']; + var vivoAppId = parseVivoAppId(standardUrl); var apiBaseUrl = 'https://h5-api.appstore.vivo.com.cn/detail/'; var params = '?frompage=messageh5&app_version=2100'; - var detailUrl = '$apiBaseUrl$vivoAppId$params'; var response = await sourceRequest(detailUrl, additionalSettings); if (response.statusCode != 200) { throw getObtainiumHttpError(response); } - var json = jsonDecode(response.body); if (json['id'] == null) { throw NoReleasesError(); } return json; } + + String parseVivoAppId(String url) { + var appId = Uri.parse(url.replaceAll('/#', '')).queryParameters['appId']; + if (appId == null) { + throw InvalidURLError(name); + } + return appId; + } }