public async Task <KeyValuePair <Stream, string> > GetSubtitles(RemoteSrt srt) { HttpRequestOptions httpOpt = BaseRequestOptions; httpOpt.Referer = ServiceUrl + srt.GetReferer(); httpOpt.Url = ServiceUrl + srt.RemoteUrl; httpOpt.AcceptHeader = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"; using (HttpResponseInfo httpResponseInfo = await _httpClient.GetResponse(httpOpt).ConfigureAwait(false)) { string srtType = "srt"; if (!string.IsNullOrEmpty(httpResponseInfo.ContentType)) { srtType = httpResponseInfo.ContentType.Substring(5); } MemoryStream ms = new MemoryStream(); await httpResponseInfo.Content.CopyToAsync(ms).ConfigureAwait(false); ms.Position = 0L; return(new KeyValuePair <Stream, string>(ms, srtType)); } // using (HttpResponseInfo httpResponseInfo = await _httpClient.GetResponse(httpOpt).ConfigureAwait(false)) //{ // using (StreamReader streamReader = new StreamReader(httpResponseInfo.Content)) // { // var resulaty = await streamReader.ReadToEndAsync().ConfigureAwait(false); // } //} //return null; }
public async Task <SubtitleResponse> GetSubtitles(string id, CancellationToken cancellationToken) { var decode = RemoteSrt.DecodeId(id, _json); var res = await _remote.GetSubtitles(decode).ConfigureAwait(false); return(new SubtitleResponse { Format = res.Value, Stream = res.Key, Language = decode.LanguageCode, }); }