mirror of
https://github.com/ImranR98/Obtainium.git
synced 2025-08-23 06:29:29 +02:00
Fixed relative link handling in HTML source
This commit is contained in:
@@ -34,16 +34,20 @@ class HTML extends AppSource {
|
|||||||
var rel = links.last;
|
var rel = links.last;
|
||||||
var apkName = rel.split('/').last;
|
var apkName = rel.split('/').last;
|
||||||
var version = apkName.substring(0, apkName.length - 4);
|
var version = apkName.substring(0, apkName.length - 4);
|
||||||
List<String> apkUrls = [rel]
|
List<String> apkUrls = [rel].map((e) {
|
||||||
.map((e) => e.toLowerCase().startsWith('http://') ||
|
try {
|
||||||
e.toLowerCase().startsWith('https://')
|
Uri.parse(e).origin;
|
||||||
? e
|
return e;
|
||||||
: e.startsWith('/')
|
} catch (err) {
|
||||||
? '${uri.origin}/$e'
|
// is relative
|
||||||
: uri.path.endsWith('.html') || uri.path.endsWith('.php')
|
}
|
||||||
? '${uri.origin}/${uri.path.split('/').sublist(0, uri.path.split('/').length - 1).join('/')}/$e'
|
var currPathSegments = uri.path.split('/');
|
||||||
: '${uri.origin}/${uri.path}/$e')
|
if (e.startsWith('/') || currPathSegments.isEmpty) {
|
||||||
.toList();
|
return '${uri.origin}/$e';
|
||||||
|
} else {
|
||||||
|
return '${uri.origin}/${currPathSegments.sublist(0, currPathSegments.length - 1).join('/')}/$e';
|
||||||
|
}
|
||||||
|
}).toList();
|
||||||
return APKDetails(
|
return APKDetails(
|
||||||
version, getApkUrlsFromUrls(apkUrls), AppNames(uri.host, tr('app')));
|
version, getApkUrlsFromUrls(apkUrls), AppNames(uri.host, tr('app')));
|
||||||
} else {
|
} else {
|
||||||
|
Reference in New Issue
Block a user