New: Group Import Lists by Type

This commit is contained in:
Qstick 2019-07-27 14:06:18 -04:00 committed by ta264
commit af26ac849a
15 changed files with 70 additions and 22 deletions

View file

@ -10,6 +10,7 @@ namespace Lidarr.Api.V1.ImportLists
public int QualityProfileId { get; set; }
public int LanguageProfileId { get; set; }
public int MetadataProfileId { get; set; }
public ImportListType ListType { get; set; }
}
public class ImportListResourceMapper : ProviderResourceMapper<ImportListResource, ImportListDefinition>
@ -29,6 +30,7 @@ namespace Lidarr.Api.V1.ImportLists
resource.QualityProfileId = definition.ProfileId;
resource.LanguageProfileId = definition.LanguageProfileId;
resource.MetadataProfileId = definition.MetadataProfileId;
resource.ListType = definition.ListType;
return resource;
}
@ -48,6 +50,7 @@ namespace Lidarr.Api.V1.ImportLists
definition.ProfileId = resource.QualityProfileId;
definition.LanguageProfileId = resource.LanguageProfileId;
definition.MetadataProfileId = resource.MetadataProfileId;
definition.ListType = resource.ListType;
return definition;
}

View file

@ -68,7 +68,8 @@ namespace NzbDrone.Core.Datastore
.Ignore(d => d.Tags);
Mapper.Entity<ImportListDefinition>().RegisterDefinition("ImportLists")
.Ignore(i => i.Enable);
.Ignore(i => i.Enable)
.Ignore(i => i.ListType);
Mapper.Entity<NotificationDefinition>().RegisterDefinition("Notifications")
.Ignore(i => i.SupportsOnGrab)

View file

@ -9,6 +9,8 @@ namespace NzbDrone.Core.ImportLists.HeadphonesImport
{
public override string Name => "Headphones";
public override ImportListType ListType => ImportListType.Other;
public override int PageSize => 1000;
public HeadphonesImport(IHttpClient httpClient, IImportListStatusService importListStatusService, IConfigService configService, IParsingService parsingService, Logger logger)

View file

@ -6,6 +6,7 @@ namespace NzbDrone.Core.ImportLists
{
public interface IImportList : IProvider
{
ImportListType ListType { get; }
IList<ImportListItemInfo> Fetch();
}
}

View file

@ -21,6 +21,8 @@ namespace NzbDrone.Core.ImportLists
public abstract string Name { get; }
public abstract ImportListType ListType {get; }
public ImportListBase(IImportListStatusService importListStatusService, IConfigService configService, IParsingService parsingService, Logger logger)
{
_importListStatusService = importListStatusService;

View file

@ -14,6 +14,7 @@ namespace NzbDrone.Core.ImportLists
public override bool Enable => EnableAutomaticAdd;
public ImportListStatus Status { get; set; }
public ImportListType ListType { get; set; }
}
public enum ImportListMonitorType

View file

@ -35,6 +35,13 @@ namespace NzbDrone.Core.ImportLists
return base.Active().Where(c => c.Enable).ToList();
}
public override void SetProviderCharacteristics(IImportList provider, ImportListDefinition definition)
{
base.SetProviderCharacteristics(provider, definition);
definition.ListType = provider.ListType;
}
public List<IImportList> AutomaticAddEnabled(bool filterBlockedImportLists = true)
{
var enabledImportLists = GetAvailableProviders().Where(n => ((ImportListDefinition)n.Definition).EnableAutomaticAdd);

View file

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace NzbDrone.Core.ImportLists
{
public enum ImportListType
{
Spotify,
LastFm,
Other
}
}

View file

@ -9,6 +9,8 @@ namespace NzbDrone.Core.ImportLists.LastFm
{
public override string Name => "Last.fm Tag";
public override ImportListType ListType => ImportListType.LastFm;
public override int PageSize => 1000;
public LastFmTag(IHttpClient httpClient, IImportListStatusService importListStatusService, IConfigService configService, IParsingService parsingService, Logger logger)

View file

@ -9,6 +9,8 @@ namespace NzbDrone.Core.ImportLists.LastFm
{
public override string Name => "Last.fm User";
public override ImportListType ListType => ImportListType.LastFm;
public override int PageSize => 1000;
public LastFmUser(IHttpClient httpClient, IImportListStatusService importListStatusService, IConfigService configService, IParsingService parsingService, Logger logger)

View file

@ -12,6 +12,8 @@ namespace NzbDrone.Core.ImportLists.LidarrLists
{
public override string Name => "Lidarr Lists";
public override ImportListType ListType => ImportListType.Other;
public override int PageSize => 10;
private readonly IMetadataRequestBuilder _requestBuilder;

View file

@ -32,6 +32,8 @@ namespace NzbDrone.Core.ImportLists.Spotify
_importListRepository = importListRepository;
}
public override ImportListType ListType => ImportListType.Spotify;
private void RefreshToken()
{
_logger.Trace("Refreshing Token");

View file

@ -552,6 +552,7 @@
<Compile Include="ImportLists\ImportListBase.cs" />
<Compile Include="ImportLists\ImportListPageableRequestChain.cs" />
<Compile Include="ImportLists\ImportListPageableRequest.cs" />
<Compile Include="ImportLists\ImportListType.cs" />
<Compile Include="ImportLists\ImportListUpdatedHandler.cs" />
<Compile Include="ImportLists\IProcessImportListResponse.cs" />
<Compile Include="ImportLists\ImportListSyncService.cs" />