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); }