chore: clean up codebase

This commit is contained in:
zarzet
2026-03-26 16:43:56 +07:00
parent bf0f4bdf3e
commit 79a69f8f70
37 changed files with 80 additions and 415 deletions
+2 -2
View File
@@ -198,8 +198,8 @@ class CsvImportService {
artistName: artistName ?? 'Unknown Artist',
albumName: albumName ?? 'Unknown Album',
isrc: isrc,
duration: 0, // Will be updated by enrichment later
coverUrl: null, // Will be fetched by enrichment
duration: 0,
coverUrl: null,
),
);
}
-7
View File
@@ -1437,7 +1437,6 @@ class FFmpegService {
final cmdBuffer = StringBuffer();
cmdBuffer.write('-i "$inputPath" ');
// Cover art as second input for M4A attached picture
final hasCover =
coverPath != null &&
coverPath.trim().isNotEmpty &&
@@ -1455,7 +1454,6 @@ class FFmpegService {
cmdBuffer.write('-c:a alac ');
cmdBuffer.write('-map_metadata -1 ');
// Embed M4A metadata tags
final m4aTags = _convertToM4aTags(metadata);
for (final entry in m4aTags.entries) {
final sanitized = entry.value.replaceAll('"', '\\"');
@@ -1764,7 +1762,6 @@ class FFmpegService {
final outputPaths = <String>[];
final inputExt = audioPath.toLowerCase().split('.').last;
// For lossless formats, keep as FLAC; for others, keep original format
final outputExt =
(inputExt == 'flac' ||
inputExt == 'wav' ||
@@ -1836,14 +1833,10 @@ class FFmpegService {
final result = await _execute(command);
if (!result.success) {
_log.e('CUE split failed for track ${track.number}: ${result.output}');
// Continue with remaining tracks instead of failing completely
continue;
}
// Embed cover art if available (for FLAC output)
if (coverPath != null && coverPath.isNotEmpty && outputExt == 'flac') {
// Use the Go backend for FLAC cover embedding via PlatformBridge
// (handled by the caller)
}
outputPaths.add(outputPath);
-18
View File
@@ -1081,7 +1081,6 @@ class PlatformBridge {
}
}
/// Set the directory for caching extracted cover art
static Future<void> setLibraryCoverCacheDir(String cacheDir) async {
_log.i('setLibraryCoverCacheDir: $cacheDir');
await _channel.invokeMethod('setLibraryCoverCacheDir', {
@@ -1089,8 +1088,6 @@ class PlatformBridge {
});
}
/// Scan a folder for audio files and read their metadata
/// Returns a list of track metadata
static Future<List<Map<String, dynamic>>> scanLibraryFolder(
String folderPath,
) async {
@@ -1102,10 +1099,6 @@ class PlatformBridge {
return list.map((e) => e as Map<String, dynamic>).toList();
}
/// Perform an incremental scan of the library folder
/// Only scans files that are new or have changed since last scan
/// [existingFiles] is a map of filePath -> modTime (unix millis)
/// Returns IncrementalScanResult with scanned items, deleted paths, and skip count
static Future<Map<String, dynamic>> scanLibraryFolderIncremental(
String folderPath,
Map<String, int> existingFiles,
@@ -1140,8 +1133,6 @@ class PlatformBridge {
return list.map((e) => e as Map<String, dynamic>).toList();
}
/// Incremental SAF tree scan - only scans new or modified files
/// Returns a map with 'files' (new/changed) and 'removedUris' (deleted files)
static Future<Map<String, dynamic>> scanSafTreeIncremental(
String treeUri,
Map<String, int> existingFiles,
@@ -1167,8 +1158,6 @@ class PlatformBridge {
return jsonDecode(result as String) as Map<String, dynamic>;
}
/// Get last-modified timestamps for a list of SAF file URIs.
/// Returns map uri -> modTime (unix millis), only for files that still exist.
static Future<Map<String, int>> getSafFileModTimes(List<String> uris) async {
final result = await _channel.invokeMethod('getSafFileModTimes', {
'uris': jsonEncode(uris),
@@ -1177,7 +1166,6 @@ class PlatformBridge {
return map.map((key, value) => MapEntry(key, (value as num).toInt()));
}
/// Get current library scan progress
static Future<Map<String, dynamic>> getLibraryScanProgress() async {
final result = await _channel.invokeMethod('getLibraryScanProgress');
return _decodeMapResult(result);
@@ -1189,7 +1177,6 @@ class PlatformBridge {
);
}
/// Cancel ongoing library scan
static Future<void> cancelLibraryScan() async {
await _channel.invokeMethod('cancelLibraryScan');
}
@@ -1249,7 +1236,6 @@ class PlatformBridge {
}
}
/// Read metadata from a single audio file
static Future<Map<String, dynamic>?> readAudioMetadata(
String filePath,
) async {
@@ -1369,10 +1355,6 @@ class PlatformBridge {
await _channel.invokeMethod('clearStoreCache');
}
/// Parse a .cue file and return split information (track listing, timing, metadata).
/// Returns a map with: cue_path, audio_path, album, artist, genre, date, tracks[]
/// Each track has: number, title, artist, isrc, composer, start_sec, end_sec
/// [audioDir] optionally overrides the directory for audio file resolution (used for SAF).
static Future<Map<String, dynamic>> parseCueSheet(
String cuePath, {
String audioDir = '',
-3
View File
@@ -80,7 +80,6 @@ class ShareIntentService {
bool isInitial = false,
}) {
for (final file in files) {
// Check both path and message - apps may share URL in either field
final textsToCheck = [file.path, if (file.message != null) file.message!];
for (final textToCheck in textsToCheck) {
@@ -100,13 +99,11 @@ class ShareIntentService {
String? _extractMusicUrl(String text) {
if (text.isEmpty) return null;
// Try Spotify URI first
final uriMatch = _spotifyUriPattern.firstMatch(text);
if (uriMatch != null) {
return uriMatch.group(0);
}
// Try all URL patterns
final patterns = [
_spotifyUrlPattern,
_deezerUrlPattern,