@@ -1171,13 +1171,25 @@ function addBatchToPlayQueue( files, autoplay = false ) {
11711171 } ) ;
11721172}
11731173
1174+ function extractFileNameFromPath ( path ) {
1175+ if ( typeof path !== 'string' ) return '' ;
1176+
1177+ const lastSlashIndex = path . lastIndexOf ( '/' ) ;
1178+ const lastDotIndex = path . lastIndexOf ( '.' ) ;
1179+
1180+ const start = lastSlashIndex >= 0 ? lastSlashIndex + 1 : 0 ;
1181+ const end = lastDotIndex > start ? lastDotIndex : path . length ;
1182+
1183+ return path . substring ( start , end ) ;
1184+ }
1185+
11741186/**
11751187 * Add audio metadata to a playlist item or audio element
11761188 */
11771189function addMetadata ( metadata , target ) {
11781190 const trackData = target . dataset ,
11791191 sourceData = metadata . dataset ,
1180- { album, artist, picture, title, year } = metadata . common || { } ,
1192+ { album, artist, picture, title, year, track } = metadata . common || { } ,
11811193 { bitrate, bitsPerSample, codec, codecProfile, container,
11821194 duration, lossless, numberOfChannels, sampleRate } = metadata . format || { } ;
11831195
@@ -1189,6 +1201,10 @@ function addMetadata( metadata, target ) {
11891201 trackData . title = title || trackData . title ;
11901202 trackData . album = album ? album + ( year ? ' (' + year + ')' : '' ) : trackData . album ;
11911203 trackData . codec = codec || container ? ( codec || container ) + ' (' + numberOfChannels + 'ch)' : trackData . codec ;
1204+ trackData . trackNumber = track . no || trackData . trackNumber ;
1205+ trackData . fullTrackName = trackData . _title && trackData . title . length > 0 ?
1206+ `${ trackData . trackNumber ? ( trackData . trackNumber + ': ' ) : '' } ${ trackData . title } ${ trackData . title } - ${ trackData . artist } ` :
1207+ extractFileNameFromPath ( trackData . file ) ;
11921208
11931209 const khz = sampleRate ? Math . round ( sampleRate / 1000 ) + 'kHz' : '' ;
11941210
0 commit comments