Your ROOT_URL in app.ini is https://git.cloudchain.link/ but you are visiting https://dash.bss.nz/open-source-mirrors/Lidarr/commit/16e13e0c24d568223a5cec282000ad1dc4bc1194?style=unified&whitespace=ignore-all
You should set ROOT_URL correctly, otherwise the web may not work correctly.
7 changed files with
72 additions and
28 deletions
@ -0,0 +1,19 @@
using System ;
using System.Collections.Generic ;
using System.Linq ;
using System.Text ;
namespace NzbDrone.Api.Frontend
{
public interface IMapHttpRequestsToDisk
{
string Map ( string resourceUrl ) ;
RequestType IHandle { get ; }
}
public enum RequestType
{
StaticResources ,
MediaCovers
}
}
@ -0,0 +1,25 @@
using System.IO ;
using NzbDrone.Common ;
namespace NzbDrone.Api.Frontend
{
public class MediaCoverMapper : IMapHttpRequestsToDisk
{
private readonly IEnvironmentProvider _environmentProvider ;
public MediaCoverMapper ( IEnvironmentProvider environmentProvider )
{
_environmentProvider = environmentProvider ;
}
public string Map ( string resourceUrl )
{
var path = resourceUrl . Replace ( '/' , Path . DirectorySeparatorChar ) ;
path = path . Trim ( Path . DirectorySeparatorChar ) . ToLower ( ) ;
return Path . Combine ( _environmentProvider . GetAppDataPath ( ) , path ) ;
}
public RequestType IHandle { get { return RequestType . MediaCovers ; } }
}
}
@ -2,11 +2,6 @@ using System.IO;
namespace NzbDrone.Api.Frontend
{
public interface IMapHttpRequestsToDisk
{
string Map ( string resourceUrl ) ;
}
public class StaticResourceMapper : IMapHttpRequestsToDisk
{
public string Map ( string resourceUrl )
@ -17,5 +12,7 @@ namespace NzbDrone.Api.Frontend
return Path . Combine ( "ui" , path ) ;
}
public RequestType IHandle { get { return RequestType . StaticResources ; } }
}
}
@ -1,3 +1,5 @@
using System.Collections.Generic ;
using System.IO ;
using System.Linq ;
using NLog ;
using Nancy ;
@ -14,13 +16,13 @@ namespace NzbDrone.Api.Frontend
public class StaticResourceProvider : IProcessStaticResource
{
private readonly IDiskProvider _diskProvider ;
private readonly I MapHttpRequestsToDisk _requestMapper ;
private readonly I Enumerable< I MapHttpRequestsToDisk> _requestMapper s ;
private readonly Logger _logger ;
public StaticResourceProvider ( IDiskProvider diskProvider , I MapHttpRequestsToDisk requestMapper , Logger logger )
public StaticResourceProvider ( IDiskProvider diskProvider , I Enumerable< I MapHttpRequestsToDisk> requestMapper s , Logger logger )
{
_diskProvider = diskProvider ;
_requestMapper = requestMapper ;
_requestMapper s = requestMapper s ;
_logger = logger ;
}
@ -28,9 +30,21 @@ namespace NzbDrone.Api.Frontend
{
var path = context . Request . Url . Path . ToLower ( ) ;
if ( path . StartsWith ( "/mediacover" ) )
{
var filePath = _requestMappers . Single ( r = > r . IHandle = = RequestType . MediaCovers ) . Map ( path ) ;
if ( _diskProvider . FileExists ( filePath ) )
{
return new StreamResponse ( ( ) = > File . OpenRead ( filePath ) , "image/jpeg" ) ;
}
_logger . Warn ( "Couldn't find file [{0}] for [{1}]" , filePath , path ) ;
}
if ( IsStaticResource ( path ) )
{
var filePath = _requestMapper . Map ( path ) ;
var filePath = _requestMapper s. Single ( r = > r . IHandle = = RequestType . StaticResources ) . Map ( path ) ;
if ( _diskProvider . FileExists ( filePath ) )
{
@ -97,6 +97,8 @@
<Compile Include= "Episodes\EpisodeModule.cs" />
<Compile Include= "Episodes\EpisodeResource.cs" />
<Compile Include= "Extensions\NancyJsonSerializer.cs" />
<Compile Include= "Frontend\MediaCoverMapper.cs" />
<Compile Include= "Frontend\IMapHttpRequestsToDisk.cs" />
<Compile Include= "Frontend\IndexModule.cs" />
<Compile Include= "Frontend\StaticResourceProvider.cs" />
<Compile Include= "Frontend\StaticResourceMapper.cs" />
@ -75,7 +75,7 @@ namespace NzbDrone.Core.MediaCover
private string GetSeriesCoverPath ( int seriesId )
{
return Path . Combine ( _coverRootFolder , seriesId . ToString ( "0000" ) ) ;
return Path . Combine ( _coverRootFolder , seriesId . ToString ( ) ) ;
}
}
}
@ -21,27 +21,14 @@ define(['app', 'Quality/QualityProfileCollection', 'AddSeries/RootFolders/RootFo
return percent ;
} ,
banner : function ( ) {
return "/mediacover/" + this . get ( 'id' ) + "/banner.jpg" ;
} ,
poster : function ( ) {
var poster = _ . find ( this . get ( 'images' ) , function ( image ) {
return image . coverType === 'poster' ;
} ) ;
if ( poster ) {
return poster . url ;
}
return undefined ;
return "/mediacover/" + this . get ( 'id' ) + "/poster.jpg" ;
} ,
fanArt : function ( ) {
var poster = _ . find ( this . get ( 'images' ) , function ( image ) {
return image . coverType === 3 ;
} ) ;
if ( poster ) {
return poster . url ;
}
return undefined ;
return "/mediacover/" + this . get ( 'id' ) + "/fanart.jpg" ;
} ,
traktUrl : function ( ) {
return "http://trakt.tv/show/" + this . get ( 'titleSlug' ) ;