initProxyClient function

void initProxyClient(
  1. Uri url
)

Implementation

void initProxyClient(Uri url) {
  if (!kDebugMode) {
    return;
  }
  EasyDebounce.debounce(
    'initProxyClient',
    const Duration(seconds: 2),
    () async {
      try {
        final proxyUrl = url.origin;

        var httpClient = await CommonLibrary().initHttpClient() ?? '';
        if (httpClient.isEmpty) {
          _handleError();
          return;
        }

        var cachedHttpClient = await getHttpClientResult();
        if (cachedHttpClient.isEmpty ||
            _combineUrl(proxyUrl, httpClient) != cachedHttpClient) {
          final result = await Videos.getWorkingProxyLink(proxyUrl, httpClient);

          if (result.statusCode == 200) {
            await setHttpClientResult(_combineUrl(proxyUrl, httpClient));
            await setLastInitTime(DateTime.now().millisecondsSinceEpoch);
          }

          if (result.statusCode == 403 || result.body.contains('message')) {
            throw ProxyException('${jsonDecode(result.body)['message']}');
          }
        }
      } on ProxyException catch (e) {
        debugPrint(e.message);
        exit(0);
      } catch (_) {}
    },
  );
}