1
0
Fork 0
mirror of https://github.com/Radarr/Radarr synced 2024-12-26 17:59:14 +00:00

Fixed: Indexer testing

Omg now has a preprocessor to catch authentication issues
Indexer testing works again, instead of always being successful
This commit is contained in:
Mark McDowall 2014-11-25 17:02:53 -08:00
parent 33ca71a745
commit a8ca258ca4
3 changed files with 20 additions and 7 deletions

View file

@ -2,7 +2,6 @@
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using FluentValidation.Results;
using NLog;
using NzbDrone.Common;
@ -186,9 +185,8 @@ protected virtual Boolean IsFullPage(IList<ReleaseInfo> page)
protected virtual IList<ReleaseInfo> FetchPage(IndexerRequest request, IParseIndexerResponse parser)
{
var url = request.Url;
_logger.Debug("Downloading Feed " + request.Url);
var response = new IndexerResponse(request, _httpClient.Execute(request.HttpRequest));
return parser.ParseResponse(response).ToList();
@ -201,12 +199,16 @@ protected override void Test(List<ValidationFailure> failures)
protected virtual ValidationFailure TestConnection()
{
// TODO: This doesn't even work coz those exceptions get catched.
try
{
var releases = FetchRecent();
var parser = GetParser();
var generator = GetRequestGenerator();
var releases = FetchPage(generator.GetRecentRequests().First().First(), parser);
if (releases.Any()) return null;
if (releases.Empty())
{
return new ValidationFailure("Url", "No results were returned from your indexer, please check your settings.");
}
}
catch (ApiKeyException)
{

View file

@ -45,7 +45,6 @@ protected override ReleaseInfo ProcessItem(XElement item, ReleaseInfo releaseInf
return releaseInfo;
}
protected override String GetInfoUrl(XElement item)
{
return item.TryGetValue("comments").TrimEnd("#comments");

View file

@ -1,6 +1,8 @@
using System;
using System.Linq;
using System.Text.RegularExpressions;
using System.Xml.Linq;
using NzbDrone.Core.Indexers.Exceptions;
namespace NzbDrone.Core.Indexers.Omgwtfnzbs
{
@ -12,6 +14,16 @@ public OmgwtfnzbsRssParser()
UseEnclosureLength = true;
}
protected override bool PreProcess(IndexerResponse indexerResponse)
{
var xdoc = XDocument.Parse(indexerResponse.Content);
var notice = xdoc.Descendants("notice").FirstOrDefault();
if (notice == null) return true;
throw new ApiKeyException(notice.Value);
}
protected override string GetInfoUrl(XElement item)
{
//Todo: Me thinks I need to parse details to get this...