From cd68eea79070f515769012b95ef9cebdf6a7700d Mon Sep 17 00:00:00 2001 From: Devin Buhl Date: Wed, 11 Jan 2017 09:40:42 -0500 Subject: [PATCH] removed indexer Fanzub - site shutdown --- .../IndexerTests/FanzubTests/FanzubFixture.cs | 51 ---------- .../NzbDrone.Core.Test.csproj | 1 - .../Datastore/Migration/114_remove_fanzub.cs | 14 +++ src/NzbDrone.Core/Indexers/Fanzub/Fanzub.cs | 30 ------ .../Indexers/Fanzub/FanzubRequestGenerator.cs | 94 ------------------- .../Indexers/Fanzub/FanzubSettings.cs | 33 ------- src/NzbDrone.Core/NzbDrone.Core.csproj | 4 +- 7 files changed, 15 insertions(+), 212 deletions(-) delete mode 100644 src/NzbDrone.Core.Test/IndexerTests/FanzubTests/FanzubFixture.cs create mode 100644 src/NzbDrone.Core/Datastore/Migration/114_remove_fanzub.cs delete mode 100644 src/NzbDrone.Core/Indexers/Fanzub/Fanzub.cs delete mode 100644 src/NzbDrone.Core/Indexers/Fanzub/FanzubRequestGenerator.cs delete mode 100644 src/NzbDrone.Core/Indexers/Fanzub/FanzubSettings.cs diff --git a/src/NzbDrone.Core.Test/IndexerTests/FanzubTests/FanzubFixture.cs b/src/NzbDrone.Core.Test/IndexerTests/FanzubTests/FanzubFixture.cs deleted file mode 100644 index ed8587e38..000000000 --- a/src/NzbDrone.Core.Test/IndexerTests/FanzubTests/FanzubFixture.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System; -using System.Linq; -using FluentAssertions; -using Moq; -using NUnit.Framework; -using NzbDrone.Common.Http; -using NzbDrone.Core.Indexers; -using NzbDrone.Core.Indexers.Fanzub; -using NzbDrone.Core.Test.Framework; - -namespace NzbDrone.Core.Test.IndexerTests.FanzubTests -{ - [TestFixture] - public class FanzubFixture : CoreTest - { - [SetUp] - public void Setup() - { - Subject.Definition = new IndexerDefinition() - { - Name = "Fanzub", - Settings = new FanzubSettings() - }; - } - - [Test] - public void should_parse_recent_feed_from_fanzub() - { - var recentFeed = ReadAllText(@"Files/Indexers/Fanzub/fanzub.xml"); - - Mocker.GetMock() - .Setup(o => o.Execute(It.Is(v => v.Method == HttpMethod.GET))) - .Returns(r => new HttpResponse(r, new HttpHeader(), recentFeed)); - - var releases = Subject.FetchRecent(); - - releases.Should().HaveCount(3); - - var releaseInfo = releases.First(); - - releaseInfo.Title.Should().Be("[Vivid] Hanayamata - 10 [A33D6606]"); - releaseInfo.DownloadProtocol.Should().Be(DownloadProtocol.Usenet); - releaseInfo.DownloadUrl.Should().Be("http://fanzub.com/nzb/296464/Vivid%20Hanayamata%20-%2010.nzb"); - releaseInfo.InfoUrl.Should().BeNullOrEmpty(); - releaseInfo.CommentUrl.Should().BeNullOrEmpty(); - releaseInfo.Indexer.Should().Be(Subject.Definition.Name); - releaseInfo.PublishDate.Should().Be(DateTime.Parse("2014/09/13 12:56:53")); - releaseInfo.Size.Should().Be(556246858); - } - } -} diff --git a/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj b/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj index 0140c7a61..70e548681 100644 --- a/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj +++ b/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj @@ -249,7 +249,6 @@ - diff --git a/src/NzbDrone.Core/Datastore/Migration/114_remove_fanzub.cs b/src/NzbDrone.Core/Datastore/Migration/114_remove_fanzub.cs new file mode 100644 index 000000000..2963389b5 --- /dev/null +++ b/src/NzbDrone.Core/Datastore/Migration/114_remove_fanzub.cs @@ -0,0 +1,14 @@ +using FluentMigrator; +using NzbDrone.Core.Datastore.Migration.Framework; + +namespace NzbDrone.Core.Datastore.Migration +{ + [Migration(114)] + public class remove_fanzub : NzbDroneMigrationBase + { + protected override void MainDbUpgrade() + { + Delete.FromTable("Indexers").Row(new { Implementation = "Fanzub" }); + } + } +} diff --git a/src/NzbDrone.Core/Indexers/Fanzub/Fanzub.cs b/src/NzbDrone.Core/Indexers/Fanzub/Fanzub.cs deleted file mode 100644 index fc66a83f1..000000000 --- a/src/NzbDrone.Core/Indexers/Fanzub/Fanzub.cs +++ /dev/null @@ -1,30 +0,0 @@ -using NLog; -using NzbDrone.Common.Http; -using NzbDrone.Core.Configuration; -using NzbDrone.Core.Parser; - -namespace NzbDrone.Core.Indexers.Fanzub -{ - public class Fanzub : HttpIndexerBase - { - public override string Name => "Fanzub"; - - public override DownloadProtocol Protocol => DownloadProtocol.Usenet; - - public Fanzub(IHttpClient httpClient, IIndexerStatusService indexerStatusService, IConfigService configService, IParsingService parsingService, Logger logger) - : base(httpClient, indexerStatusService, configService, parsingService, logger) - { - - } - - public override IIndexerRequestGenerator GetRequestGenerator() - { - return new FanzubRequestGenerator() { Settings = Settings }; - } - - public override IParseIndexerResponse GetParser() - { - return new RssParser() { UseEnclosureUrl = true, UseEnclosureLength = true }; - } - } -} diff --git a/src/NzbDrone.Core/Indexers/Fanzub/FanzubRequestGenerator.cs b/src/NzbDrone.Core/Indexers/Fanzub/FanzubRequestGenerator.cs deleted file mode 100644 index ad207eb38..000000000 --- a/src/NzbDrone.Core/Indexers/Fanzub/FanzubRequestGenerator.cs +++ /dev/null @@ -1,94 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using NzbDrone.Common.Extensions; -using NzbDrone.Common.Http; -using NzbDrone.Core.IndexerSearch.Definitions; - -namespace NzbDrone.Core.Indexers.Fanzub -{ - public class FanzubRequestGenerator : IIndexerRequestGenerator - { - private static readonly Regex RemoveCharactersRegex = new Regex(@"[!?`]", RegexOptions.Compiled); - - public FanzubSettings Settings { get; set; } - public int PageSize { get; set; } - - public FanzubRequestGenerator() - { - PageSize = 100; - } - - public virtual IndexerPageableRequestChain GetRecentRequests() - { - var pageableRequests = new IndexerPageableRequestChain(); - - pageableRequests.Add(GetPagedRequests(null)); - - return pageableRequests; - } - - public virtual IndexerPageableRequestChain GetSearchRequests(SingleEpisodeSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - - public virtual IndexerPageableRequestChain GetSearchRequests(SeasonSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - - public virtual IndexerPageableRequestChain GetSearchRequests(DailyEpisodeSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - - public virtual IndexerPageableRequestChain GetSearchRequests(AnimeEpisodeSearchCriteria searchCriteria) - { - var pageableRequests = new IndexerPageableRequestChain(); - - var searchTitles = searchCriteria.QueryTitles.SelectMany(v => GetTitleSearchStrings(v, searchCriteria.AbsoluteEpisodeNumber)).ToList(); - - pageableRequests.Add(GetPagedRequests(string.Join("|", searchTitles))); - - return pageableRequests; - } - - public virtual IndexerPageableRequestChain GetSearchRequests(SpecialEpisodeSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - - private IEnumerable GetPagedRequests(string query) - { - var url = new StringBuilder(); - url.AppendFormat("{0}?cat=anime&max={1}", Settings.BaseUrl, PageSize); - - if (query.IsNotNullOrWhiteSpace()) - { - url.AppendFormat("&q={0}", query); - } - - yield return new IndexerRequest(url.ToString(), HttpAccept.Rss); - } - - private IEnumerable GetTitleSearchStrings(string title, int absoluteEpisodeNumber) - { - var formats = new[] { "{0}%20{1:00}", "{0}%20-%20{1:00}" }; - - return formats.Select(s => "\"" + string.Format(s, CleanTitle(title), absoluteEpisodeNumber) + "\""); - } - - private string CleanTitle(string title) - { - return RemoveCharactersRegex.Replace(title, ""); - } - - public IndexerPageableRequestChain GetSearchRequests(MovieSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - } -} diff --git a/src/NzbDrone.Core/Indexers/Fanzub/FanzubSettings.cs b/src/NzbDrone.Core/Indexers/Fanzub/FanzubSettings.cs deleted file mode 100644 index 1f9f25028..000000000 --- a/src/NzbDrone.Core/Indexers/Fanzub/FanzubSettings.cs +++ /dev/null @@ -1,33 +0,0 @@ -using FluentValidation; -using NzbDrone.Core.Annotations; -using NzbDrone.Core.ThingiProvider; -using NzbDrone.Core.Validation; - -namespace NzbDrone.Core.Indexers.Fanzub -{ - public class FanzubSettingsValidator : AbstractValidator - { - public FanzubSettingsValidator() - { - RuleFor(c => c.BaseUrl).ValidRootUrl(); - } - } - - public class FanzubSettings : IProviderConfig - { - private static readonly FanzubSettingsValidator Validator = new FanzubSettingsValidator(); - - public FanzubSettings() - { - BaseUrl = "http://fanzub.com/rss/"; - } - - [FieldDefinition(0, Label = "Rss URL", HelpText = "Enter to URL to an Fanzub compatible RSS feed")] - public string BaseUrl { get; set; } - - public NzbDroneValidationResult Validate() - { - return new NzbDroneValidationResult(Validator.Validate(this)); - } - } -} diff --git a/src/NzbDrone.Core/NzbDrone.Core.csproj b/src/NzbDrone.Core/NzbDrone.Core.csproj index 97f67da50..6dbc3ebc5 100644 --- a/src/NzbDrone.Core/NzbDrone.Core.csproj +++ b/src/NzbDrone.Core/NzbDrone.Core.csproj @@ -185,6 +185,7 @@ + @@ -582,9 +583,6 @@ - - -