Make flaresolverr session options configurable (#854)

Signed-off-by: Chance Zibolski <chance.zibolski@gmail.com>
This commit is contained in:
Chance Zibolski
2024-01-24 18:11:53 -08:00
committed by GitHub
parent 9109d1ca3e
commit dc124fb15c
5 changed files with 17 additions and 3 deletions
@@ -169,8 +169,8 @@ object CFClearance {
FlareSolverRequest( FlareSolverRequest(
"request.get", "request.get",
originalRequest.url.toString(), originalRequest.url.toString(),
session = "suwayomi", session = serverConfig.flareSolverrSessionName.value,
sessionTtlMinutes = 15, sessionTtlMinutes = serverConfig.flareSolverrSessionTtl.value,
cookies = cookies =
network.cookieStore.get(originalRequest.url).map { network.cookieStore.get(originalRequest.url).map {
FlareSolverCookie(it.name, it.value) FlareSolverCookie(it.name, it.value)
@@ -91,6 +91,8 @@ class SettingsMutation {
updateSetting(settings.flareSolverrEnabled, serverConfig.flareSolverrEnabled) updateSetting(settings.flareSolverrEnabled, serverConfig.flareSolverrEnabled)
updateSetting(settings.flareSolverrUrl, serverConfig.flareSolverrUrl) updateSetting(settings.flareSolverrUrl, serverConfig.flareSolverrUrl)
updateSetting(settings.flareSolverrTimeout, serverConfig.flareSolverrTimeout) updateSetting(settings.flareSolverrTimeout, serverConfig.flareSolverrTimeout)
updateSetting(settings.flareSolverrSessionName, serverConfig.flareSolverrSessionName)
updateSetting(settings.flareSolverrSessionTtl, serverConfig.flareSolverrSessionTtl)
} }
fun setSettings(input: SetSettingsInput): SetSettingsPayload { fun setSettings(input: SetSettingsInput): SetSettingsPayload {
@@ -76,6 +76,8 @@ interface Settings : Node {
val flareSolverrEnabled: Boolean? val flareSolverrEnabled: Boolean?
val flareSolverrUrl: String? val flareSolverrUrl: String?
val flareSolverrTimeout: Int? val flareSolverrTimeout: Int?
val flareSolverrSessionName: String?
val flareSolverrSessionTtl: Int?
} }
data class PartialSettingsType( data class PartialSettingsType(
@@ -127,6 +129,8 @@ data class PartialSettingsType(
override val flareSolverrEnabled: Boolean?, override val flareSolverrEnabled: Boolean?,
override val flareSolverrUrl: String?, override val flareSolverrUrl: String?,
override val flareSolverrTimeout: Int?, override val flareSolverrTimeout: Int?,
override val flareSolverrSessionName: String?,
override val flareSolverrSessionTtl: Int?,
) : Settings ) : Settings
class SettingsType( class SettingsType(
@@ -178,6 +182,8 @@ class SettingsType(
override val flareSolverrEnabled: Boolean, override val flareSolverrEnabled: Boolean,
override val flareSolverrUrl: String, override val flareSolverrUrl: String,
override val flareSolverrTimeout: Int, override val flareSolverrTimeout: Int,
override val flareSolverrSessionName: String,
override val flareSolverrSessionTtl: Int,
) : Settings { ) : Settings {
constructor(config: ServerConfig = serverConfig) : this( constructor(config: ServerConfig = serverConfig) : this(
config.ip.value, config.ip.value,
@@ -228,5 +234,7 @@ class SettingsType(
config.flareSolverrEnabled.value, config.flareSolverrEnabled.value,
config.flareSolverrUrl.value, config.flareSolverrUrl.value,
config.flareSolverrTimeout.value, config.flareSolverrTimeout.value,
config.flareSolverrSessionName.value,
config.flareSolverrSessionTtl.value,
) )
} }
@@ -135,6 +135,8 @@ class ServerConfig(getConfig: () -> Config, val moduleName: String = SERVER_CONF
val flareSolverrEnabled: MutableStateFlow<Boolean> by OverrideConfigValue(BooleanConfigAdapter) val flareSolverrEnabled: MutableStateFlow<Boolean> by OverrideConfigValue(BooleanConfigAdapter)
val flareSolverrUrl: MutableStateFlow<String> by OverrideConfigValue(StringConfigAdapter) val flareSolverrUrl: MutableStateFlow<String> by OverrideConfigValue(StringConfigAdapter)
val flareSolverrTimeout: MutableStateFlow<Int> by OverrideConfigValue(IntConfigAdapter) val flareSolverrTimeout: MutableStateFlow<Int> by OverrideConfigValue(IntConfigAdapter)
val flareSolverrSessionName: MutableStateFlow<String> by OverrideConfigValue(StringConfigAdapter)
val flareSolverrSessionTtl: MutableStateFlow<Int> by OverrideConfigValue(IntConfigAdapter)
@OptIn(ExperimentalCoroutinesApi::class) @OptIn(ExperimentalCoroutinesApi::class)
fun <T> subscribeTo( fun <T> subscribeTo(
@@ -60,4 +60,6 @@ server.localSourcePath = ""
# Cloudflare bypass # Cloudflare bypass
server.flareSolverrEnabled = false server.flareSolverrEnabled = false
server.flareSolverrUrl = "http://localhost:8191" server.flareSolverrUrl = "http://localhost:8191"
server.flareSolverrTimeout = 60 # time in seconds server.flareSolverrTimeout = 60 # time in seconds
server.flareSolverrSessionName = "suwayomi"
server.flareSolverrSessionTtl = 15 # time in minutes