Пример #1
0
        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,
            });
        }