mirror of
https://github.com/lidarr/lidarr.git
synced 2025-08-21 05:53:33 -07:00
SearchResult Controller added.
Force Download added.
This commit is contained in:
parent
aa24e4cac7
commit
cef7b6a8dc
25 changed files with 358 additions and 128 deletions
|
@ -13,12 +13,17 @@ namespace NzbDrone.Core.Providers
|
|||
public class SearchResultProvider
|
||||
{
|
||||
private readonly IDatabase _database;
|
||||
private readonly SeriesProvider _seriesProvider;
|
||||
private readonly DownloadProvider _downloadProvider;
|
||||
private static readonly Logger logger = LogManager.GetCurrentClassLogger();
|
||||
|
||||
[Inject]
|
||||
public SearchResultProvider(IDatabase database)
|
||||
public SearchResultProvider(IDatabase database, SeriesProvider seriesProvider,
|
||||
DownloadProvider downloadProvider)
|
||||
{
|
||||
_database = database;
|
||||
_seriesProvider = seriesProvider;
|
||||
_downloadProvider = downloadProvider;
|
||||
}
|
||||
|
||||
public SearchResultProvider()
|
||||
|
@ -54,7 +59,7 @@ namespace NzbDrone.Core.Providers
|
|||
Episodes.EpisodeNumber, Episodes.SeasonNumber, Episodes.Title as EpisodeTitle,
|
||||
Episodes.AirDate,
|
||||
Count(SearchResultItems.Id) as TotalItems,
|
||||
SUM(CASE WHEN SearchResultItems.Success = 1 THEN 1 ELSE 0 END) as Successes
|
||||
SUM(CASE WHEN SearchResultItems.Success = 1 THEN 1 ELSE 0 END) as SuccessfulCount
|
||||
FROM SearchResults
|
||||
INNER JOIN Series
|
||||
ON Series.SeriesId = SearchResults.SeriesId
|
||||
|
@ -73,10 +78,36 @@ namespace NzbDrone.Core.Providers
|
|||
|
||||
public virtual SearchResult GetSearchResult(int id)
|
||||
{
|
||||
var result = _database.Single<SearchResult>(id);
|
||||
var sql = @"SELECT SearchResults.Id, SearchResults.SeriesId, SearchResults.SeasonNumber,
|
||||
SearchResults.EpisodeId, SearchResults.SearchTime,
|
||||
Series.Title as SeriesTitle, Series.IsDaily,
|
||||
Episodes.EpisodeNumber, Episodes.SeasonNumber, Episodes.Title as EpisodeTitle,
|
||||
Episodes.AirDate
|
||||
FROM SearchResults
|
||||
INNER JOIN Series
|
||||
ON Series.SeriesId = SearchResults.SeriesId
|
||||
LEFT JOIN Episodes
|
||||
ON Episodes.EpisodeId = SearchResults.EpisodeId
|
||||
WHERE SearchResults.Id = @0";
|
||||
|
||||
var result = _database.Single<SearchResult>(sql, id);
|
||||
result.SearchResultItems = _database.Fetch<SearchResultItem>("WHERE SearchResultId = @0", id);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public virtual void ForceDownload(int itemId)
|
||||
{
|
||||
var item = _database.Single<SearchResultItem>(itemId);
|
||||
var searchResult = _database.Single<SearchResult>(item.SearchResultId);
|
||||
var series = _seriesProvider.GetSeries(searchResult.SeriesId);
|
||||
|
||||
var parseResult = Parser.ParseTitle(item.ReportTitle);
|
||||
parseResult.NzbUrl = item.NzbUrl;
|
||||
parseResult.Series = series;
|
||||
parseResult.Indexer = item.Indexer;
|
||||
|
||||
_downloadProvider.DownloadReport(parseResult);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue