Skip to content

Commit

Permalink
Add IMDb RSS Import List
Browse files Browse the repository at this point in the history
  • Loading branch information
mynameisbogdan committed May 15, 2023
1 parent 588c8fb commit b2686e5
Show file tree
Hide file tree
Showing 3 changed files with 97 additions and 0 deletions.
50 changes: 50 additions & 0 deletions src/NzbDrone.Core/ImportLists/Rss/Imdb/ImdbRssImport.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
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);
}
}
}
20 changes: 20 additions & 0 deletions src/NzbDrone.Core/ImportLists/Rss/Imdb/ImdbRssImportParser.cs
Original file line number Diff line number Diff line change
@@ -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();
}
}
}
27 changes: 27 additions & 0 deletions src/NzbDrone.Core/ImportLists/Rss/Imdb/ImdbRssImportSettings.cs
Original file line number Diff line number Diff line change
@@ -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));
}
}
}

0 comments on commit b2686e5

Please sign in to comment.