mirror of
				https://github.com/ImranR98/Obtainium.git
				synced 2025-11-04 07:13:28 +01:00 
			
		
		
		
	Extract GitLab Asset Filenames (#2127)
This commit is contained in:
		@@ -163,12 +163,18 @@ class GitLab extends AppSource {
 | 
				
			|||||||
    apkDetailsList = json.map((e) {
 | 
					    apkDetailsList = json.map((e) {
 | 
				
			||||||
      var apkUrlsFromAssets = (e['assets']?['links'] as List<dynamic>? ?? [])
 | 
					      var apkUrlsFromAssets = (e['assets']?['links'] as List<dynamic>? ?? [])
 | 
				
			||||||
          .map((e) {
 | 
					          .map((e) {
 | 
				
			||||||
            return (e['direct_asset_url'] ?? e['url'] ?? '') as String;
 | 
					            var url = (e['direct_asset_url'] ?? e['url'] ?? '') as String;
 | 
				
			||||||
 | 
					            var parsedUrl = url.isNotEmpty ? Uri.parse(url) : null;
 | 
				
			||||||
 | 
					            return MapEntry(
 | 
				
			||||||
 | 
					                (e['name'] ??
 | 
				
			||||||
 | 
					                    (parsedUrl != null && parsedUrl.pathSegments.isNotEmpty
 | 
				
			||||||
 | 
					                        ? parsedUrl.pathSegments.last
 | 
				
			||||||
 | 
					                        : 'unknown')) as String,
 | 
				
			||||||
 | 
					                (e['direct_asset_url'] ?? e['url'] ?? '') as String);
 | 
				
			||||||
          })
 | 
					          })
 | 
				
			||||||
          .where((s) => s.isNotEmpty)
 | 
					          .where((s) => s.key.isNotEmpty)
 | 
				
			||||||
          .toList();
 | 
					          .toList();
 | 
				
			||||||
      List<String> uploadedAPKsFromDescription =
 | 
					      var uploadedAPKsFromDescription = ((e['description'] ?? '') as String)
 | 
				
			||||||
          ((e['description'] ?? '') as String)
 | 
					 | 
				
			||||||
          .split('](')
 | 
					          .split('](')
 | 
				
			||||||
          .join('\n')
 | 
					          .join('\n')
 | 
				
			||||||
          .split('.apk)')
 | 
					          .split('.apk)')
 | 
				
			||||||
@@ -176,16 +182,20 @@ class GitLab extends AppSource {
 | 
				
			|||||||
          .split('\n')
 | 
					          .split('\n')
 | 
				
			||||||
          .where((s) => s.startsWith('/uploads/') && s.endsWith('apk'))
 | 
					          .where((s) => s.startsWith('/uploads/') && s.endsWith('apk'))
 | 
				
			||||||
          .map((s) => 'https://${hosts[0]}/-/project/$projectId$s')
 | 
					          .map((s) => 'https://${hosts[0]}/-/project/$projectId$s')
 | 
				
			||||||
 | 
					          .map((l) => MapEntry(Uri.parse(l).pathSegments.last, l))
 | 
				
			||||||
          .toList();
 | 
					          .toList();
 | 
				
			||||||
      var apkUrlsSet = apkUrlsFromAssets.toSet();
 | 
					      Map<String, String> apkUrls = {};
 | 
				
			||||||
      apkUrlsSet.addAll(uploadedAPKsFromDescription);
 | 
					      for (var entry in apkUrlsFromAssets) {
 | 
				
			||||||
 | 
					        apkUrls[entry.key] = entry.value;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      for (var entry in uploadedAPKsFromDescription) {
 | 
				
			||||||
 | 
					        apkUrls[entry.key] = entry.value;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
      var releaseDateString =
 | 
					      var releaseDateString =
 | 
				
			||||||
          e['released_at'] ?? e['created_at'] ?? e['commit']?['created_at'];
 | 
					          e['released_at'] ?? e['created_at'] ?? e['commit']?['created_at'];
 | 
				
			||||||
      DateTime? releaseDate =
 | 
					      DateTime? releaseDate =
 | 
				
			||||||
          releaseDateString != null ? DateTime.parse(releaseDateString) : null;
 | 
					          releaseDateString != null ? DateTime.parse(releaseDateString) : null;
 | 
				
			||||||
      return APKDetails(
 | 
					      return APKDetails(e['tag_name'] ?? e['name'], apkUrls.entries.toList(),
 | 
				
			||||||
          e['tag_name'] ?? e['name'],
 | 
					 | 
				
			||||||
          getApkUrlsFromUrls(apkUrlsSet.toList()),
 | 
					 | 
				
			||||||
          AppNames(names.author, names.name.split('/').last),
 | 
					          AppNames(names.author, names.name.split('/').last),
 | 
				
			||||||
          releaseDate: releaseDate);
 | 
					          releaseDate: releaseDate);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user