Пример #1
0
        protected override async Task ExecuteAsync(CancellationToken cancellationToken)
        {
            AutomaticTorrentDownloaderConfiguration configuration = new AutomaticTorrentDownloaderConfiguration();

            while (!cancellationToken.IsCancellationRequested)
            {
                configuration.Load();

                foreach (Site site in configuration.SearchedSites.Select(id => SiteProvider.GetById(id)))
                {
                    foreach (ParsedMedia searchedMedia in configuration.SearchedMedia)
                    {
                        string query         = GetSearchQuery(searchedMedia);
                        var    searchResults = _torrentFinder.GetSearchResultsFromSite(site, query);
                        var    match         = _matchCalculator.GetBestMatch(searchedMedia, searchResults);

                        if (match == null || match.Score < 0.5)
                        {
                            continue;
                        }
                    }
                }

                await Task.Delay(TimeSpan.FromMinutes(configuration.RefreshDelayMinutes), cancellationToken);
            }
        }
        public void TorrentSearchTest()
        {
            ParsedMedia parsedMedia = _filenameParser.Parse("The.Secret.Life.of.Walter.Mitty.2013.1080p.BluRay.x264.YIFY");
            Site        leedX       = SiteProvider.LeedX;
            IEnumerable <ParsedMedia> searchResults = _torrentFinder.GetSearchResultsFromSite(SiteProvider.ThePirateBay, $"{parsedMedia.Title} {parsedMedia.Year}", 10)
                                                      .Select(result => _filenameParser.Parse(result.Name));

            //TorrentSiteDetail torrentDetail = TorrentFinderService.GetTorrentDetail(searchResults[0]);

            foreach (ParsedMedia searchResult in searchResults)
            {
                Console.WriteLine(searchResult);
            }
        }
        public EnumerableResultModel <SearchResultModel> Search(string query)
        {
            var searchResults = _torrentFinder.GetSearchResultsFromSite(SiteProvider.LeedX, query, 10);

            return(new EnumerableResultModel <SearchResultModel>
            {
                Results = searchResults
                          .OfType <TorrentSiteSearchResult>()
                          .Select(result => new SearchResultModel
                {
                    SiteId = result.Site.Id,
                    Name = result.Name,
                    Size = result.Size,
                    Seeds = result.Seeds,
                    Leeches = result.Leeches,
                    Uploaded = result.Uploaded,
                    RelativeDetailUrl = result.RelativeDetailUrl
                })
            });
        }