You've already forked Sonarr
							
							
				mirror of
				https://github.com/Sonarr/Sonarr.git
				synced 2025-10-31 00:07:55 +02:00 
			
		
		
		
	moved logic for reading static file to mappers
This commit is contained in:
		| @@ -1,32 +0,0 @@ | ||||
| using System; | ||||
| using Nancy; | ||||
| using NzbDrone.Api.Extensions; | ||||
| using NzbDrone.Common.EnvironmentInfo; | ||||
|  | ||||
| namespace NzbDrone.Api.Frontend | ||||
| { | ||||
|     public interface IAddCacheHeaders | ||||
|     { | ||||
|         void ToResponse(Request request, Response response); | ||||
|     } | ||||
|  | ||||
|     public class AddCacheHeaders : IAddCacheHeaders | ||||
|     { | ||||
|         public void ToResponse(Request request, Response response) | ||||
|         { | ||||
|             if (!RuntimeInfo.IsProduction) | ||||
|             { | ||||
|                 response.Headers.DisableCache(); | ||||
|                 return; | ||||
|             } | ||||
|  | ||||
|             if (request.Url.Path.EndsWith("app.js", StringComparison.CurrentCultureIgnoreCase)) | ||||
|             { | ||||
|                 response.Headers.DisableCache(); | ||||
|                 return; | ||||
|             } | ||||
|  | ||||
|             response.Headers.EnableCache(); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -1,9 +1,11 @@ | ||||
|  | ||||
| using Nancy; | ||||
|  | ||||
| namespace NzbDrone.Api.Frontend.Mappers | ||||
| { | ||||
|     public interface IMapHttpRequestsToDisk | ||||
|     { | ||||
|         string Map(string resourceUrl); | ||||
|         bool CanHandle(string resourceUrl); | ||||
|         Response GetResponse(string resourceUrl); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -1,25 +1,47 @@ | ||||
| using System.IO; | ||||
| using NLog; | ||||
| using NzbDrone.Common; | ||||
| using NzbDrone.Common.EnvironmentInfo; | ||||
|  | ||||
| namespace NzbDrone.Api.Frontend.Mappers | ||||
| { | ||||
|     public class IndexHtmlMapper : IMapHttpRequestsToDisk | ||||
|     public class IndexHtmlMapper : StaticResourceMapperBase | ||||
|     { | ||||
|         private readonly IDiskProvider _diskProvider; | ||||
|         private readonly string _indexPath; | ||||
|  | ||||
|         public IndexHtmlMapper(IAppFolderInfo appFolderInfo) | ||||
|         public IndexHtmlMapper(IAppFolderInfo appFolderInfo, IDiskProvider diskProvider, Logger logger) | ||||
|             : base(diskProvider, logger) | ||||
|         { | ||||
|             _diskProvider = diskProvider; | ||||
|             _indexPath = Path.Combine(appFolderInfo.StartUpFolder, "UI", "index.html"); | ||||
|         } | ||||
|  | ||||
|         public string Map(string resourceUrl) | ||||
|         protected override string Map(string resourceUrl) | ||||
|         { | ||||
|             return _indexPath; | ||||
|         } | ||||
|  | ||||
|         public bool CanHandle(string resourceUrl) | ||||
|         public override bool CanHandle(string resourceUrl) | ||||
|         { | ||||
|             return !resourceUrl.Contains("."); | ||||
|         } | ||||
|  | ||||
|         protected override Stream GetContentStream(string filePath) | ||||
|         { | ||||
|             return StringToStream(GetIndexText()); | ||||
|         } | ||||
|  | ||||
|  | ||||
|         private string GetIndexText() | ||||
|         { | ||||
|             var text = _diskProvider.ReadAllText(_indexPath); | ||||
|  | ||||
|             text = text.Replace(".css", ".css?v=" + BuildInfo.Version); | ||||
|             text = text.Replace(".js", ".js?v=" + BuildInfo.Version); | ||||
|  | ||||
|             return text; | ||||
|         } | ||||
|  | ||||
|     } | ||||
| } | ||||
| @@ -1,19 +1,21 @@ | ||||
| using System.IO; | ||||
| using NLog; | ||||
| using NzbDrone.Common; | ||||
| using NzbDrone.Common.EnvironmentInfo; | ||||
|  | ||||
| namespace NzbDrone.Api.Frontend.Mappers | ||||
| { | ||||
|     public class LogFileMapper : IMapHttpRequestsToDisk | ||||
|     public class LogFileMapper : StaticResourceMapperBase | ||||
|     { | ||||
|         private readonly IAppFolderInfo _appFolderInfo; | ||||
|  | ||||
|         public LogFileMapper(IAppFolderInfo appFolderInfo) | ||||
|         public LogFileMapper(IAppFolderInfo appFolderInfo, IDiskProvider diskProvider, Logger logger) | ||||
|             : base(diskProvider, logger) | ||||
|         { | ||||
|             _appFolderInfo = appFolderInfo; | ||||
|         } | ||||
|  | ||||
|         public string Map(string resourceUrl) | ||||
|         protected override string Map(string resourceUrl) | ||||
|         { | ||||
|             var path = resourceUrl.Replace('/', Path.DirectorySeparatorChar); | ||||
|             path = Path.GetFileName(path); | ||||
| @@ -21,7 +23,7 @@ namespace NzbDrone.Api.Frontend.Mappers | ||||
|             return Path.Combine(_appFolderInfo.GetLogFolder(), path); | ||||
|         } | ||||
|  | ||||
|         public bool CanHandle(string resourceUrl) | ||||
|         public override bool CanHandle(string resourceUrl) | ||||
|         { | ||||
|             return resourceUrl.StartsWith("/log") && resourceUrl.EndsWith(".txt"); | ||||
|         } | ||||
|   | ||||
| @@ -1,19 +1,21 @@ | ||||
| using System.IO; | ||||
| using NLog; | ||||
| using NzbDrone.Common; | ||||
| using NzbDrone.Common.EnvironmentInfo; | ||||
|  | ||||
| namespace NzbDrone.Api.Frontend.Mappers | ||||
| { | ||||
|     public class MediaCoverMapper : IMapHttpRequestsToDisk | ||||
|     public class MediaCoverMapper : StaticResourceMapperBase | ||||
|     { | ||||
|         private readonly IAppFolderInfo _appFolderInfo; | ||||
|  | ||||
|         public MediaCoverMapper(IAppFolderInfo appFolderInfo) | ||||
|         public MediaCoverMapper(IAppFolderInfo appFolderInfo, IDiskProvider diskProvider, Logger logger) | ||||
|             : base(diskProvider, logger) | ||||
|         { | ||||
|             _appFolderInfo = appFolderInfo; | ||||
|         } | ||||
|  | ||||
|         public string Map(string resourceUrl) | ||||
|         protected override string Map(string resourceUrl) | ||||
|         { | ||||
|             var path = resourceUrl.Replace('/', Path.DirectorySeparatorChar); | ||||
|             path = path.Trim(Path.DirectorySeparatorChar); | ||||
| @@ -21,7 +23,7 @@ namespace NzbDrone.Api.Frontend.Mappers | ||||
|             return Path.Combine(_appFolderInfo.GetAppDataPath(), path); | ||||
|         } | ||||
|  | ||||
|         public bool CanHandle(string resourceUrl) | ||||
|         public override bool CanHandle(string resourceUrl) | ||||
|         { | ||||
|             return resourceUrl.StartsWith("/MediaCover"); | ||||
|         } | ||||
|   | ||||
| @@ -1,18 +1,21 @@ | ||||
| using System.IO; | ||||
| using NLog; | ||||
| using NzbDrone.Common; | ||||
| using NzbDrone.Common.EnvironmentInfo; | ||||
|  | ||||
| namespace NzbDrone.Api.Frontend.Mappers | ||||
| { | ||||
|     public class StaticResourceMapper : IMapHttpRequestsToDisk | ||||
|     public class StaticResourceMapper : StaticResourceMapperBase | ||||
|     { | ||||
|         private readonly IAppFolderInfo _appFolderInfo; | ||||
|  | ||||
|         public StaticResourceMapper(IAppFolderInfo appFolderInfo) | ||||
|         public StaticResourceMapper(IAppFolderInfo appFolderInfo, IDiskProvider diskProvider, Logger logger) | ||||
|             : base(diskProvider, logger) | ||||
|         { | ||||
|             _appFolderInfo = appFolderInfo; | ||||
|         } | ||||
|  | ||||
|         public string Map(string resourceUrl) | ||||
|         protected override string Map(string resourceUrl) | ||||
|         { | ||||
|             var path = resourceUrl.Replace('/', Path.DirectorySeparatorChar); | ||||
|             path = path.Trim(Path.DirectorySeparatorChar); | ||||
| @@ -20,7 +23,7 @@ namespace NzbDrone.Api.Frontend.Mappers | ||||
|             return Path.Combine(_appFolderInfo.StartUpFolder, "UI", path); | ||||
|         } | ||||
|  | ||||
|         public bool CanHandle(string resourceUrl) | ||||
|         public override bool CanHandle(string resourceUrl) | ||||
|         { | ||||
|             return resourceUrl.StartsWith("/Content") || resourceUrl.EndsWith(".js") || resourceUrl.EndsWith(".css"); | ||||
|         } | ||||
|   | ||||
							
								
								
									
										66
									
								
								NzbDrone.Api/Frontend/Mappers/StaticResourceMapperBase.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								NzbDrone.Api/Frontend/Mappers/StaticResourceMapperBase.cs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,66 @@ | ||||
| using System.IO; | ||||
| using NLog; | ||||
| using Nancy; | ||||
| using Nancy.Responses; | ||||
| using NzbDrone.Common; | ||||
| using NzbDrone.Common.EnvironmentInfo; | ||||
|  | ||||
| namespace NzbDrone.Api.Frontend.Mappers | ||||
| { | ||||
|     public abstract class StaticResourceMapperBase : IMapHttpRequestsToDisk | ||||
|     { | ||||
|         private readonly IDiskProvider _diskProvider; | ||||
|         private readonly Logger _logger; | ||||
|         private readonly bool _caseSensitive; | ||||
|  | ||||
|         private static readonly NotFoundResponse NotFoundResponse = new NotFoundResponse(); | ||||
|  | ||||
|         protected StaticResourceMapperBase(IDiskProvider diskProvider, Logger logger) | ||||
|         { | ||||
|             _diskProvider = diskProvider; | ||||
|             _logger = logger; | ||||
|  | ||||
|             if (!RuntimeInfo.IsProduction) | ||||
|             { | ||||
|                 _caseSensitive = true; | ||||
|             } | ||||
|  | ||||
|  | ||||
|         } | ||||
|  | ||||
|         protected abstract string Map(string resourceUrl); | ||||
|  | ||||
|  | ||||
|         public abstract bool CanHandle(string resourceUrl); | ||||
|  | ||||
|         public Response GetResponse(string resourceUrl) | ||||
|         { | ||||
|             var filePath = Map(resourceUrl); | ||||
|  | ||||
|             if (_diskProvider.FileExists(filePath, _caseSensitive)) | ||||
|             { | ||||
|                 var response = new StreamResponse(() => GetContentStream(filePath), MimeTypes.GetMimeType(filePath)); | ||||
|                 return response; | ||||
|             } | ||||
|  | ||||
|             _logger.Warn("File {0} not found", filePath); | ||||
|  | ||||
|             return NotFoundResponse; | ||||
|         } | ||||
|  | ||||
|         protected virtual Stream GetContentStream(string filePath) | ||||
|         { | ||||
|             return File.OpenRead(filePath); | ||||
|         } | ||||
|  | ||||
|         protected static Stream StringToStream(string text) | ||||
|         { | ||||
|             var stream = new MemoryStream(); | ||||
|             var writer = new StreamWriter(stream); | ||||
|             writer.Write(text); | ||||
|             writer.Flush(); | ||||
|             stream.Position = 0; | ||||
|             return stream; | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -1,41 +1,25 @@ | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.IO; | ||||
| using System.Linq; | ||||
| using NLog; | ||||
| using Nancy; | ||||
| using Nancy.Responses; | ||||
| using NzbDrone.Api.Frontend.Mappers; | ||||
| using NzbDrone.Common; | ||||
| using NzbDrone.Common.Cache; | ||||
| using NzbDrone.Common.EnvironmentInfo; | ||||
|  | ||||
| namespace NzbDrone.Api.Frontend | ||||
| { | ||||
|     public class StaticResourceModule : NancyModule | ||||
|     { | ||||
|         private readonly IDiskProvider _diskProvider; | ||||
|         private readonly IEnumerable<IMapHttpRequestsToDisk> _requestMappers; | ||||
|         private readonly Logger _logger; | ||||
|         private readonly ICached<string> _indexCache; | ||||
|  | ||||
|         private readonly bool _caseSensitive; | ||||
|  | ||||
|         public StaticResourceModule(IDiskProvider diskProvider, ICacheManger cacheManger, IEnumerable<IMapHttpRequestsToDisk> requestMappers, Logger logger) | ||||
|         public StaticResourceModule(IEnumerable<IMapHttpRequestsToDisk> requestMappers, Logger logger) | ||||
|         { | ||||
|             _diskProvider = diskProvider; | ||||
|             _requestMappers = requestMappers; | ||||
|             _logger = logger; | ||||
|  | ||||
|             _indexCache = cacheManger.GetCache<string>(typeof(StaticResourceModule)); | ||||
|  | ||||
|             Get["/{resource*}"] = x => Index(); | ||||
|             Get["/"] = x => Index(); | ||||
|  | ||||
|             if (!RuntimeInfo.IsProduction) | ||||
|             { | ||||
|                 _caseSensitive = true; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         private Response Index() | ||||
| @@ -50,52 +34,17 @@ namespace NzbDrone.Api.Frontend | ||||
|                 return null; | ||||
|             } | ||||
|  | ||||
|  | ||||
|             var mapper = _requestMappers.SingleOrDefault(m => m.CanHandle(path)); | ||||
|  | ||||
|  | ||||
|             if (mapper != null) | ||||
|             { | ||||
|                 var filePath = mapper.Map(path); | ||||
|  | ||||
|                 if (_diskProvider.FileExists(filePath, _caseSensitive)) | ||||
|                 { | ||||
|                     var response = new StreamResponse(() => File.OpenRead(filePath), MimeTypes.GetMimeType(filePath)); | ||||
|                     return response; | ||||
|                 } | ||||
|  | ||||
|                 _logger.Warn("File {0} not found", filePath); | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 _logger.Warn("Couldn't find handler for {0}", path); | ||||
|                 return mapper.GetResponse(path); | ||||
|             } | ||||
|  | ||||
|             return new NotFoundResponse(); | ||||
|             _logger.Warn("Couldn't find handler for {0}", path); | ||||
|  | ||||
|             /* htmlResponse.Contents = stream => | ||||
|                  { | ||||
|                      var lastWrite = _diskProvider.GetLastFileWrite(_indexPath); | ||||
|                      var text = _indexCache.Get(lastWrite.Ticks.ToString(), GetIndexText); | ||||
|  | ||||
|                      var streamWriter = new StreamWriter(stream); | ||||
|  | ||||
|                      streamWriter.Write(text); | ||||
|                      streamWriter.Flush(); | ||||
|                  };*/ | ||||
|  | ||||
|             //htmlResponse.Headers.DisableCache(); | ||||
|             return null; | ||||
|         } | ||||
|  | ||||
|  | ||||
|         /*        private string GetIndexText() | ||||
|                 { | ||||
|                     var text = _diskProvider.ReadAllText(_indexPath); | ||||
|  | ||||
|                     text = text.Replace(".css", ".css?v=" + BuildInfo.Version); | ||||
|                     text = text.Replace(".js", ".js?v=" + BuildInfo.Version); | ||||
|  | ||||
|                     return text; | ||||
|                 }*/ | ||||
|     } | ||||
| } | ||||
| @@ -1,79 +0,0 @@ | ||||
| using System.Collections.Generic; | ||||
| using System.IO; | ||||
| using System.Linq; | ||||
| using NLog; | ||||
| using Nancy; | ||||
| using Nancy.Responses; | ||||
| using NzbDrone.Api.Frontend.Mappers; | ||||
| using NzbDrone.Common; | ||||
| using NzbDrone.Common.EnvironmentInfo; | ||||
|  | ||||
| namespace NzbDrone.Api.Frontend | ||||
| { | ||||
|     public interface IProcessStaticResource | ||||
|     { | ||||
|         Response ProcessStaticResourceRequest(NancyContext context, string workingFolder); | ||||
|     } | ||||
|  | ||||
|     public class StaticResourceProvider : IProcessStaticResource | ||||
|     { | ||||
|         private readonly IDiskProvider _diskProvider; | ||||
|         private readonly IEnumerable<IMapHttpRequestsToDisk> _requestMappers; | ||||
|         private readonly IAddCacheHeaders _addCacheHeaders; | ||||
|         private readonly Logger _logger; | ||||
|  | ||||
|         private readonly bool _caseSensitive; | ||||
|  | ||||
|         public StaticResourceProvider(IDiskProvider diskProvider, | ||||
|                                       IEnumerable<IMapHttpRequestsToDisk> requestMappers, | ||||
|                                       IAddCacheHeaders addCacheHeaders, | ||||
|                                       Logger logger) | ||||
|         { | ||||
|             _diskProvider = diskProvider; | ||||
|             _requestMappers = requestMappers; | ||||
|             _addCacheHeaders = addCacheHeaders; | ||||
|             _logger = logger; | ||||
|  | ||||
|             if (!RuntimeInfo.IsProduction) | ||||
|             { | ||||
|                 _caseSensitive = true; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         public Response ProcessStaticResourceRequest(NancyContext context, string workingFolder) | ||||
|         { | ||||
|             var path = context.Request.Url.Path; | ||||
|  | ||||
|             if (string.IsNullOrWhiteSpace(path)) | ||||
|             { | ||||
|                 return null; | ||||
|             } | ||||
|  | ||||
|             if (context.Request.Headers.IfModifiedSince.HasValue) | ||||
|             { | ||||
|                 var response = new Response { ContentType = MimeTypes.GetMimeType(path), StatusCode = HttpStatusCode.NotModified }; | ||||
|                 _addCacheHeaders.ToResponse(context.Request, response); | ||||
|                 return response; | ||||
|             } | ||||
|  | ||||
|             var mapper = _requestMappers.SingleOrDefault(m => m.CanHandle(path)); | ||||
|  | ||||
|             if (mapper != null) | ||||
|             { | ||||
|                 var filePath = mapper.Map(path); | ||||
|  | ||||
|                 if (_diskProvider.FileExists(filePath, _caseSensitive)) | ||||
|                 { | ||||
|                     var response = new StreamResponse(() => File.OpenRead(filePath), MimeTypes.GetMimeType(filePath)); | ||||
|                     _addCacheHeaders.ToResponse(context.Request, response); | ||||
|  | ||||
|                     return response; | ||||
|                 } | ||||
|  | ||||
|                 _logger.Warn("File {0} not found", filePath); | ||||
|             } | ||||
|  | ||||
|             return null; | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -96,15 +96,14 @@ | ||||
|     <Compile Include="Extensions\Pipelines\IfModifiedPipeline.cs" /> | ||||
|     <Compile Include="Extensions\Pipelines\IRegisterNancyPipeline.cs" /> | ||||
|     <Compile Include="Extensions\NancyJsonSerializer.cs" /> | ||||
|     <Compile Include="Frontend\IAddCacheHeaders.cs" /> | ||||
|     <Compile Include="Frontend\IsCacheableSpecification.cs" /> | ||||
|     <Compile Include="Frontend\Mappers\IndexHtmlMapper.cs" /> | ||||
|     <Compile Include="Frontend\Mappers\LogFileMapper.cs" /> | ||||
|     <Compile Include="Frontend\Mappers\MediaCoverMapper.cs" /> | ||||
|     <Compile Include="Frontend\Mappers\StaticResourceMapper.cs" /> | ||||
|     <Compile Include="Frontend\Mappers\IMapHttpRequestsToDisk.cs" /> | ||||
|     <Compile Include="Frontend\Mappers\StaticResourceMapperBase.cs" /> | ||||
|     <Compile Include="Frontend\StaticResourceModule.cs" /> | ||||
|     <Compile Include="Frontend\StaticResourceProvider.cs" /> | ||||
|     <Compile Include="History\HistoryResource.cs" /> | ||||
|     <Compile Include="History\HistoryModule.cs" /> | ||||
|     <Compile Include="Indexers\IndexerSchemaModule.cs" /> | ||||
|   | ||||
| @@ -76,7 +76,9 @@ namespace NzbDrone.Common.Test.EventingTests | ||||
|  | ||||
|     public class CommandA : ICommand | ||||
|     { | ||||
| // ReSharper disable UnusedParameter.Local | ||||
|         public CommandA(int id = 0) | ||||
| // ReSharper restore UnusedParameter.Local | ||||
|         { | ||||
|  | ||||
|         } | ||||
|   | ||||
| @@ -22,14 +22,15 @@ namespace NzbDrone.Common | ||||
|  | ||||
|     public class HttpProvider : IHttpProvider | ||||
|     { | ||||
|         private readonly Logger _logger; | ||||
|  | ||||
|         public const string ContentLenghtHeader = "Content-Length"; | ||||
|         public const string CONTENT_LENGHT_HEADER = "Content-Length"; | ||||
|  | ||||
|         private static readonly Logger logger = LogManager.GetCurrentClassLogger(); | ||||
|         private readonly string _userAgent; | ||||
|  | ||||
|         public HttpProvider() | ||||
|         public HttpProvider(Logger logger) | ||||
|         { | ||||
|             _logger = logger; | ||||
|             _userAgent = String.Format("NzbDrone {0}", BuildInfo.Version); | ||||
|         } | ||||
|  | ||||
| @@ -53,12 +54,12 @@ namespace NzbDrone.Common | ||||
|             } | ||||
|             catch (WebException e) | ||||
|             { | ||||
|                 logger.Warn("Failed to get response from: {0} {1}", url, e.Message); | ||||
|                 _logger.Warn("Failed to get response from: {0} {1}", url, e.Message); | ||||
|                 throw; | ||||
|             } | ||||
|             catch (Exception e) | ||||
|             { | ||||
|                 logger.WarnException("Failed to get response from: " + url, e); | ||||
|                 _logger.WarnException("Failed to get response from: " + url, e); | ||||
|                 throw; | ||||
|             } | ||||
|         } | ||||
| @@ -101,23 +102,23 @@ namespace NzbDrone.Common | ||||
|                     fileInfo.Directory.Create(); | ||||
|                 } | ||||
|  | ||||
|                 logger.Trace("Downloading [{0}] to [{1}]", url, fileName); | ||||
|                 _logger.Trace("Downloading [{0}] to [{1}]", url, fileName); | ||||
|  | ||||
|                 var stopWatch = Stopwatch.StartNew(); | ||||
|                 var webClient = new WebClient(); | ||||
|                 webClient.Headers.Add(HttpRequestHeader.UserAgent, _userAgent); | ||||
|                 webClient.DownloadFile(url, fileName); | ||||
|                 stopWatch.Stop(); | ||||
|                 logger.Trace("Downloading Completed. took {0:0}s", stopWatch.Elapsed.Seconds); | ||||
|                 _logger.Trace("Downloading Completed. took {0:0}s", stopWatch.Elapsed.Seconds); | ||||
|             } | ||||
|             catch (WebException e) | ||||
|             { | ||||
|                 logger.Warn("Failed to get response from: {0} {1}", url, e.Message); | ||||
|                 _logger.Warn("Failed to get response from: {0} {1}", url, e.Message); | ||||
|                 throw; | ||||
|             } | ||||
|             catch (Exception e) | ||||
|             { | ||||
|                 logger.WarnException("Failed to get response from: " + url, e); | ||||
|                 _logger.WarnException("Failed to get response from: " + url, e); | ||||
|                 throw; | ||||
|             } | ||||
|         } | ||||
| @@ -126,7 +127,7 @@ namespace NzbDrone.Common | ||||
|         { | ||||
|             address = String.Format("http://{0}/jsonrpc", address); | ||||
|  | ||||
|             logger.Trace("Posting command: {0}, to {1}", command, address); | ||||
|             _logger.Trace("Posting command: {0}, to {1}", command, address); | ||||
|  | ||||
|             byte[] byteArray = Encoding.ASCII.GetBytes(command); | ||||
|  | ||||
|   | ||||
| @@ -7,8 +7,6 @@ namespace NzbDrone.Core.Test.Framework | ||||
| { | ||||
|     public abstract class CoreTest : TestBase | ||||
|     { | ||||
|  | ||||
|  | ||||
|         protected FileStream OpenRead(params string[] path) | ||||
|         { | ||||
|             return File.OpenRead(Path.Combine(path)); | ||||
| @@ -21,7 +19,7 @@ namespace NzbDrone.Core.Test.Framework | ||||
|  | ||||
|         protected void UseRealHttp() | ||||
|         { | ||||
|             Mocker.SetConstant<IHttpProvider>(new HttpProvider()); | ||||
|             Mocker.SetConstant<IHttpProvider>(new HttpProvider(TestLogger)); | ||||
|         } | ||||
|  | ||||
|         protected void UseRealDisk() | ||||
|   | ||||
| @@ -48,7 +48,7 @@ namespace NzbDrone.Core.Test.MediaCoverTests | ||||
|         public void should_return_false_if_file_exists_but_diffrent_size() | ||||
|         { | ||||
|             GivenExistingFileSize(100); | ||||
|             _headers.Add(HttpProvider.ContentLenghtHeader, "200"); | ||||
|             _headers.Add(HttpProvider.CONTENT_LENGHT_HEADER, "200"); | ||||
|  | ||||
|             Subject.AlreadyExists("http://url", "c:\\file.exe").Should().BeFalse(); | ||||
|         } | ||||
| @@ -58,7 +58,7 @@ namespace NzbDrone.Core.Test.MediaCoverTests | ||||
|         public void should_return_ture_if_file_exists_and_same_size() | ||||
|         { | ||||
|             GivenExistingFileSize(100); | ||||
|             _headers.Add(HttpProvider.ContentLenghtHeader, "100"); | ||||
|             _headers.Add(HttpProvider.CONTENT_LENGHT_HEADER, "100"); | ||||
|  | ||||
|             Subject.AlreadyExists("http://url", "c:\\file.exe").Should().BeTrue(); | ||||
|         } | ||||
|   | ||||
| @@ -27,7 +27,7 @@ namespace NzbDrone.Core.Test.NotificationTests | ||||
|         { | ||||
|             _notifications = new List<INotification>(); | ||||
|  | ||||
|             _notifications.Add(new Notifications.Xbmc.Xbmc(null, null)); | ||||
|             _notifications.Add(new Notifications.Xbmc.Xbmc(null)); | ||||
|             _notifications.Add(new PlexClient(null)); | ||||
|             _notifications.Add(new PlexServer(null)); | ||||
|             _notifications.Add(new Email(null)); | ||||
| @@ -52,7 +52,7 @@ namespace NzbDrone.Core.Test.NotificationTests | ||||
|             Mocker.SetConstant<INotificationRepository>(Mocker.Resolve<NotificationRepository>()); | ||||
|  | ||||
|             Mocker.GetMock<IContainer>().Setup(s => s.Resolve(typeof(Notifications.Xbmc.Xbmc))) | ||||
|                   .Returns(new Notifications.Xbmc.Xbmc(null, null)); | ||||
|                   .Returns(new Notifications.Xbmc.Xbmc(null)); | ||||
|  | ||||
|             Mocker.GetMock<IContainer>().Setup(s => s.Resolve(typeof(PlexClient))) | ||||
|                   .Returns(new PlexClient(null)); | ||||
|   | ||||
| @@ -10,7 +10,7 @@ namespace NzbDrone.Core.DataAugmentation.Scene | ||||
| { | ||||
|     public interface ISceneMappingService | ||||
|     { | ||||
|         string GetSceneName(int tvdbId, int seasonNumber = -1); | ||||
|         string GetSceneName(int tvdbId); | ||||
|         Nullable<int> GetTvDbId(string cleanName); | ||||
|     } | ||||
|  | ||||
| @@ -35,7 +35,7 @@ namespace NzbDrone.Core.DataAugmentation.Scene | ||||
|             _logger = logger; | ||||
|         } | ||||
|  | ||||
|         public string GetSceneName(int tvdbId, int seasonNumber = -1) | ||||
|         public string GetSceneName(int tvdbId) | ||||
|         { | ||||
|             var mapping = _getSceneNameCache.Find(tvdbId.ToString()); | ||||
|  | ||||
|   | ||||
| @@ -116,7 +116,7 @@ namespace NzbDrone.Core.IndexerSearch | ||||
|  | ||||
|             spec.SeriesId = series.Id; | ||||
|             spec.SeriesTvRageId = series.TvRageId; | ||||
|             spec.SceneTitle = _sceneMapping.GetSceneName(series.TvdbId, seasonNumber); | ||||
|             spec.SceneTitle = _sceneMapping.GetSceneName(series.TvdbId); | ||||
|  | ||||
|             if (string.IsNullOrWhiteSpace(spec.SceneTitle)) | ||||
|             { | ||||
|   | ||||
| @@ -33,7 +33,7 @@ namespace NzbDrone.Core.MediaCover | ||||
|  | ||||
|             string sizeString; | ||||
|  | ||||
|             if (headers.TryGetValue(HttpProvider.ContentLenghtHeader, out sizeString)) | ||||
|             if (headers.TryGetValue(HttpProvider.CONTENT_LENGHT_HEADER, out sizeString)) | ||||
|             { | ||||
|                 int size; | ||||
|                 int.TryParse(sizeString, out size); | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| using NLog; | ||||
| using NzbDrone.Core.Tv; | ||||
| using NzbDrone.Core.Tv; | ||||
|  | ||||
| namespace NzbDrone.Core.Notifications.Xbmc | ||||
| { | ||||
| @@ -7,7 +6,7 @@ namespace NzbDrone.Core.Notifications.Xbmc | ||||
|     { | ||||
|         private readonly IXbmcService _xbmcProvider; | ||||
|  | ||||
|         public Xbmc(IXbmcService xbmcProvider, Logger logger) | ||||
|         public Xbmc(IXbmcService xbmcProvider) | ||||
|         { | ||||
|             _xbmcProvider = xbmcProvider; | ||||
|         } | ||||
|   | ||||
| @@ -9,6 +9,7 @@ | ||||
| 	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=NUnit_002ENonPublicMethodWithTestAttribute/@EntryIndexedValue">ERROR</s:String> | ||||
| 	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ReturnTypeCanBeEnumerable_002EGlobal/@EntryIndexedValue">HINT</s:String> | ||||
| 	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=StringLiteralTypo/@EntryIndexedValue">WARNING</s:String> | ||||
| 	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedParameter_002ELocal/@EntryIndexedValue">WARNING</s:String> | ||||
| 	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UseObjectOrCollectionInitializer/@EntryIndexedValue">HINT</s:String> | ||||
| 	<s:String x:Key="/Default/CodeStyle/CodeCleanup/Profiles/=NzbDrone/@EntryIndexedValue"><?xml version="1.0" encoding="utf-16"?><Profile name="NzbDrone"><CSArrangeThisQualifier>True</CSArrangeThisQualifier><RemoveCodeRedundancies>True</RemoveCodeRedundancies><CSUseAutoProperty>True</CSUseAutoProperty><CSMakeFieldReadonly>True</CSMakeFieldReadonly><CSUseVar><BehavourStyle>CAN_CHANGE_TO_IMPLICIT</BehavourStyle><LocalVariableStyle>IMPLICIT_EXCEPT_SIMPLE_TYPES</LocalVariableStyle><ForeachVariableStyle>ALWAYS_IMPLICIT</ForeachVariableStyle></CSUseVar><CSUpdateFileHeader>True</CSUpdateFileHeader><CSOptimizeUsings><OptimizeUsings>True</OptimizeUsings><EmbraceInRegion>False</EmbraceInRegion><RegionName></RegionName></CSOptimizeUsings><CSShortenReferences>True</CSShortenReferences><CSReorderTypeMembers>True</CSReorderTypeMembers><XAMLCollapseEmptyTags>False</XAMLCollapseEmptyTags></Profile></s:String> | ||||
| 	<s:String x:Key="/Default/CodeStyle/CodeCleanup/SilentCleanupProfile/@EntryValue">NzbDrone</s:String> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user