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