@@ -1170,13 +1170,25 @@ function addBatchToPlayQueue( files, autoplay = false ) {
1170
1170
} ) ;
1171
1171
}
1172
1172
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
+
1173
1185
/**
1174
1186
* Add audio metadata to a playlist item or audio element
1175
1187
*/
1176
1188
function addMetadata ( metadata , target ) {
1177
1189
const trackData = target . dataset ,
1178
1190
sourceData = metadata . dataset ,
1179
- { album, artist, picture, title, year } = metadata . common || { } ,
1191
+ { album, artist, picture, title, year, track } = metadata . common || { } ,
1180
1192
{ bitrate, bitsPerSample, codec, codecProfile, container,
1181
1193
duration, lossless, numberOfChannels, sampleRate } = metadata . format || { } ;
1182
1194
@@ -1188,6 +1200,10 @@ function addMetadata( metadata, target ) {
1188
1200
trackData . title = title || trackData . title ;
1189
1201
trackData . album = album ? album + ( year ? ' (' + year + ')' : '' ) : trackData . album ;
1190
1202
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 ) ;
1191
1207
1192
1208
const khz = sampleRate ? Math . round ( sampleRate / 1000 ) + 'kHz' : '' ;
1193
1209
0 commit comments