matchUrl property

String get matchUrl

Generates a unique cache key for the download task, considering headers and range.

Implementation

String get matchUrl {
  String cacheKey = Config.customCacheId.toLowerCase();
  headers = headers?.map((key, value) => MapEntry(key.toLowerCase(), value));
  Uri safeUri;
  try {
    safeUri = saveFile.toSafeUri();
  } catch (e) {
    safeUri = Uri(host: saveFile);
  }
  if (headers != null && headers!.containsKey(cacheKey)) {
    safeUri = safeUri.replace(host: headers![cacheKey].toString());
  }
  Map<String, String> queryParameters = {};
  queryParameters.addAll(safeUri.queryParameters);
  if (startRange > 0) {
    queryParameters.putIfAbsent("startRange", () => startRange.toString());
  }
  if (endRange != null) {
    queryParameters.putIfAbsent("endRange", () => endRange.toString());
  }
  safeUri = safeUri.replace(queryParameters: queryParameters);
  Uri cacheUri = VideoProxy.urlMatcherImpl.matchCacheKey(safeUri);
  return cacheUri.toString().generateMd5;
}