diff --git a/frontend/src/Search/Table/SearchIndexRow.js b/frontend/src/Search/Table/SearchIndexRow.js
index ab7bd442a..b14200517 100644
--- a/frontend/src/Search/Table/SearchIndexRow.js
+++ b/frontend/src/Search/Table/SearchIndexRow.js
@@ -30,6 +30,7 @@ class SearchIndexRow extends Component {
publishDate,
title,
infoUrl,
+ downloadUrl,
indexer,
size,
files,
@@ -214,8 +215,9 @@ class SearchIndexRow extends Component {
className={styles[column.name]}
>
);
@@ -239,6 +241,7 @@ SearchIndexRow.propTypes = {
publishDate: PropTypes.string.isRequired,
title: PropTypes.string.isRequired,
infoUrl: PropTypes.string.isRequired,
+ downloadUrl: PropTypes.string.isRequired,
indexerId: PropTypes.number.isRequired,
indexer: PropTypes.string.isRequired,
size: PropTypes.number.isRequired,
diff --git a/src/NzbDrone.Core/IndexerSearch/NzbSearchService.cs b/src/NzbDrone.Core/IndexerSearch/NzbSearchService.cs
index 7233eb6d9..3c8c57370 100644
--- a/src/NzbDrone.Core/IndexerSearch/NzbSearchService.cs
+++ b/src/NzbDrone.Core/IndexerSearch/NzbSearchService.cs
@@ -1,10 +1,8 @@
using System;
using System.Collections.Generic;
-using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
using NLog;
-using NzbDrone.Common.Extensions;
using NzbDrone.Common.Instrumentation.Extensions;
using NzbDrone.Common.TPL;
using NzbDrone.Core.Indexers;
diff --git a/src/NzbDrone.Core/Indexers/NewznabStandardCategory.cs b/src/NzbDrone.Core/Indexers/NewznabStandardCategory.cs
index 9eb8c6302..99e75d538 100644
--- a/src/NzbDrone.Core/Indexers/NewznabStandardCategory.cs
+++ b/src/NzbDrone.Core/Indexers/NewznabStandardCategory.cs
@@ -5,6 +5,10 @@ namespace NzbDrone.Core.Indexers
{
public static class NewznabStandardCategory
{
+ public static readonly IndexerCategory ZedOther = new IndexerCategory(0000, "Other");
+ public static readonly IndexerCategory ZedOtherMisc = new IndexerCategory(0010, "Other/Misc");
+ public static readonly IndexerCategory ZedOtherHashed = new IndexerCategory(0020, "Other/Hashed");
+
public static readonly IndexerCategory Console = new IndexerCategory(1000, "Console");
public static readonly IndexerCategory ConsoleNDS = new IndexerCategory(1010, "Console/NDS");
public static readonly IndexerCategory ConsolePSP = new IndexerCategory(1020, "Console/PSP");
@@ -86,6 +90,7 @@ namespace NzbDrone.Core.Indexers
public static readonly IndexerCategory[] ParentCats =
{
+ ZedOther,
Console,
Movies,
Audio,
@@ -98,6 +103,9 @@ namespace NzbDrone.Core.Indexers
public static readonly IndexerCategory[] AllCats =
{
+ ZedOther,
+ ZedOtherHashed,
+ ZedOtherMisc,
Console,
ConsoleNDS,
ConsolePSP,
@@ -173,6 +181,7 @@ namespace NzbDrone.Core.Indexers
static NewznabStandardCategory()
{
+ ZedOther.SubCategories.AddRange(new List { ZedOtherMisc, ZedOtherHashed });
Console.SubCategories.AddRange(
new List
{
diff --git a/src/NzbDrone.Core/Parser/UserAgentParser.cs b/src/NzbDrone.Core/Parser/UserAgentParser.cs
index 13e33e980..9c84b8be5 100644
--- a/src/NzbDrone.Core/Parser/UserAgentParser.cs
+++ b/src/NzbDrone.Core/Parser/UserAgentParser.cs
@@ -4,7 +4,7 @@ namespace NzbDrone.Core.Parser
{
public static class UserAgentParser
{
- private static readonly Regex AppSourceRegex = new Regex(@"(?.*)\/.*\(.*\)",
+ private static readonly Regex AppSourceRegex = new Regex(@"(?.*)\/.*(\(.*\))?",
RegexOptions.IgnoreCase | RegexOptions.Compiled);
public static string ParseSource(string userAgent)
{
diff --git a/src/NzbDrone.Host/Bootstrap.cs b/src/NzbDrone.Host/Bootstrap.cs
index e62617be1..a5892d1b4 100644
--- a/src/NzbDrone.Host/Bootstrap.cs
+++ b/src/NzbDrone.Host/Bootstrap.cs
@@ -1,5 +1,6 @@
using System;
using System.Reflection;
+using System.Text;
using System.Threading;
using NLog;
using NzbDrone.Common.Composition;
@@ -28,6 +29,8 @@ namespace Prowlarr.Host
throw new TerminateApplicationException("Missing system requirements");
}
+ Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
+
_container = MainAppContainerBuilder.BuildContainer(startupContext);
_container.Resolve().Initialize();
_container.Resolve().Register();
diff --git a/src/NzbDrone.Host/Prowlarr.Host.csproj b/src/NzbDrone.Host/Prowlarr.Host.csproj
index a2489b9ef..aa176563a 100644
--- a/src/NzbDrone.Host/Prowlarr.Host.csproj
+++ b/src/NzbDrone.Host/Prowlarr.Host.csproj
@@ -15,6 +15,7 @@
+
diff --git a/src/Prowlarr.Api.V1/Indexers/IndexerModule.cs b/src/Prowlarr.Api.V1/Indexers/IndexerModule.cs
index 2cac4e7a6..5cb40608b 100644
--- a/src/Prowlarr.Api.V1/Indexers/IndexerModule.cs
+++ b/src/Prowlarr.Api.V1/Indexers/IndexerModule.cs
@@ -69,9 +69,9 @@ namespace Prowlarr.Api.V1.Indexers
case "music":
case "book":
case "movie":
- Response movieResponse = _nzbSearchService.Search(request, new List { indexer.Id }, false).ToXml(indexerInstance.Protocol);
- movieResponse.ContentType = "application/rss+xml";
- return movieResponse;
+ Response searchResponse = _nzbSearchService.Search(request, new List { indexer.Id }, false).ToXml(indexerInstance.Protocol);
+ searchResponse.ContentType = "application/rss+xml";
+ return searchResponse;
default:
throw new BadRequestException("Function Not Available");
}
diff --git a/src/Prowlarr.Api.V1/Search/SearchModule.cs b/src/Prowlarr.Api.V1/Search/SearchModule.cs
index bd81f9046..5bc9c95f4 100644
--- a/src/Prowlarr.Api.V1/Search/SearchModule.cs
+++ b/src/Prowlarr.Api.V1/Search/SearchModule.cs
@@ -51,7 +51,7 @@ namespace Prowlarr.Api.V1.Search
{
try
{
- var decisions = _nzbSearhService.Search(new NewznabRequest { q = query, t = "search", cat = string.Join(",", categories) }, indexerIds, true).Releases;
+ var decisions = _nzbSearhService.Search(new NewznabRequest { q = query, source = "Prowlarr", t = "search", cat = string.Join(",", categories) }, indexerIds, true).Releases;
return MapDecisions(decisions);
}