private async Task<string> DecryptAsync(string uri) { var query = new Query(uri); string signature; if (!query.TryGetValue("signature", out signature)) return uri; string js = await sourceFactory(jsPlayer) .ConfigureAwait(false); query["signature"] = DecryptedSignature(signature, js); return query.ToString(); }
private async Task<string> DecryptAsync(string uri, Func<DelegatingClient> makeClient) { var query = new Query(uri); string signature; if (!query.TryGetValue("signature", out signature)) return uri; string js = await makeClient() .GetStringAsync(jsPlayer) .ConfigureAwait(false); query["signature"] = DecryptedSignature(signature, js); return query.ToString(); }