Readarr/src/NzbDrone.Api/Parse/ParseModule.cs
2017-09-05 23:00:26 -04:00

51 lines
1.3 KiB
C#

using NzbDrone.Api.Albums;
using NzbDrone.Api.Music;
using NzbDrone.Core.Parser;
using Lidarr.Http;
namespace NzbDrone.Api.Parse
{
public class ParseModule : LidarrRestModule<ParseResource>
{
private readonly IParsingService _parsingService;
public ParseModule(IParsingService parsingService)
{
_parsingService = parsingService;
GetResourceSingle = Parse;
}
private ParseResource Parse()
{
var title = Request.Query.Title.Value as string;
var parsedAlbumInfo = Parser.ParseAlbumTitle(title);
if (parsedAlbumInfo == null)
{
return null;
}
var remoteAlbum = _parsingService.Map(parsedAlbumInfo);
if (remoteAlbum != null)
{
return new ParseResource
{
Title = title,
ParsedAlbumInfo = remoteAlbum.ParsedAlbumInfo,
Artist = remoteAlbum.Artist.ToResource(),
Albums = remoteAlbum.Albums.ToResource()
};
}
else
{
return new ParseResource
{
Title = title,
ParsedAlbumInfo = parsedAlbumInfo
};
}
}
}
}