Your ROOT_URL in app.ini is https://git.cloudchain.link/ but you are visiting https://dash.bss.nz/open-source-mirrors/Sonarr/commit/b145ea1a707055948559e1e23abbe9ad20019240
You should set ROOT_URL correctly, otherwise the web may not work correctly.
4 changed files with
46 additions and
4 deletions
@ -1,4 +1,6 @@
using System.IO ;
using System.Text.RegularExpressions ;
using Nancy ;
using NLog ;
using NzbDrone.Common.Disk ;
using NzbDrone.Common.EnvironmentInfo ;
@ -8,6 +10,8 @@ namespace NzbDrone.Api.Frontend.Mappers
{
public class MediaCoverMapper : StaticResourceMapperBase
{
private static readonly Regex RegexResizedImage = new Regex ( @"-\d+\.jpg($|\?)" , RegexOptions . Compiled | RegexOptions . IgnoreCase ) ;
private readonly IAppFolderInfo _appFolderInfo ;
public MediaCoverMapper ( IAppFolderInfo appFolderInfo , IDiskProvider diskProvider , Logger logger )
@ -24,6 +28,24 @@ namespace NzbDrone.Api.Frontend.Mappers
return Path . Combine ( _appFolderInfo . GetAppDataPath ( ) , path ) ;
}
public override Response GetResponse ( string resourceUrl )
{
var result = base . GetResponse ( resourceUrl ) ;
// Return the full sized image if someone requests a non-existing resized one.
// TODO: This code can be removed later once everyone had the update for a while.
if ( result is NotFoundResponse )
{
var baseResourceUrl = RegexResizedImage . Replace ( resourceUrl , ".jpg$1" ) ;
if ( baseResourceUrl ! = resourceUrl )
{
result = base . GetResponse ( baseResourceUrl ) ;
}
}
return result ;
}
public override bool CanHandle ( string resourceUrl )
{
return resourceUrl . StartsWith ( "/MediaCover" ) ;
@ -1,4 +1,5 @@
using System.IO ;
using System.Text.RegularExpressions ;
using Nancy ;
using Nancy.Responses ;
using NzbDrone.Common.Disk ;
@ -9,6 +10,8 @@ namespace NzbDrone.Api.MediaCovers
{
public class MediaCoverModule : NzbDroneApiModule
{
private static readonly Regex RegexResizedImage = new Regex ( @"-\d+\.jpg$" , RegexOptions . Compiled | RegexOptions . IgnoreCase ) ;
private const string MEDIA_COVER_ROUTE = @"/(?<seriesId>\d+)/(?<filename>(.+)\.(jpg|png|gif))" ;
private readonly IAppFolderInfo _appFolderInfo ;
@ -27,7 +30,16 @@ namespace NzbDrone.Api.MediaCovers
var filePath = Path . Combine ( _appFolderInfo . GetAppDataPath ( ) , "MediaCover" , seriesId . ToString ( ) , filename ) ;
if ( ! _diskProvider . FileExists ( filePath ) )
return new NotFoundResponse ( ) ;
{
// Return the full sized image if someone requests a non-existing resized one.
// TODO: This code can be removed later once everyone had the update for a while.
var basefilePath = RegexResizedImage . Replace ( filePath , ".jpg" ) ;
if ( basefilePath = = filePath | | ! _diskProvider . FileExists ( basefilePath ) )
{
return new NotFoundResponse ( ) ;
}
filePath = basefilePath ;
}
return new StreamResponse ( ( ) = > File . OpenRead ( filePath ) , MimeTypes . GetMimeType ( filePath ) ) ;
}
@ -17,8 +17,16 @@ define(
img . onerror = null ;
} ;
Handlebars . registerHelper ( 'defaultImg' , function ( ) {
return new Handlebars . SafeString ( 'onerror=window.NzbDrone.imageError(this)' ) ;
Handlebars . registerHelper ( 'defaultImg' , function ( src , size ) {
if ( ! src ) {
return new Handlebars . SafeString ( 'onerror="window.NzbDrone.imageError(this);"' ) ;
}
if ( size ) {
src = src . replace ( /\.jpg($|\?)/g , '-' + size + '.jpg$1' ) ;
}
return new Handlebars . SafeString ( 'src="{0}" onerror="window.NzbDrone.imageError(this);"' . format ( src ) ) ;
} ) ;
Handlebars . registerHelper ( 'UrlBase' , function ( ) {
@ -11,7 +11,7 @@ define(
var poster = _ . where ( this . images , { coverType : 'poster' } ) ;
if ( poster [ 0 ] ) {
return new Handlebars . SafeString ( '<img class="series-poster" src=" {0}" {1 }>'. format ( poster[ 0 ] . url , Handlebars. helpers . defaultImg . call ( ) ) ) ;
return new Handlebars . SafeString ( '<img class="series-poster" {0}>'. format ( Handlebars. helpers . defaultImg . call ( null , poster [ 0 ] . url , 250 ) ) ) ;
}
return new Handlebars . SafeString ( '<img class="series-poster placeholder-image" src="{0}">' . format ( placeholder ) ) ;