Your ROOT_URL in app.ini is https://git.cloudchain.link/ but you are visiting https://dash.bss.nz/open-source-mirrors/jellyfin/commit/c81d2e9dec63808d51d095ecab02a5aac8613fd1
You should set ROOT_URL correctly, otherwise the web may not work correctly.
4 changed files with
63 additions and
0 deletions
@ -30,6 +30,7 @@ namespace MediaBrowser.Controller.Providers
ReplaceAllImages = copy . ReplaceAllImages ;
ReplaceImages = copy . ReplaceImages ;
SearchResult = copy . SearchResult ;
IsIdentify = copy . IsIdentify ;
if ( copy . RefreshPaths ! = null & & copy . RefreshPaths . Length > 0 )
{
@ -61,6 +61,30 @@ namespace MediaBrowser.Providers.Manager
_fileSystem = fileSystem ;
}
/// <summary>
/// Removes all existing images from the provided item.
/// </summary>
/// <param name="item">The <see cref="BaseItem"/> to remove images from.</param>
/// <returns><c>true</c> if changes were made to the item; otherwise <c>false</c>.</returns>
public bool RemoveImages ( BaseItem item )
{
var singular = new List < ItemImageInfo > ( ) ;
for ( var i = 0 ; i < _singularImages . Length ; i + + )
{
var currentImage = item . GetImageInfo ( _singularImages [ i ] , 0 ) ;
if ( currentImage ! = null )
{
singular . Add ( currentImage ) ;
}
}
var oldBackdropImages = item . GetImages ( ImageType . Backdrop ) . ToArray ( ) ;
var toRemove = singular . Concat ( oldBackdropImages ) . ToArray ( ) ;
PruneImages ( item , toRemove ) ;
return toRemove . Length > 0 ;
}
/// <summary>
/// Verifies existing images have valid paths and adds any new local images provided.
/// </summary>
@ -98,6 +98,15 @@ namespace MediaBrowser.Providers.Manager
var allImageProviders = ( ( ProviderManager ) ProviderManager ) . GetImageProviders ( item , refreshOptions ) . ToList ( ) ;
// If replacing images with identify purge existing images.
if ( refreshOptions . IsIdentify & & refreshOptions . ReplaceAllImages )
{
if ( ImageProvider . RemoveImages ( item ) )
{
updateType | = ItemUpdateType . ImageUpdate ;
}
}
// Start by validating images
try
{
@ -171,6 +171,35 @@ namespace Jellyfin.Providers.Tests.Manager
}
}
[Theory]
[InlineData(ImageType.Primary, 0)]
[InlineData(ImageType.Primary, 1)]
[InlineData(ImageType.Backdrop, 2)]
public void RemoveImages_DeletesImages_WhenFound ( ImageType imageType , int imageCount )
{
var item = GetItemWithImages ( imageType , imageCount , false ) ;
var mockFileSystem = new Mock < IFileSystem > ( MockBehavior . Strict ) ;
if ( imageCount > 0 )
{
mockFileSystem . Setup ( fs = > fs . DeleteFile ( "invalid path 0" ) )
. Verifiable ( ) ;
}
if ( imageCount > 1 )
{
mockFileSystem . Setup ( fs = > fs . DeleteFile ( "invalid path 1" ) )
. Verifiable ( ) ;
}
var itemImageProvider = GetItemImageProvider ( Mock . Of < IProviderManager > ( ) , mockFileSystem ) ;
var result = itemImageProvider . RemoveImages ( item ) ;
Assert . Equal ( imageCount ! = 0 , result ) ;
Assert . Empty ( item . GetImages ( imageType ) ) ;
mockFileSystem . Verify ( ) ;
}
[Theory]
[InlineData(ImageType.Primary, 1, false)]
[InlineData(ImageType.Backdrop, 2, false)]