Skip to content

Commit 107d9ca

Browse files
committed
feat: export failed downloads to TXT file
- Add Export button in queue when there are failed downloads - Add auto-export setting in Download Settings - Export includes track name, artist, Spotify/Deezer URL, and error message - Clear Failed action in snackbar after export
1 parent 4633c72 commit 107d9ca

22 files changed

+479
-7
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@
44

55
Same as 3.3.1 but fixes crash issues caused by FFmpeg.
66

7+
### Added
8+
9+
- **Export Failed Downloads**: Export failed downloads to TXT file for easy lookup on other platforms
10+
- **Auto-Export Setting**: Option to automatically export failed downloads when queue finishes
11+
712
### Fixed
813

914
- **FFmpeg Crash**: Fixed crash issues during M4A to MP3/Opus conversion

lib/l10n/app_localizations.dart

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3652,6 +3652,42 @@ abstract class AppLocalizations {
36523652
/// **'Are you sure you want to clear all downloads?'**
36533653
String get queueClearAllMessage;
36543654

3655+
/// Button - export failed downloads to TXT
3656+
///
3657+
/// In en, this message translates to:
3658+
/// **'Export'**
3659+
String get queueExportFailed;
3660+
3661+
/// Success message after exporting failed downloads
3662+
///
3663+
/// In en, this message translates to:
3664+
/// **'Failed downloads exported to TXT file'**
3665+
String get queueExportFailedSuccess;
3666+
3667+
/// Action to clear failed downloads after export
3668+
///
3669+
/// In en, this message translates to:
3670+
/// **'Clear Failed'**
3671+
String get queueExportFailedClear;
3672+
3673+
/// Error message when export fails
3674+
///
3675+
/// In en, this message translates to:
3676+
/// **'Failed to export downloads'**
3677+
String get queueExportFailedError;
3678+
3679+
/// Setting toggle for auto-export
3680+
///
3681+
/// In en, this message translates to:
3682+
/// **'Auto-export failed downloads'**
3683+
String get settingsAutoExportFailed;
3684+
3685+
/// Subtitle for auto-export setting
3686+
///
3687+
/// In en, this message translates to:
3688+
/// **'Save failed downloads to TXT file automatically'**
3689+
String get settingsAutoExportFailedSubtitle;
3690+
36553691
/// Empty queue state title
36563692
///
36573693
/// In en, this message translates to:

lib/l10n/app_localizations_de.dart

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2005,6 +2005,26 @@ class AppLocalizationsDe extends AppLocalizations {
20052005
String get queueClearAllMessage =>
20062006
'Are you sure you want to clear all downloads?';
20072007

2008+
@override
2009+
String get queueExportFailed => 'Export';
2010+
2011+
@override
2012+
String get queueExportFailedSuccess =>
2013+
'Failed downloads exported to TXT file';
2014+
2015+
@override
2016+
String get queueExportFailedClear => 'Clear Failed';
2017+
2018+
@override
2019+
String get queueExportFailedError => 'Failed to export downloads';
2020+
2021+
@override
2022+
String get settingsAutoExportFailed => 'Auto-export failed downloads';
2023+
2024+
@override
2025+
String get settingsAutoExportFailedSubtitle =>
2026+
'Save failed downloads to TXT file automatically';
2027+
20082028
@override
20092029
String get queueEmpty => 'No downloads in queue';
20102030

lib/l10n/app_localizations_en.dart

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1990,6 +1990,26 @@ class AppLocalizationsEn extends AppLocalizations {
19901990
String get queueClearAllMessage =>
19911991
'Are you sure you want to clear all downloads?';
19921992

1993+
@override
1994+
String get queueExportFailed => 'Export';
1995+
1996+
@override
1997+
String get queueExportFailedSuccess =>
1998+
'Failed downloads exported to TXT file';
1999+
2000+
@override
2001+
String get queueExportFailedClear => 'Clear Failed';
2002+
2003+
@override
2004+
String get queueExportFailedError => 'Failed to export downloads';
2005+
2006+
@override
2007+
String get settingsAutoExportFailed => 'Auto-export failed downloads';
2008+
2009+
@override
2010+
String get settingsAutoExportFailedSubtitle =>
2011+
'Save failed downloads to TXT file automatically';
2012+
19932013
@override
19942014
String get queueEmpty => 'No downloads in queue';
19952015

lib/l10n/app_localizations_es.dart

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1990,6 +1990,26 @@ class AppLocalizationsEs extends AppLocalizations {
19901990
String get queueClearAllMessage =>
19911991
'Are you sure you want to clear all downloads?';
19921992

1993+
@override
1994+
String get queueExportFailed => 'Export';
1995+
1996+
@override
1997+
String get queueExportFailedSuccess =>
1998+
'Failed downloads exported to TXT file';
1999+
2000+
@override
2001+
String get queueExportFailedClear => 'Clear Failed';
2002+
2003+
@override
2004+
String get queueExportFailedError => 'Failed to export downloads';
2005+
2006+
@override
2007+
String get settingsAutoExportFailed => 'Auto-export failed downloads';
2008+
2009+
@override
2010+
String get settingsAutoExportFailedSubtitle =>
2011+
'Save failed downloads to TXT file automatically';
2012+
19932013
@override
19942014
String get queueEmpty => 'No downloads in queue';
19952015

lib/l10n/app_localizations_fr.dart

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1990,6 +1990,26 @@ class AppLocalizationsFr extends AppLocalizations {
19901990
String get queueClearAllMessage =>
19911991
'Are you sure you want to clear all downloads?';
19921992

1993+
@override
1994+
String get queueExportFailed => 'Export';
1995+
1996+
@override
1997+
String get queueExportFailedSuccess =>
1998+
'Failed downloads exported to TXT file';
1999+
2000+
@override
2001+
String get queueExportFailedClear => 'Clear Failed';
2002+
2003+
@override
2004+
String get queueExportFailedError => 'Failed to export downloads';
2005+
2006+
@override
2007+
String get settingsAutoExportFailed => 'Auto-export failed downloads';
2008+
2009+
@override
2010+
String get settingsAutoExportFailedSubtitle =>
2011+
'Save failed downloads to TXT file automatically';
2012+
19932013
@override
19942014
String get queueEmpty => 'No downloads in queue';
19952015

lib/l10n/app_localizations_hi.dart

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1990,6 +1990,26 @@ class AppLocalizationsHi extends AppLocalizations {
19901990
String get queueClearAllMessage =>
19911991
'Are you sure you want to clear all downloads?';
19921992

1993+
@override
1994+
String get queueExportFailed => 'Export';
1995+
1996+
@override
1997+
String get queueExportFailedSuccess =>
1998+
'Failed downloads exported to TXT file';
1999+
2000+
@override
2001+
String get queueExportFailedClear => 'Clear Failed';
2002+
2003+
@override
2004+
String get queueExportFailedError => 'Failed to export downloads';
2005+
2006+
@override
2007+
String get settingsAutoExportFailed => 'Auto-export failed downloads';
2008+
2009+
@override
2010+
String get settingsAutoExportFailedSubtitle =>
2011+
'Save failed downloads to TXT file automatically';
2012+
19932013
@override
19942014
String get queueEmpty => 'No downloads in queue';
19952015

lib/l10n/app_localizations_id.dart

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2003,6 +2003,26 @@ class AppLocalizationsId extends AppLocalizations {
20032003
String get queueClearAllMessage =>
20042004
'Apakah Anda yakin ingin menghapus semua unduhan?';
20052005

2006+
@override
2007+
String get queueExportFailed => 'Export';
2008+
2009+
@override
2010+
String get queueExportFailedSuccess =>
2011+
'Failed downloads exported to TXT file';
2012+
2013+
@override
2014+
String get queueExportFailedClear => 'Clear Failed';
2015+
2016+
@override
2017+
String get queueExportFailedError => 'Failed to export downloads';
2018+
2019+
@override
2020+
String get settingsAutoExportFailed => 'Auto-export failed downloads';
2021+
2022+
@override
2023+
String get settingsAutoExportFailedSubtitle =>
2024+
'Save failed downloads to TXT file automatically';
2025+
20062026
@override
20072027
String get queueEmpty => 'Tidak ada unduhan dalam antrian';
20082028

lib/l10n/app_localizations_ja.dart

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1977,6 +1977,26 @@ class AppLocalizationsJa extends AppLocalizations {
19771977
@override
19781978
String get queueClearAllMessage => 'すべてのダウンロードを消去してもよろしいですか?';
19791979

1980+
@override
1981+
String get queueExportFailed => 'Export';
1982+
1983+
@override
1984+
String get queueExportFailedSuccess =>
1985+
'Failed downloads exported to TXT file';
1986+
1987+
@override
1988+
String get queueExportFailedClear => 'Clear Failed';
1989+
1990+
@override
1991+
String get queueExportFailedError => 'Failed to export downloads';
1992+
1993+
@override
1994+
String get settingsAutoExportFailed => 'Auto-export failed downloads';
1995+
1996+
@override
1997+
String get settingsAutoExportFailedSubtitle =>
1998+
'Save failed downloads to TXT file automatically';
1999+
19802000
@override
19812001
String get queueEmpty => 'キューにダウンロードがありません';
19822002

lib/l10n/app_localizations_ko.dart

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1990,6 +1990,26 @@ class AppLocalizationsKo extends AppLocalizations {
19901990
String get queueClearAllMessage =>
19911991
'Are you sure you want to clear all downloads?';
19921992

1993+
@override
1994+
String get queueExportFailed => 'Export';
1995+
1996+
@override
1997+
String get queueExportFailedSuccess =>
1998+
'Failed downloads exported to TXT file';
1999+
2000+
@override
2001+
String get queueExportFailedClear => 'Clear Failed';
2002+
2003+
@override
2004+
String get queueExportFailedError => 'Failed to export downloads';
2005+
2006+
@override
2007+
String get settingsAutoExportFailed => 'Auto-export failed downloads';
2008+
2009+
@override
2010+
String get settingsAutoExportFailedSubtitle =>
2011+
'Save failed downloads to TXT file automatically';
2012+
19932013
@override
19942014
String get queueEmpty => 'No downloads in queue';
19952015

0 commit comments

Comments
 (0)