@@ -204,7 +204,8 @@ class BackupFragment : NamedFragment(R.layout.layout_backup) {
204204
205205 // 使用英文格式的时间戳作为文件名,修改后缀为 .zip
206206 val timestamp = java.text.SimpleDateFormat (" yyyyMMdd_HHmmss" , Locale .US ).format(Date ())
207- val fileName = " nekobox_backup_$timestamp .zip"
207+ val version = BuildConfig .VERSION_NAME
208+ val fileName = " nekobox_backup_${version} _$timestamp .zip"
208209
209210 // 确保 baseUrl 是有效的 URL
210211 if (! baseUrl.startsWith(" http://" ) && ! baseUrl.startsWith(" https://" )) {
@@ -353,9 +354,9 @@ class BackupFragment : NamedFragment(R.layout.layout_backup) {
353354 Logs .d(" WebDAV restore - Directory listing: $responseBody " )
354355
355356 val patterns = listOf (
356- """ <D:href>[^<]*?nekobox_backup_\d{8}_\d{6}\.(json|zip)</D:href>""" .toRegex(),
357- """ <d:href>[^<]*?nekobox_backup_\d{8}_\d{6}\.(json|zip)</d:href>""" .toRegex(),
358- """ <href>[^<]*?nekobox_backup_\d{8}_\d{6}\.(json|zip)</href>""" .toRegex()
357+ """ <D:href>[^<]*?nekobox_backup_[^<]*? \d{8}_\d{6}\.(json|zip)</D:href>""" .toRegex(),
358+ """ <d:href>[^<]*?nekobox_backup_[^<]*? \d{8}_\d{6}\.(json|zip)</d:href>""" .toRegex(),
359+ """ <href>[^<]*?nekobox_backup_[^<]*? \d{8}_\d{6}\.(json|zip)</href>""" .toRegex()
359360 )
360361
361362 val backupFiles = mutableListOf<String >()
@@ -365,7 +366,7 @@ class BackupFragment : NamedFragment(R.layout.layout_backup) {
365366 matches.forEach { match ->
366367 val href = match.value
367368 Logs .d(" WebDAV restore - Found backup file with pattern ${pattern.pattern} : $href " )
368- val fileName = """ nekobox_backup_\d{8}_\d{6}\.(json|zip)""" .toRegex()
369+ val fileName = """ nekobox_backup_[^<]*? \d{8}_\d{6}\.(json|zip)""" .toRegex()
369370 .find(href)?.value
370371 if (fileName != null ) {
371372 backupFiles.add(fileName)
@@ -375,8 +376,10 @@ class BackupFragment : NamedFragment(R.layout.layout_backup) {
375376 }
376377
377378 Logs .d(" WebDAV restore - Found ${backupFiles.size} backup files: ${backupFiles.joinToString()} " )
378-
379- backupFiles.maxByOrNull { it } ? : throw Exception (" No backup found" )
379+
380+ backupFiles.maxByOrNull { fileName ->
381+ """ (\d{8}_\d{6})""" .toRegex().find(fileName)?.value ? : " "
382+ } ? : throw Exception (" No backup found" )
380383 }
381384
382385 // 下载最新的备份文件
0 commit comments