Add network inspection logging mode

This commit is contained in:
NerdNumber9
2019-04-14 10:46:06 -04:00
parent 863e349711
commit bfe67f1cdf
10 changed files with 66 additions and 19 deletions

View File

@ -0,0 +1,22 @@
package exh.log
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.data.preference.getOrDefault
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
enum class EHLogLevel(val description: String) {
MINIMAL("critical errors only"),
EXTRA("log everything"),
EXTREME("network inspection mode");
companion object {
private val curLogLevel by lazy {
Injekt.get<PreferencesHelper>().eh_logLevel().getOrDefault()
}
fun shouldLog(requiredLogLevel: EHLogLevel): Boolean {
return curLogLevel >= requiredLogLevel.ordinal
}
}
}

View File

@ -0,0 +1,18 @@
package exh.log
import com.elvishew.xlog.XLog
import okhttp3.OkHttpClient
import okhttp3.logging.HttpLoggingInterceptor
fun OkHttpClient.Builder.maybeInjectEHLogger(): OkHttpClient.Builder {
if(EHLogLevel.shouldLog(EHLogLevel.EXTREME)) {
val xLogger = XLog.tag("EHNetwork")
.nst()
val interceptor = HttpLoggingInterceptor {
xLogger.d(it)
}
interceptor.level = HttpLoggingInterceptor.Level.BODY
return addInterceptor(interceptor)
}
return this
}

View File

@ -6,6 +6,7 @@ import eu.kanade.tachiyomi.source.online.all.EHentai
import eu.kanade.tachiyomi.util.asJsoup
import exh.EH_SOURCE_ID
import exh.EXH_SOURCE_ID
import exh.log.maybeInjectEHLogger
import okhttp3.FormBody
import okhttp3.OkHttpClient
import okhttp3.Request
@ -16,7 +17,9 @@ class EHConfigurator {
private val prefs: PreferencesHelper by injectLazy()
private val sources: SourceManager by injectLazy()
private val configuratorClient = OkHttpClient.Builder().build()
private val configuratorClient = OkHttpClient.Builder()
.maybeInjectEHLogger()
.build()
private fun EHentai.requestWithCreds(sp: Int = 1) = Request.Builder()
.addHeader("Cookie", cookiesHeader(sp))

View File

@ -26,6 +26,7 @@ import android.os.SystemClock
import com.afollestad.materialdialogs.MaterialDialog
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.data.preference.getOrDefault
import exh.log.maybeInjectEHLogger
import exh.util.melt
import rx.Observable
@ -33,7 +34,9 @@ class SolveCaptchaActivity : AppCompatActivity() {
private val sourceManager: SourceManager by injectLazy()
private val preferencesHelper: PreferencesHelper by injectLazy()
val httpClient = OkHttpClient()
val httpClient = OkHttpClient.Builder()
.maybeInjectEHLogger()
.build()
private val jsonParser = JsonParser()
private var currentLoopId: String? = null