Your ROOT_URL in app.ini is https://git.cloudchain.link/ but you are visiting https://dash.bss.nz/open-source-mirrors/jellyfin/commit/e10b986ea0e8aea98fd83d3d8d30c5c2ac385f73
You should set ROOT_URL correctly, otherwise the web may not work correctly.
2 changed files with
38 additions and
8 deletions
@ -1185,28 +1185,29 @@ namespace MediaBrowser.Controller.Entities
return info ;
}
private string GetMediaSourceName ( BaseItem item )
internal string GetMediaSourceName ( BaseItem item )
{
var terms = new List < string > ( ) ;
var path = item . Path ;
if ( item . IsFileProtocol & & ! string . IsNullOrEmpty ( path ) )
{
var displayName = System . IO . Path . GetFileNameWithoutExtension ( path ) ;
if ( HasLocalAlternateVersions )
{
var displayName = System . IO . Path . GetFileNameWithoutExtension ( path )
. Replace ( System . IO . Path . GetFileName ( ContainingFolderPath ) , string . Empty , StringComparison . OrdinalIgnoreCase )
. TrimStart ( new char [ ] { ' ' , '-' } ) ;
if ( ! string . IsNullOrEmpty ( displayName ) )
var containingFolderName = System . IO . Path . GetFileName ( ContainingFolderPath ) ;
if ( displayName . Length > containingFolderName . Length & & displayName . StartsWith ( containingFolderName , StringComparison . OrdinalIgnoreCase ) )
{
terms . Add ( displayName ) ;
var name = displayName . AsSpan ( containingFolderName . Length ) . TrimStart ( [ ' ' , '-' ] ) ;
if ( ! name . IsWhiteSpace ( ) )
{
terms . Add ( name . ToString ( ) ) ;
}
}
}
if ( terms . Count = = 0 )
{
var displayName = System . IO . Path . GetFileNameWithoutExtension ( path ) ;
terms . Add ( displayName ) ;
}
}
@ -1,4 +1,7 @@
using MediaBrowser.Controller.Entities ;
using MediaBrowser.Controller.Library ;
using MediaBrowser.Model.MediaInfo ;
using Moq ;
using Xunit ;
namespace Jellyfin.Controller.Tests.Entities ;
@ -14,4 +17,30 @@ public class BaseItemTests
[InlineData("1test 2", "0000000001test 0000000002")]
public void BaseItem_ModifySortChunks_Valid ( string input , string expected )
= > Assert . Equal ( expected , BaseItem . ModifySortChunks ( input ) ) ;
[Theory]
[InlineData("/Movies/Ted/Ted.mp4", "/Movies/Ted/Ted - Unrated Edition.mp4", "Ted", "Unrated Edition")]
[InlineData("/Movies/Deadpool 2 (2018)/Deadpool 2 (2018).mkv", "/Movies/Deadpool 2 (2018)/Deadpool 2 (2018) - Super Duper Cut.mkv", "Deadpool 2 (2018)", "Super Duper Cut")]
public void GetMediaSourceName_Valid ( string primaryPath , string altPath , string name , string altName )
{
var mediaSourceManager = new Mock < IMediaSourceManager > ( ) ;
mediaSourceManager . Setup ( x = > x . GetPathProtocol ( It . IsAny < string > ( ) ) )
. Returns ( ( string x ) = > MediaProtocol . File ) ;
BaseItem . MediaSourceManager = mediaSourceManager . Object ;
var video = new Video ( )
{
Path = primaryPath
} ;
var videoAlt = new Video ( )
{
Path = altPath ,
} ;
video . LocalAlternateVersions = [ videoAlt . Path ] ;
Assert . Equal ( name , video . GetMediaSourceName ( video ) ) ;
Assert . Equal ( altName , video . GetMediaSourceName ( videoAlt ) ) ;
}
}