Beispiel #1
0
		public IList<Subtitle> SearchSubtitlesFromImdb(string languages, string imdbId) {
			if (string.IsNullOrEmpty(imdbId)) {
				throw new ArgumentNullException("imdbId");
			}			
			var request = new SearchSubtitlesRequest {
				sublanguageid = languages, 
				imdbid = imdbId 
			};
			return SearchSubtitlesInternal(request);
		}
Beispiel #2
0
		public IList<Subtitle> SearchSubtitlesFromQuery(string languages, string query) {
			if (string.IsNullOrEmpty(query)) {
				throw new ArgumentNullException("query");
			}
			var request = new SearchSubtitlesRequest {
				sublanguageid = languages,
				query = query
			};
			return SearchSubtitlesInternal(request);
		}
Beispiel #3
0
		private IList<Subtitle> SearchSubtitlesInternal(SearchSubtitlesRequest request) {
			var response = proxy.SearchSubtitles(token, new SearchSubtitlesRequest[] { request });
			VerifyResponseCode(response);

			var subtitles = new List<Subtitle>();

			var subtitlesInfo = response.data as object[];
			if (null != subtitlesInfo) {
				foreach (var infoObject in subtitlesInfo) {
					var subInfo = SimpleObjectMapper.MapToObject<SearchSubtitlesInfo>((XmlRpcStruct)infoObject);
					subtitles.Add(BuildSubtitleObject(subInfo));
				}
			}
			return subtitles;
		}
Beispiel #4
0
		public IList<Subtitle> SearchSubtitlesFromFile(string languages, string filename) {
			if (string.IsNullOrEmpty(filename)) {
				throw new ArgumentNullException("filename");
			}
			FileInfo file = new FileInfo(filename);
			if (!file.Exists) {
				throw new ArgumentException("File doesn't exist", "filename");
			}
			var request = new SearchSubtitlesRequest { sublanguageid = languages };
			request.moviehash = HashHelper.ToHexadecimal(HashHelper.ComputeMovieHash(filename));
			request.moviebytesize = file.Length.ToString();

			request.imdbid = string.Empty;
			request.query = string.Empty;

			return SearchSubtitlesInternal(request);
		}