From a42f5c0479c8f4091fc6ff08945bb7883128ca20 Mon Sep 17 00:00:00 2001 From: Vetle Ledaal Date: Sat, 26 Jul 2025 20:02:56 +0200 Subject: [PATCH] Bato.to: randomize auto mirror better (#9797) * Bato.to: randomize auto mirror better * simplify implementation Co-authored-by: stevenyomi <95685115+stevenyomi@users.noreply.github.com> --------- Co-authored-by: stevenyomi <95685115+stevenyomi@users.noreply.github.com> --- src/all/batoto/build.gradle | 2 +- .../eu/kanade/tachiyomi/extension/all/batoto/BatoTo.kt | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/all/batoto/build.gradle b/src/all/batoto/build.gradle index 18ad23bef..6a68f55a0 100644 --- a/src/all/batoto/build.gradle +++ b/src/all/batoto/build.gradle @@ -1,7 +1,7 @@ ext { extName = 'Bato.to' extClass = '.BatoToFactory' - extVersionCode = 51 + extVersionCode = 52 isNsfw = true } diff --git a/src/all/batoto/src/eu/kanade/tachiyomi/extension/all/batoto/BatoTo.kt b/src/all/batoto/src/eu/kanade/tachiyomi/extension/all/batoto/BatoTo.kt index b3b553700..c925d2c49 100644 --- a/src/all/batoto/src/eu/kanade/tachiyomi/extension/all/batoto/BatoTo.kt +++ b/src/all/batoto/src/eu/kanade/tachiyomi/extension/all/batoto/BatoTo.kt @@ -43,6 +43,7 @@ import java.text.ParseException import java.text.SimpleDateFormat import java.util.Calendar import java.util.Locale +import kotlin.random.Random open class BatoTo( final override val lang: String, @@ -107,14 +108,19 @@ open class BatoTo( return preferences.getString("${MIRROR_PREF_KEY}_$lang", MIRROR_PREF_DEFAULT_VALUE) ?.takeUnless { it == MIRROR_PREF_DEFAULT_VALUE } ?: let { + /* Semi-sticky mirror: + * - Don't randomize on boot + * - Don't randomize per language + * - Fallback for non-Android platform + */ val seed = runCatching { val pm = Injekt.get().packageManager pm.getPackageInfo(BuildConfig.APPLICATION_ID, 0).lastUpdateTime }.getOrElse { BuildConfig.VERSION_NAME.hashCode().toLong() - }.coerceAtLeast(0) + } - MIRROR_PREF_ENTRY_VALUES[1 + (seed % (MIRROR_PREF_ENTRIES.size - 1)).toInt()] + MIRROR_PREF_ENTRY_VALUES.drop(1).random(Random(seed)) } }