Ejemplo n.º 1
0
 private TorrentMovieSource UpdateCache(TorrentMovieSource torrent)
 {
     if (torrent.State == TorrentMovieState.Complete)
     {
         _torrentRepository.Add(torrent.TorrentMovie.ImdbLink, torrent.TorrentMovie);
     }
     return torrent;
 }
Ejemplo n.º 2
0
        private IObservable<TorrentMovieSource> GetMovie(TorrentMovieSource torrent, CancellationToken cancellationToken)
        {
            return Observable.FromAsync(async () =>
            {
                if (torrent.State != TorrentMovieState.Incomplete)
                {
                    return torrent;
                }

                var imdbData = _imdbRepository.GetById(torrent.TorrentMovie.Id)
                                ?? await ImdbDataExtractor.ExtractData(torrent.TorrentMovie.Id, cancellationToken);

                _imdbRepository.Add(imdbData);

                var subtitles = await OpenSubtitles.GetSubtitles(torrent.TorrentMovie.Id, _subtitleLang);

                var movie = TorrentMovieSourceFactory.CreateCompleteTorrentMovieSource(torrent.TorrentMovie, imdbData, subtitles);

                return movie;
            });
        }