feat(backend): add IDHS as fallback link resolver when SongLink fails

This commit is contained in:
zarzet
2026-01-31 12:54:11 +07:00
parent 6b61dbc2da
commit 7fc73b6038
9 changed files with 430 additions and 80 deletions
+4
View File
@@ -33,6 +33,7 @@ class AppSettings {
final String locale;
final bool enableLossyOption;
final String lossyFormat;
final String lossyBitrate; // e.g., 'mp3_320', 'mp3_256', 'mp3_192', 'mp3_128', 'opus_128', 'opus_96', 'opus_64'
final String lyricsMode;
const AppSettings({
@@ -65,6 +66,7 @@ class AppSettings {
this.locale = 'system',
this.enableLossyOption = false,
this.lossyFormat = 'mp3',
this.lossyBitrate = 'mp3_320',
this.lyricsMode = 'embed',
});
@@ -99,6 +101,7 @@ class AppSettings {
String? locale,
bool? enableLossyOption,
String? lossyFormat,
String? lossyBitrate,
String? lyricsMode,
}) {
return AppSettings(
@@ -131,6 +134,7 @@ class AppSettings {
locale: locale ?? this.locale,
enableLossyOption: enableLossyOption ?? this.enableLossyOption,
lossyFormat: lossyFormat ?? this.lossyFormat,
lossyBitrate: lossyBitrate ?? this.lossyBitrate,
lyricsMode: lyricsMode ?? this.lyricsMode,
);
}
+2
View File
@@ -38,6 +38,7 @@ AppSettings _$AppSettingsFromJson(Map<String, dynamic> json) => AppSettings(
locale: json['locale'] as String? ?? 'system',
enableLossyOption: json['enableLossyOption'] as bool? ?? false,
lossyFormat: json['lossyFormat'] as String? ?? 'mp3',
lossyBitrate: json['lossyBitrate'] as String? ?? 'mp3_320',
lyricsMode: json['lyricsMode'] as String? ?? 'embed',
);
@@ -72,5 +73,6 @@ Map<String, dynamic> _$AppSettingsToJson(AppSettings instance) =>
'locale': instance.locale,
'enableLossyOption': instance.enableLossyOption,
'lossyFormat': instance.lossyFormat,
'lossyBitrate': instance.lossyBitrate,
'lyricsMode': instance.lyricsMode,
};