feat: compact media library sqlite storage

This commit is contained in:
ngfchl
2026-07-18 15:48:05 +08:00
parent 6f0e3b8523
commit 836ea0e3d3
3 changed files with 105 additions and 4 deletions
+17
View File
@@ -249,6 +249,14 @@ class _MediaLibraryPageState extends ConsumerState<MediaLibraryPage> {
child: const Text('导入数据'),
),
const SizedBox(width: 8),
ShadButton.outline(
onPressed: _backupBusy || state.isScanning
? null
: _optimizeScrapedStorage,
leading: const Icon(Icons.cleaning_services_rounded, size: 16),
child: const Text('数据库瘦身'),
),
const SizedBox(width: 8),
ShadButton.outline(
onPressed: state.selectedLibrary == null || state.isScanning
? null
@@ -785,6 +793,15 @@ class _MediaLibraryPageState extends ConsumerState<MediaLibraryPage> {
}
}
Future<void> _optimizeScrapedStorage() async {
setState(() => _backupBusy = true);
try {
await ref.read(mediaLibraryProvider.notifier).optimizeLocalStorage();
} finally {
if (mounted) setState(() => _backupBusy = false);
}
}
Future<void> _searchTMDB(String query) async {
final text = query.trim();
if (text.isEmpty || _tmdbApiKey.isEmpty) return;