diff --git a/app/src/main/java/com/qhy040404/libraryonetap/ui/tools/GradesActivity.kt b/app/src/main/java/com/qhy040404/libraryonetap/ui/tools/GradesActivity.kt index edb197f0..a9d13b77 100644 --- a/app/src/main/java/com/qhy040404/libraryonetap/ui/tools/GradesActivity.kt +++ b/app/src/main/java/com/qhy040404/libraryonetap/ui/tools/GradesActivity.kt @@ -137,13 +137,22 @@ class GradesActivity : BaseEduActivity(), MenuProvider { } ).apply { if (this.courses.isEmpty()) { - delay(500) + if (!Requests.initEduEval()) { + delay(500L) + if (!Requests.initEduEval()) return@apply + } + delay(500L) + + val token = + CookieJarImpl.loadForRequest(URLManager.EDU_DOMAIN.toHttpUrl()) + .find { it.name == "student_evaluation_token" }?.value + if (token.isNullOrEmpty()) return@apply + val evaluationTasks = Requests.get( URLManager.getEduEvaluationTaskUrl(this.id), mapOf( - "Authorization" to CookieJarImpl.loadForRequest(URLManager.EDU_DOMAIN.toHttpUrl()) - .find { it.name == "student_evaluation_token" }?.value.orEmpty() + "Authorization" to token ).toHeaders() ) val evalTasksObj = JSONObject(evaluationTasks).optJSONArray("data")!! diff --git a/app/src/main/java/com/qhy040404/libraryonetap/utils/web/Requests.kt b/app/src/main/java/com/qhy040404/libraryonetap/utils/web/Requests.kt index 110afdcd..cc8ef853 100644 --- a/app/src/main/java/com/qhy040404/libraryonetap/utils/web/Requests.kt +++ b/app/src/main/java/com/qhy040404/libraryonetap/utils/web/Requests.kt @@ -320,16 +320,13 @@ object Requests { URLManager.EDU_CHECK_URL, shouldHas = "person" ).also { - if (it) { - initEduEval() - } eduInitialized = it return it } } } - private fun initEduEval() { + fun initEduEval(): Boolean { val initToken = get(URLManager.EDU_EVALUATION_URL).substringBetween("token=", "';") val finalToken = post( URLManager.EDU_EVALUATION_TOKEN_URL, @@ -348,5 +345,7 @@ object Requests { .hostOnlyDomain(url.host).build() ) ) + return !CookieJarImpl.loadForRequest(url) + .find { it.name == "student_evaluation_token" }?.value.isNullOrEmpty() } }