Add IMDb RSS Import List

imdb-rss-import
Bogdan 12 months ago
parent e9dcef34d4
commit 61b8aec732

@ -0,0 +1,54 @@
using System.Collections.Generic;
using NLog;
using NzbDrone.Common.Http;
using NzbDrone.Core.Configuration;
using NzbDrone.Core.Parser;
using NzbDrone.Core.ThingiProvider;
namespace NzbDrone.Core.ImportLists.Rss.Imdb
{
public class ImdbRssImport : RssImportBase<ImdbRssImportSettings>
{
public override string Name => "IMDb RSS";
public override ImportListType ListType => ImportListType.Advanced;
public ImdbRssImport(IHttpClient httpClient,
IImportListStatusService importListStatusService,
IConfigService configService,
IParsingService parsingService,
Logger logger)
: base(httpClient, importListStatusService, configService, parsingService, logger)
{
}
public override IEnumerable<ProviderDefinition> DefaultDefinitions
{
get
{
yield return new ImportListDefinition
{
Name = "IMDb RSS List",
Enabled = Enabled,
EnableAuto = true,
ProfileId = 1,
Implementation = GetType().Name,
Settings = new ImdbRssImportSettings { Url = "https://rss.imdb.com/list/YOURLISTID" },
};
yield return new ImportListDefinition
{
Name = "IMDb RSS Watchlist",
Enabled = Enabled,
EnableAuto = true,
ProfileId = 1,
Implementation = GetType().Name,
Settings = new ImdbRssImportSettings { Url = "https://rss.imdb.com/user/IMDBUSERID/watchlist" },
};
}
}
public override IParseImportListResponse GetParser()
{
return new ImdbRssImportParser(_logger);
}
}
}

@ -0,0 +1,20 @@
using System;
using System.Xml.Linq;
using NLog;
using NzbDrone.Core.ImportLists.ImportListMovies;
namespace NzbDrone.Core.ImportLists.Rss.Imdb
{
public class ImdbRssImportParser : RssImportBaseParser
{
public ImdbRssImportParser(Logger logger)
: base(logger)
{
}
protected override ImportListMovie ProcessItem(XElement item)
{
throw new NotImplementedException();
}
}
}

@ -0,0 +1,27 @@
using FluentValidation;
using NzbDrone.Core.Annotations;
using NzbDrone.Core.Validation;
namespace NzbDrone.Core.ImportLists.Rss.Imdb
{
public class ImdbRssImportSettingsValidator : AbstractValidator<ImdbRssImportSettings>
{
public ImdbRssImportSettingsValidator()
{
RuleFor(c => c.Url).NotEmpty();
}
}
public class ImdbRssImportSettings : RssImportBaseSettings
{
private ImdbRssImportSettingsValidator Validator => new ();
[FieldDefinition(0, Label = "Url", Type = FieldType.Textbox)]
public override string Url { get; set; }
public override NzbDroneValidationResult Validate()
{
return new NzbDroneValidationResult(Validator.Validate(this));
}
}
}
Loading…
Cancel
Save