fix(download): suffix batch filenames with track number when needed

Mark multi-track queue additions as batch downloads and append
{track:02} - {title} when the configured format has no uniqueness
token, instead of relying on playlist position alone.
This commit is contained in:
zarzet
2026-07-10 10:12:12 +07:00
parent 49fa6c14e6
commit edb241faf7
3 changed files with 19 additions and 9 deletions
+4
View File
@@ -38,6 +38,7 @@ class DownloadItem {
final String? qualityOverride;
final String? playlistName;
final int? playlistPosition; // 1-based position in the source playlist
final bool fromBatch;
const DownloadItem({
required this.id,
@@ -55,6 +56,7 @@ class DownloadItem {
this.qualityOverride,
this.playlistName,
this.playlistPosition,
this.fromBatch = false,
});
DownloadItem copyWith({
@@ -73,6 +75,7 @@ class DownloadItem {
String? qualityOverride,
String? playlistName,
int? playlistPosition,
bool? fromBatch,
}) {
return DownloadItem(
id: id ?? this.id,
@@ -90,6 +93,7 @@ class DownloadItem {
qualityOverride: qualityOverride ?? this.qualityOverride,
playlistName: playlistName ?? this.playlistName,
playlistPosition: playlistPosition ?? this.playlistPosition,
fromBatch: fromBatch ?? this.fromBatch,
);
}
+2
View File
@@ -24,6 +24,7 @@ DownloadItem _$DownloadItemFromJson(Map<String, dynamic> json) => DownloadItem(
qualityOverride: json['qualityOverride'] as String?,
playlistName: json['playlistName'] as String?,
playlistPosition: (json['playlistPosition'] as num?)?.toInt(),
fromBatch: json['fromBatch'] as bool? ?? false,
);
Map<String, dynamic> _$DownloadItemToJson(DownloadItem instance) =>
@@ -43,6 +44,7 @@ Map<String, dynamic> _$DownloadItemToJson(DownloadItem instance) =>
'qualityOverride': instance.qualityOverride,
'playlistName': instance.playlistName,
'playlistPosition': instance.playlistPosition,
'fromBatch': instance.fromBatch,
};
const _$DownloadStatusEnumMap = {