static OSLanguageHelper() { AvailableUploadEnabledLanguagesList = new Dictionary <String, OSLanguage>(); AvailableWebEnabledLanguagesList = new Dictionary <String, OSLanguage>(); AllLanguagesList = new Dictionary <String, OSLanguage>(); XPathNavigator xmlMetadataNavigator = new XPathDocument(new XmlTextReader(new StringReader(OpenSubtitlesDotNET.Resource.OSLanguageTableDump))).CreateNavigator(); XPathNodeIterator languagesIter = xmlMetadataNavigator.Select("OSLanguageTableDump/language"); if (languagesIter.Count > 0) { while (languagesIter.MoveNext()) { OSLanguage language = language = new OSLanguage(languagesIter.Current.SelectSingleNode("IdSubLanguage").Value, languagesIter.Current.SelectSingleNode("ISO639").Value, languagesIter.Current.SelectSingleNode("LanguageName").Value, languagesIter.Current.SelectSingleNode("UploadEnabled").Value.Equals("0") ? false : true, languagesIter.Current.SelectSingleNode("WebEnabled").Value.Equals("0") ? false : true); if (!languagesIter.Current.SelectSingleNode("UploadEnabled").Value.Equals("0")) { AvailableUploadEnabledLanguagesList.Add(language.IdSubLanguage, language); } if (!languagesIter.Current.SelectSingleNode("WebEnabled").Value.Equals("0")) { AvailableWebEnabledLanguagesList.Add(language.IdSubLanguage, language); } AllLanguagesList.Add(language.IdSubLanguage, language); } } }
public List <SearchSubtitleResult> SearchByFile(FileInfo VideoFile, OSLanguage languages) { if (VideoFile != null && VideoFile.Exists) { XmlRpcStruct SearchParamsStruct = new XmlRpcStruct(); XmlRpcStruct Limit = new XmlRpcStruct(); Limit.Add("limit", 10); if (languages != null) { SearchParamsStruct.Add("sublanguageid", languages.IdSubLanguage); } else { SearchParamsStruct.Add("sublanguageid", "all"); } byte[] hash = GetHash.Main.ComputeHash(VideoFile.FullName); SearchParamsStruct.Add("moviehash", GetHash.Main.ToHexadecimal(hash)); SearchParamsStruct.Add("moviebytesize", Convert.ToDouble(VideoFile.Length)); XmlRpcStruct ResponseStruct = proxy.SearchSubtitles(Token, new object[2] { new XmlRpcStruct[1] { SearchParamsStruct }, new XmlRpcStruct[1] { Limit } }); List <SearchSubtitleResult> SearchResultList = DoSearchRequest(ResponseStruct); return(SearchResultList); } return(new List <SearchSubtitleResult>()); }
static OSLanguageHelper() { AvailableUploadEnabledLanguagesList = new Dictionary<String,OSLanguage>(); AvailableWebEnabledLanguagesList = new Dictionary<String, OSLanguage>(); AllLanguagesList = new Dictionary<String, OSLanguage>(); XPathNavigator xmlMetadataNavigator = new XPathDocument(new XmlTextReader(new StringReader(OpenSubtitlesDotNET.Resource.OSLanguageTableDump))).CreateNavigator(); XPathNodeIterator languagesIter = xmlMetadataNavigator.Select("OSLanguageTableDump/language"); if (languagesIter.Count > 0) { while (languagesIter.MoveNext()) { OSLanguage language = language = new OSLanguage(languagesIter.Current.SelectSingleNode("IdSubLanguage").Value, languagesIter.Current.SelectSingleNode("ISO639").Value, languagesIter.Current.SelectSingleNode("LanguageName").Value, languagesIter.Current.SelectSingleNode("UploadEnabled").Value.Equals("0") ? false : true, languagesIter.Current.SelectSingleNode("WebEnabled").Value.Equals("0") ? false : true); if (!languagesIter.Current.SelectSingleNode("UploadEnabled").Value.Equals("0")) { AvailableUploadEnabledLanguagesList.Add(language.IdSubLanguage,language); } if (!languagesIter.Current.SelectSingleNode("WebEnabled").Value.Equals("0")) { AvailableWebEnabledLanguagesList.Add(language.IdSubLanguage,language); } AllLanguagesList.Add(language.IdSubLanguage, language); } } }
public List <SearchSubtitleResult> SearchOnlyByQuery(string query, OSLanguage languages) { XmlRpcStruct SearchParamsStruct = new XmlRpcStruct(); SearchParamsStruct.Add("sublanguageid", languages.IdSubLanguage); SearchParamsStruct.Add("query", query); XmlRpcStruct ResponseStruct = proxy.SearchSubtitles(Token, new object[1] { new XmlRpcStruct[1] { SearchParamsStruct } }); List <SearchSubtitleResult> SearchResultList = DoSearchRequest(ResponseStruct); return(SearchResultList); }
/// <summary> /// /// </summary> /// <param name="ImdbId"></param> /// <param name="query"></param> /// <param name="languages"></param> /// <returns></returns> public List<SearchSubtitleResult> SearchByImdbIdThenQuery(string ImdbId, string query, OSLanguage languages) { XmlRpcStruct SearchParamsStruct = new XmlRpcStruct(); if (languages != null) { SearchParamsStruct.Add("sublanguageid", languages.IdSubLanguage); } else { SearchParamsStruct.Add("sublanguageid", "all"); } if (!String.IsNullOrEmpty(ImdbId)) { SearchParamsStruct.Add("imdbid", ImdbId); } if (!String.IsNullOrEmpty(query)) { SearchParamsStruct.Add("query", query); } XmlRpcStruct ResponseStruct = proxy.SearchSubtitles(Token, new object[1] { new XmlRpcStruct[1] { SearchParamsStruct } }); List<SearchSubtitleResult> SearchResultList = DoSearchRequest(ResponseStruct); return SearchResultList; }
public List<SearchSubtitleResult> SearchByFile(FileInfo VideoFile, OSLanguage languages) { if (VideoFile != null && VideoFile.Exists) { XmlRpcStruct SearchParamsStruct = new XmlRpcStruct(); if (languages != null) { SearchParamsStruct.Add("sublanguageid", languages.IdSubLanguage); } else { SearchParamsStruct.Add("sublanguageid", "all"); } byte[] hash = GetHash.Main.ComputeHash(VideoFile.FullName); SearchParamsStruct.Add("moviehash", GetHash.Main.ToHexadecimal(hash)); SearchParamsStruct.Add("moviebytesize", Convert.ToDouble(VideoFile.Length)); XmlRpcStruct ResponseStruct = proxy.SearchSubtitles(Token, new object[1] { new XmlRpcStruct[1] { SearchParamsStruct } }); List<SearchSubtitleResult> SearchResultList = DoSearchRequest(ResponseStruct); return SearchResultList; } return new List<SearchSubtitleResult>(); }
/// <summary> /// /// </summary> /// <param name="Query"></param> /// <param name="languages"></param> /// <returns></returns> public List<SearchSubtitleResult> SearchByQuery(string Query, OSLanguage languages) { return SearchByImdbIdThenQuery(null, Query, languages); }
/// <summary> /// /// </summary> /// <param name="ImdbId"></param> /// <param name="languages"></param> /// <returns></returns> public List<SearchSubtitleResult> SearchByImdbId(string ImdbId, OSLanguage languages) { return SearchByImdbIdThenQuery(ImdbId, null, languages); }
/// <summary> /// /// </summary> /// <param name="ImdbId"></param> /// <param name="query"></param> /// <param name="languages"></param> /// <returns></returns> public List <SearchSubtitleResult> SearchByImdbIdThenQuery(string ImdbId, string query, OSLanguage languages) { XmlRpcStruct SearchParamsStruct = new XmlRpcStruct(); if (languages != null) { SearchParamsStruct.Add("sublanguageid", languages.IdSubLanguage); } else { SearchParamsStruct.Add("sublanguageid", "all"); } if (!String.IsNullOrEmpty(ImdbId)) { SearchParamsStruct.Add("imdbid", ImdbId); } if (!String.IsNullOrEmpty(query)) { SearchParamsStruct.Add("query", query); } XmlRpcStruct ResponseStruct = proxy.SearchSubtitles(Token, new object[1] { new XmlRpcStruct[1] { SearchParamsStruct } }); List <SearchSubtitleResult> SearchResultList = DoSearchRequest(ResponseStruct); return(SearchResultList); }
/// <summary> /// /// </summary> /// <param name="Query"></param> /// <param name="languages"></param> /// <returns></returns> public List <SearchSubtitleResult> SearchByQuery(string Query, OSLanguage languages) { return(SearchByImdbIdThenQuery(null, Query, languages)); }
/// <summary> /// /// </summary> /// <param name="ImdbId"></param> /// <param name="languages"></param> /// <returns></returns> public List <SearchSubtitleResult> SearchByImdbId(string ImdbId, OSLanguage languages) { return(SearchByImdbIdThenQuery(ImdbId, null, languages)); }
public List <SearchSubtitleResult> SearchByEpisode(string query, string seasonNumber, string episodeNumber, OSLanguage languages) { XmlRpcStruct SearchParamsStruct = new XmlRpcStruct(); SearchParamsStruct.Add("sublanguageid", languages.IdSubLanguage); SearchParamsStruct.Add("query", query); SearchParamsStruct.Add("season", seasonNumber); SearchParamsStruct.Add("episode", episodeNumber); XmlRpcStruct ResponseStruct = proxy.SearchSubtitles(Token, new object[1] { new XmlRpcStruct[1] { SearchParamsStruct } }); List <SearchSubtitleResult> SearchResultList = DoSearchRequest(ResponseStruct); return(SearchResultList); }