Skip to content

Commit dc124fb

Browse files
authored
Make flaresolverr session options configurable (#854)
Signed-off-by: Chance Zibolski <[email protected]>
1 parent 9109d1c commit dc124fb

File tree

5 files changed

+17
-3
lines changed

5 files changed

+17
-3
lines changed

server/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/CloudflareInterceptor.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,8 +169,8 @@ object CFClearance {
169169
FlareSolverRequest(
170170
"request.get",
171171
originalRequest.url.toString(),
172-
session = "suwayomi",
173-
sessionTtlMinutes = 15,
172+
session = serverConfig.flareSolverrSessionName.value,
173+
sessionTtlMinutes = serverConfig.flareSolverrSessionTtl.value,
174174
cookies =
175175
network.cookieStore.get(originalRequest.url).map {
176176
FlareSolverCookie(it.name, it.value)

server/src/main/kotlin/suwayomi/tachidesk/graphql/mutations/SettingsMutation.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,8 @@ class SettingsMutation {
9191
updateSetting(settings.flareSolverrEnabled, serverConfig.flareSolverrEnabled)
9292
updateSetting(settings.flareSolverrUrl, serverConfig.flareSolverrUrl)
9393
updateSetting(settings.flareSolverrTimeout, serverConfig.flareSolverrTimeout)
94+
updateSetting(settings.flareSolverrSessionName, serverConfig.flareSolverrSessionName)
95+
updateSetting(settings.flareSolverrSessionTtl, serverConfig.flareSolverrSessionTtl)
9496
}
9597

9698
fun setSettings(input: SetSettingsInput): SetSettingsPayload {

server/src/main/kotlin/suwayomi/tachidesk/graphql/types/SettingsType.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ interface Settings : Node {
7676
val flareSolverrEnabled: Boolean?
7777
val flareSolverrUrl: String?
7878
val flareSolverrTimeout: Int?
79+
val flareSolverrSessionName: String?
80+
val flareSolverrSessionTtl: Int?
7981
}
8082

8183
data class PartialSettingsType(
@@ -127,6 +129,8 @@ data class PartialSettingsType(
127129
override val flareSolverrEnabled: Boolean?,
128130
override val flareSolverrUrl: String?,
129131
override val flareSolverrTimeout: Int?,
132+
override val flareSolverrSessionName: String?,
133+
override val flareSolverrSessionTtl: Int?,
130134
) : Settings
131135

132136
class SettingsType(
@@ -178,6 +182,8 @@ class SettingsType(
178182
override val flareSolverrEnabled: Boolean,
179183
override val flareSolverrUrl: String,
180184
override val flareSolverrTimeout: Int,
185+
override val flareSolverrSessionName: String,
186+
override val flareSolverrSessionTtl: Int,
181187
) : Settings {
182188
constructor(config: ServerConfig = serverConfig) : this(
183189
config.ip.value,
@@ -228,5 +234,7 @@ class SettingsType(
228234
config.flareSolverrEnabled.value,
229235
config.flareSolverrUrl.value,
230236
config.flareSolverrTimeout.value,
237+
config.flareSolverrSessionName.value,
238+
config.flareSolverrSessionTtl.value,
231239
)
232240
}

server/src/main/kotlin/suwayomi/tachidesk/server/ServerConfig.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,8 @@ class ServerConfig(getConfig: () -> Config, val moduleName: String = SERVER_CONF
135135
val flareSolverrEnabled: MutableStateFlow<Boolean> by OverrideConfigValue(BooleanConfigAdapter)
136136
val flareSolverrUrl: MutableStateFlow<String> by OverrideConfigValue(StringConfigAdapter)
137137
val flareSolverrTimeout: MutableStateFlow<Int> by OverrideConfigValue(IntConfigAdapter)
138+
val flareSolverrSessionName: MutableStateFlow<String> by OverrideConfigValue(StringConfigAdapter)
139+
val flareSolverrSessionTtl: MutableStateFlow<Int> by OverrideConfigValue(IntConfigAdapter)
138140

139141
@OptIn(ExperimentalCoroutinesApi::class)
140142
fun <T> subscribeTo(

server/src/main/resources/server-reference.conf

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,4 +60,6 @@ server.localSourcePath = ""
6060
# Cloudflare bypass
6161
server.flareSolverrEnabled = false
6262
server.flareSolverrUrl = "http://localhost:8191"
63-
server.flareSolverrTimeout = 60 # time in seconds
63+
server.flareSolverrTimeout = 60 # time in seconds
64+
server.flareSolverrSessionName = "suwayomi"
65+
server.flareSolverrSessionTtl = 15 # time in minutes

0 commit comments

Comments
 (0)