fix: ignore dateless sources when checking dictionary freshness
A source URL without the {DATE} placeholder is date-invariant, so its
HEAD probe always answers 200. Including such sources in the freshness
check made the checker report "server has a newer version" regardless
of the dated sources' state.
This commit is contained in:
1 parent
eb918ca09f
commit
59115ff9a3
1 file changed
+20
-4
+20
-4
@@ -64,7 +64,14 @@ class DictionaryChecker(
|
||||
val previousDate = DateUtils.getPreviousDateString()
|
||||
val dictFiles = getDictFiles(folderUri, files)
|
||||
|
||||
val allHaveToday = enabledSources.all { source ->
|
||||
val datedSources = enabledSources.filter { source ->
|
||||
DictionarySource.hasDatePlaceholder(source.urlTemplate)
|
||||
}
|
||||
if (datedSources.isEmpty()) {
|
||||
return@withContext true
|
||||
}
|
||||
|
||||
val allHaveToday = datedSources.all { source ->
|
||||
dictFiles.hasFileForSource(source, currentDate)
|
||||
}
|
||||
|
||||
@@ -72,19 +79,28 @@ class DictionaryChecker(
|
||||
return@withContext true
|
||||
}
|
||||
|
||||
val allHaveYesterday = enabledSources.all { source ->
|
||||
val allHaveYesterday = datedSources.all { source ->
|
||||
dictFiles.hasFileForSource(source, previousDate)
|
||||
}
|
||||
|
||||
if (allHaveYesterday) {
|
||||
val serverHasToday = enabledSources.any { source ->
|
||||
val serverHasToday = datedSources.any { source ->
|
||||
isSourceAvailableOnServer(source, currentDate)
|
||||
}
|
||||
|
||||
return@withContext !serverHasToday
|
||||
}
|
||||
|
||||
false
|
||||
val serverCanOfferNewer = datedSources.any { source ->
|
||||
when (probeSource(source, currentDate)) {
|
||||
SourceAvailability.AVAILABLE -> true
|
||||
SourceAvailability.NOT_FOUND ->
|
||||
probeSource(source, previousDate) == SourceAvailability.AVAILABLE
|
||||
SourceAvailability.UNKNOWN -> false
|
||||
}
|
||||
}
|
||||
|
||||
return@withContext !serverCanOfferNewer
|
||||
} catch (e: Exception) {
|
||||
Log.e(TAG, "Error checking currency: ${e.message}", e)
|
||||
false
|
||||
|
||||
Reference in new issue
Block a user