mirror of
https://github.com/Radarr/Radarr.git
synced 2024-11-09 04:22:30 +01:00
API endpoint to parse a release title
This commit is contained in:
parent
c58d607349
commit
cfefed34fc
@ -43,10 +43,12 @@ public ReleaseModule(IFetchAndParseRss rssFetcherAndParser,
|
|||||||
_prioritizeDownloadDecision = prioritizeDownloadDecision;
|
_prioritizeDownloadDecision = prioritizeDownloadDecision;
|
||||||
_downloadService = downloadService;
|
_downloadService = downloadService;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
|
|
||||||
GetResourceAll = GetReleases;
|
GetResourceAll = GetReleases;
|
||||||
Post["/"] = x => DownloadRelease(this.Bind<ReleaseResource>());
|
Post["/"] = x => DownloadRelease(this.Bind<ReleaseResource>());
|
||||||
|
|
||||||
PostValidator.RuleFor(s => s.DownloadAllowed).Equal(true);
|
PostValidator.RuleFor(s => s.DownloadAllowed).Equal(true);
|
||||||
|
PostValidator.RuleFor(s => s.Guid).NotEmpty();
|
||||||
|
|
||||||
_remoteEpisodeCache = cacheManager.GetCache<RemoteEpisode>(GetType(), "remoteEpisodes");
|
_remoteEpisodeCache = cacheManager.GetCache<RemoteEpisode>(GetType(), "remoteEpisodes");
|
||||||
}
|
}
|
||||||
|
@ -100,6 +100,8 @@
|
|||||||
<Compile Include="Extensions\AccessControlHeaders.cs" />
|
<Compile Include="Extensions\AccessControlHeaders.cs" />
|
||||||
<Compile Include="Extensions\Pipelines\CorsPipeline.cs" />
|
<Compile Include="Extensions\Pipelines\CorsPipeline.cs" />
|
||||||
<Compile Include="Frontend\Mappers\LoginHtmlMapper.cs" />
|
<Compile Include="Frontend\Mappers\LoginHtmlMapper.cs" />
|
||||||
|
<Compile Include="Parse\ParseModule.cs" />
|
||||||
|
<Compile Include="Parse\ParseResource.cs" />
|
||||||
<Compile Include="Profiles\Delay\DelayProfileModule.cs" />
|
<Compile Include="Profiles\Delay\DelayProfileModule.cs" />
|
||||||
<Compile Include="Profiles\Delay\DelayProfileResource.cs" />
|
<Compile Include="Profiles\Delay\DelayProfileResource.cs" />
|
||||||
<Compile Include="Profiles\Delay\DelayProfileValidator.cs" />
|
<Compile Include="Profiles\Delay\DelayProfileValidator.cs" />
|
||||||
|
49
src/NzbDrone.Api/Parse/ParseModule.cs
Normal file
49
src/NzbDrone.Api/Parse/ParseModule.cs
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
using NzbDrone.Core.Parser;
|
||||||
|
using NzbDrone.Core.Parser.Model;
|
||||||
|
|
||||||
|
namespace NzbDrone.Api.Parse
|
||||||
|
{
|
||||||
|
public class ParseModule : NzbDroneRestModule<ParseResource>
|
||||||
|
{
|
||||||
|
private readonly IParsingService _parsingService;
|
||||||
|
|
||||||
|
public ParseModule(IParsingService parsingService)
|
||||||
|
{
|
||||||
|
_parsingService = parsingService;
|
||||||
|
|
||||||
|
GetResourceSingle = Parse;
|
||||||
|
}
|
||||||
|
|
||||||
|
private ParseResource Parse()
|
||||||
|
{
|
||||||
|
var title = Request.Query.Title.Value;
|
||||||
|
var parsedEpisodeInfo = Parser.ParseTitle(title);
|
||||||
|
|
||||||
|
if (parsedEpisodeInfo == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
var remoteEpisode = _parsingService.Map(parsedEpisodeInfo);
|
||||||
|
|
||||||
|
if (remoteEpisode == null)
|
||||||
|
{
|
||||||
|
remoteEpisode = new RemoteEpisode
|
||||||
|
{
|
||||||
|
ParsedEpisodeInfo = parsedEpisodeInfo
|
||||||
|
};
|
||||||
|
|
||||||
|
return new ParseResource
|
||||||
|
{
|
||||||
|
Title = title,
|
||||||
|
ParsedEpisodeInfo = parsedEpisodeInfo
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
var resource = ToResource(remoteEpisode);
|
||||||
|
resource.Title = title;
|
||||||
|
|
||||||
|
return resource;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
17
src/NzbDrone.Api/Parse/ParseResource.cs
Normal file
17
src/NzbDrone.Api/Parse/ParseResource.cs
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using NzbDrone.Api.Episodes;
|
||||||
|
using NzbDrone.Api.REST;
|
||||||
|
using NzbDrone.Api.Series;
|
||||||
|
using NzbDrone.Core.Parser.Model;
|
||||||
|
|
||||||
|
namespace NzbDrone.Api.Parse
|
||||||
|
{
|
||||||
|
public class ParseResource : RestResource
|
||||||
|
{
|
||||||
|
public string Title { get; set; }
|
||||||
|
public ParsedEpisodeInfo ParsedEpisodeInfo { get; set; }
|
||||||
|
public SeriesResource Series { get; set; }
|
||||||
|
public List<EpisodeResource> Episodes { get; set; }
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user