mirror of
				https://github.com/ImranR98/Obtainium.git
				synced 2025-11-04 07:13:28 +01:00 
			
		
		
		
	clean up debug prints
This commit is contained in:
		@@ -17,26 +17,21 @@ class CoolApk extends AppSource {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  @override
 | 
					  @override
 | 
				
			||||||
  String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
 | 
					  String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
 | 
				
			||||||
    print('Debug: Standardizing URL: $url');
 | 
					 | 
				
			||||||
    RegExp standardUrlRegEx = RegExp(
 | 
					    RegExp standardUrlRegEx = RegExp(
 | 
				
			||||||
        r'^https?://(www\.)?coolapk\.com/apk/[^/]+',
 | 
					        r'^https?://(www\.)?coolapk\.com/apk/[^/]+',
 | 
				
			||||||
        caseSensitive: false);
 | 
					        caseSensitive: false);
 | 
				
			||||||
    var match = standardUrlRegEx.firstMatch(url);
 | 
					    var match = standardUrlRegEx.firstMatch(url);
 | 
				
			||||||
    if (match == null) {
 | 
					    if (match == null) {
 | 
				
			||||||
      print('Debug: Invalid URL for CoolApk: $url');
 | 
					 | 
				
			||||||
      throw InvalidURLError(name);
 | 
					      throw InvalidURLError(name);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    String standardizedUrl = match.group(0)!;
 | 
					    String standardizedUrl = match.group(0)!;
 | 
				
			||||||
    print('Debug: Standardized URL: $standardizedUrl');
 | 
					 | 
				
			||||||
    return standardizedUrl;
 | 
					    return standardizedUrl;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @override
 | 
					  @override
 | 
				
			||||||
  Future<String?> tryInferringAppId(String standardUrl,
 | 
					  Future<String?> tryInferringAppId(String standardUrl,
 | 
				
			||||||
      {Map<String, dynamic> additionalSettings = const {}}) async {
 | 
					      {Map<String, dynamic> additionalSettings = const {}}) async {
 | 
				
			||||||
    print('Debug: Inferring appId from URL: $standardUrl');
 | 
					 | 
				
			||||||
    String appId = Uri.parse(standardUrl).pathSegments.last;
 | 
					    String appId = Uri.parse(standardUrl).pathSegments.last;
 | 
				
			||||||
    print('Debug: Inferred appId: $appId');
 | 
					 | 
				
			||||||
    return appId;
 | 
					    return appId;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -47,24 +42,18 @@ class CoolApk extends AppSource {
 | 
				
			|||||||
      ) async {
 | 
					      ) async {
 | 
				
			||||||
    String appId = (await tryInferringAppId(standardUrl))!;
 | 
					    String appId = (await tryInferringAppId(standardUrl))!;
 | 
				
			||||||
    String apiUrl = 'https://api2.coolapk.com';
 | 
					    String apiUrl = 'https://api2.coolapk.com';
 | 
				
			||||||
    print('Debug: Fetching details for appId: $appId');
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // get latest
 | 
					    // get latest
 | 
				
			||||||
    var detailUrl = '$apiUrl/v6/apk/detail?id=$appId';
 | 
					    var detailUrl = '$apiUrl/v6/apk/detail?id=$appId';
 | 
				
			||||||
    var headers = await getRequestHeaders(additionalSettings);
 | 
					    var headers = await getRequestHeaders(additionalSettings);
 | 
				
			||||||
    print('Debug: Requesting URL: $detailUrl with headers: $headers');
 | 
					 | 
				
			||||||
    var res = await sourceRequest(detailUrl, additionalSettings);
 | 
					    var res = await sourceRequest(detailUrl, additionalSettings);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    print('Debug: Response status code: ${res.statusCode}');
 | 
					 | 
				
			||||||
    if (res.statusCode != 200) {
 | 
					    if (res.statusCode != 200) {
 | 
				
			||||||
      print('Debug: HTTP error: ${res.statusCode} - ${res.body}');
 | 
					 | 
				
			||||||
      throw getObtainiumHttpError(res);
 | 
					      throw getObtainiumHttpError(res);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    var json = jsonDecode(res.body);
 | 
					    var json = jsonDecode(res.body);
 | 
				
			||||||
    print('Debug: Parsed JSON: $json');
 | 
					 | 
				
			||||||
    if (json['status'] == -2 || json['data'] == null) {
 | 
					    if (json['status'] == -2 || json['data'] == null) {
 | 
				
			||||||
      print('Debug: No releases found or invalid status: ${json['status']}');
 | 
					 | 
				
			||||||
      throw NoReleasesError();
 | 
					      throw NoReleasesError();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -80,15 +69,11 @@ class CoolApk extends AppSource {
 | 
				
			|||||||
        : null;
 | 
					        : null;
 | 
				
			||||||
    String aid = detail['id'].toString();
 | 
					    String aid = detail['id'].toString();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    print('Debug: Version: $version, AppName: $appName, Author: $author, AID: $aid');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // get apk url
 | 
					    // get apk url
 | 
				
			||||||
    String apkUrl = await _getLatestApkUrl(apiUrl, appId, aid, version, headers);
 | 
					    String apkUrl = await _getLatestApkUrl(apiUrl, appId, aid, version, headers);
 | 
				
			||||||
    if (apkUrl.isEmpty) {
 | 
					    if (apkUrl.isEmpty) {
 | 
				
			||||||
      print('Debug: No APK URL found for $appId');
 | 
					 | 
				
			||||||
      throw NoAPKError();
 | 
					      throw NoAPKError();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    print('Debug: APK URL: $apkUrl');
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    String apkName = '${appId}_$version.apk';
 | 
					    String apkName = '${appId}_$version.apk';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -106,15 +91,11 @@ class CoolApk extends AppSource {
 | 
				
			|||||||
  Future<String> _getLatestApkUrl(String apiUrl, String appId, String aid,
 | 
					  Future<String> _getLatestApkUrl(String apiUrl, String appId, String aid,
 | 
				
			||||||
      String version, Map<String, String>? headers) async {
 | 
					      String version, Map<String, String>? headers) async {
 | 
				
			||||||
    String url = '$apiUrl/v6/apk/download?pn=$appId&aid=$aid';
 | 
					    String url = '$apiUrl/v6/apk/download?pn=$appId&aid=$aid';
 | 
				
			||||||
    print('Debug: Fetching APK URL: $url');
 | 
					 | 
				
			||||||
    var res = await sourceRequest(url, {}, followRedirects: false);
 | 
					    var res = await sourceRequest(url, {}, followRedirects: false);
 | 
				
			||||||
    print('Debug: APK request status code: ${res.statusCode}');
 | 
					 | 
				
			||||||
    if (res.statusCode >= 300 && res.statusCode < 400) {
 | 
					    if (res.statusCode >= 300 && res.statusCode < 400) {
 | 
				
			||||||
      String location = res.headers['location'] ?? '';
 | 
					      String location = res.headers['location'] ?? '';
 | 
				
			||||||
      print('Debug: Redirect location: $location');
 | 
					 | 
				
			||||||
      return location;
 | 
					      return location;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    print('Debug: No redirect found for APK URL');
 | 
					 | 
				
			||||||
    return '';
 | 
					    return '';
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -123,7 +104,6 @@ class CoolApk extends AppSource {
 | 
				
			|||||||
      Map<String, dynamic> additionalSettings,
 | 
					      Map<String, dynamic> additionalSettings,
 | 
				
			||||||
      {bool forAPKDownload = false}) async {
 | 
					      {bool forAPKDownload = false}) async {
 | 
				
			||||||
    var tokenPair = _getToken();
 | 
					    var tokenPair = _getToken();
 | 
				
			||||||
    print('Debug: Generated tokenPair: $tokenPair');
 | 
					 | 
				
			||||||
    // CoolAPK header
 | 
					    // CoolAPK header
 | 
				
			||||||
    return {
 | 
					    return {
 | 
				
			||||||
      'User-Agent':
 | 
					      'User-Agent':
 | 
				
			||||||
@@ -168,14 +148,12 @@ class CoolApk extends AppSource {
 | 
				
			|||||||
    // generate deviceCode
 | 
					    // generate deviceCode
 | 
				
			||||||
    String deviceCode =
 | 
					    String deviceCode =
 | 
				
			||||||
    base64.encode('$aid; ; ; $mac; $manufactor; $brand; $model; $buildNumber'.codeUnits);
 | 
					    base64.encode('$aid; ; ; $mac; $manufactor; $brand; $model; $buildNumber'.codeUnits);
 | 
				
			||||||
    print('Debug: DeviceCode: $deviceCode');
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // generate timestamp
 | 
					    // generate timestamp
 | 
				
			||||||
    String timeStamp = (DateTime.now().millisecondsSinceEpoch ~/ 1000).toString();
 | 
					    String timeStamp = (DateTime.now().millisecondsSinceEpoch ~/ 1000).toString();
 | 
				
			||||||
    String base64TimeStamp = base64.encode(timeStamp.codeUnits);
 | 
					    String base64TimeStamp = base64.encode(timeStamp.codeUnits);
 | 
				
			||||||
    String md5TimeStamp = md5.convert(timeStamp.codeUnits).toString();
 | 
					    String md5TimeStamp = md5.convert(timeStamp.codeUnits).toString();
 | 
				
			||||||
    String md5DeviceCode = md5.convert(deviceCode.codeUnits).toString();
 | 
					    String md5DeviceCode = md5.convert(deviceCode.codeUnits).toString();
 | 
				
			||||||
    print('Debug: TimeStamp: $timeStamp, MD5TimeStamp: $md5TimeStamp, MD5DeviceCode: $md5DeviceCode');
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // generate token
 | 
					    // generate token
 | 
				
			||||||
    String token =
 | 
					    String token =
 | 
				
			||||||
@@ -183,14 +161,12 @@ class CoolApk extends AppSource {
 | 
				
			|||||||
    String base64Token = base64.encode(token.codeUnits);
 | 
					    String base64Token = base64.encode(token.codeUnits);
 | 
				
			||||||
    String md5Base64Token = md5.convert(base64Token.codeUnits).toString();
 | 
					    String md5Base64Token = md5.convert(base64Token.codeUnits).toString();
 | 
				
			||||||
    String md5Token = md5.convert(token.codeUnits).toString();
 | 
					    String md5Token = md5.convert(token.codeUnits).toString();
 | 
				
			||||||
    print('Debug: Token: $token, Base64Token: $base64Token, MD5Base64Token: $md5Base64Token');
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // generate salt and hash
 | 
					    // generate salt and hash
 | 
				
			||||||
    String bcryptSalt = '\$2a\$10\$${base64TimeStamp.substring(0, 14)}/${md5Token.substring(0, 6)}u';
 | 
					    String bcryptSalt = '\$2a\$10\$${base64TimeStamp.substring(0, 14)}/${md5Token.substring(0, 6)}u';
 | 
				
			||||||
    String bcryptResult = BCrypt.hashpw(md5Base64Token, bcryptSalt);
 | 
					    String bcryptResult = BCrypt.hashpw(md5Base64Token, bcryptSalt);
 | 
				
			||||||
    String reBcryptResult = bcryptResult.replaceRange(0, 3, '\$2y');
 | 
					    String reBcryptResult = bcryptResult.replaceRange(0, 3, '\$2y');
 | 
				
			||||||
    String finalToken = 'v2${base64.encode(reBcryptResult.codeUnits)}';
 | 
					    String finalToken = 'v2${base64.encode(reBcryptResult.codeUnits)}';
 | 
				
			||||||
    print('Debug: BCryptSalt: $bcryptSalt, BCryptResult: $bcryptResult, FinalToken: $finalToken');
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return {'deviceCode': deviceCode, 'token': finalToken};
 | 
					    return {'deviceCode': deviceCode, 'token': finalToken};
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user