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