Пример #1
0
        private SubtitleStream GetSubtitle(FileStream file, string languageCodes)
        {
            string hash = file.CalculateSubDbHash();

            var requestUri = new Uri(String.Format("{0}/?action=download&hash={1}&language={2}", ApiUrl, hash, languageCodes));

            var responseData = SendRequest(requestUri);

            if (responseData != null)
            {
                var languageCode = responseData.Item2.Get("Content-Language");
                var language     = languageCode != null ? new CultureInfo(languageCode) : null;

                var    cd        = responseData.Item2.Get("Content-Disposition");
                string extension = null;

                if (REGEX_GET_EXTENSION.IsMatch(cd))
                {
                    extension = REGEX_GET_EXTENSION.Match(cd).Groups[1].Value;
                }

                return(new SubtitleStream(responseData.Item1, new FileInfo(file.Name), language, SubtitleFormat.ForExtension(extension), IDENTIFIER));
            }
            else
            {
                return(null);
            }
        }
Пример #2
0
        public ISet <CultureInfo> GetAvailableLanguagesForVideo(FileStream file)
        {
            var hash = file.CalculateSubDbHash();
            var uri  = new Uri(String.Format("{0}/?action=search&hash={1}", ApiUrl, hash));

            var responseInfo = SendRequest(uri);

            if (responseInfo != null)
            {
                return(GetLanguagesFromResponse(responseInfo.Item1));
            }

            return(new HashSet <CultureInfo>());
        }