Skip to content

Commit

Permalink
[release] 5.0.6
Browse files Browse the repository at this point in the history
  • Loading branch information
heyanLE committed Jan 28, 2024
1 parent 09b197b commit 67ee2fa
Show file tree
Hide file tree
Showing 9 changed files with 578 additions and 28 deletions.

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion app/src/main/java/com/heyanle/easybangumi4/C.kt
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ object C {
icon = R.drawable.telegram,
title = stringRes(com.heyanle.easy_i18n.R.string.telegram),
msg = stringRes(com.heyanle.easy_i18n.R.string.click_to_join),
url = "https://t.me/easybangumi"
url = "https://t.me/easy_bangumi"
),
About.Url(
icon = R.drawable.github,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.heyanle.easybangumi4.base

import androidx.webkit.internal.ApiFeature.T
import com.heyanle.easybangumi4.SourceResult
import com.heyanle.easybangumi4.source_api.SourceResult
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.heyanle.easybangumi4.cartoon

import com.heyanle.easybangumi4.SourceResult
import com.heyanle.easybangumi4.cartoon.entity.CartoonInfo
import com.heyanle.easybangumi4.cartoon.repository.db.dao.CartoonInfoDao
import com.heyanle.easybangumi4.case.SourceStateCase
import com.heyanle.easybangumi4.source_api.SourceResult
import com.heyanle.easybangumi4.source_api.entity.Cartoon
import com.heyanle.easybangumi4.utils.CoroutineProvider
import kotlinx.coroutines.CoroutineScope
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,11 +138,15 @@ abstract class AbsExtensionLoader(
publicPath = appInfo.publicSourceDir
)
}
}.map {
}.flatMap {
if (it is ExtensionSource) {
it.packageName = pkgInfo.packageName
listOf(it)
}else if(pkgInfo.packageName == "org.easybangumi.extension"){
listOf(it)
}else{
emptyList()
}
it
}
appInfo.loadIcon(pkgManager)
TimeLogUtils.i("ExtensionLoader ${pkgInfo.packageName} inner completely")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import com.heyanle.easybangumi4.source_api.utils.core.setDefaultSettings
import com.heyanle.easybangumi4.utils.clearWeb
import com.heyanle.easybangumi4.utils.evaluateJavascript
import com.heyanle.easybangumi4.utils.getHtml
import com.heyanle.easybangumi4.utils.logi
import com.heyanle.easybangumi4.utils.stop
import com.heyanle.easybangumi4.utils.waitUntil
import com.heyanle.easybangumi4.utils.waitUntilLoadFinish
Expand Down Expand Up @@ -74,7 +75,10 @@ object WebViewHelperImpl : WebViewHelper {
}
_globalWebView.resumeTimers()
_globalWebView.loadUrl(url, header.orEmpty())
_globalWebView.waitUntil(Regex(callBackRegex), timeOut)
_globalWebView.waitUntil(Regex(callBackRegex), timeOut, true)
.apply {
("waitUntil: "+this).logi("WebView.waitUntil")
}
_globalWebView.evaluateJavascript(actionJs)
_globalWebView.getHtml().also {
_globalWebView.stop()
Expand All @@ -93,11 +97,15 @@ object WebViewHelperImpl : WebViewHelper {
_globalWebView.settings.userAgentString = userAgentString
_globalWebView.resumeTimers()
_globalWebView.loadUrl(url, header.orEmpty())
_globalWebView.waitUntilLoadFinish(timeOut)
_globalWebView.evaluateJavascript(actionJs)
_globalWebView.waitUntil(Regex(regex), timeOut).also {
_globalWebView.stop()
val r = _globalWebView.waitUntil(Regex(regex), timeOut, false)
if(r.isNotEmpty() || actionJs == null){
return@withContext r
}
_globalWebView.evaluateJavascript(actionJs)
"regex ${regex} ${Regex(regex)}".logi("WebView.waitUntil")
_globalWebView.waitUntil(Regex(regex), timeOut, true)
}.apply {
("interceptResource: "+this).logi("WebView.waitUntil")
}

override suspend fun interceptBlob(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package com.heyanle.easybangumi4.ui.search_migrate

import androidx.paging.PagingSource
import androidx.paging.PagingState
import com.heyanle.easybangumi4.SourceResult
import com.heyanle.easybangumi4.source_api.SourceResult
import com.heyanle.easybangumi4.source_api.component.search.SearchComponent
import com.heyanle.easybangumi4.source_api.entity.CartoonCover
import com.heyanle.easybangumi4.utils.logi
Expand Down
53 changes: 37 additions & 16 deletions app/src/main/java/com/heyanle/easybangumi4/utils/WebViewUtils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@ package com.heyanle.easybangumi4.utils
import android.webkit.WebView
import com.heyanle.easybangumi4.source.utils.LightweightGettingWebViewClient
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.TimeoutCancellationException
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import kotlinx.coroutines.withTimeout
import org.apache.commons.text.StringEscapeUtils
import kotlin.coroutines.resume
import kotlin.coroutines.suspendCoroutine
Expand Down Expand Up @@ -50,26 +52,45 @@ suspend fun WebView.waitUntilLoadFinish(timeoutMs: Long = 8000L) {
waitUntil(null, timeoutMs)
}

suspend fun WebView.waitUntil(regex: Regex? = null, timeoutMs: Long = 8000L): String {
return withContext(Dispatchers.Main) {
suspendCoroutine { con ->
launch {
delay(timeoutMs)
con.resume("")
}
webViewClient = object : LightweightGettingWebViewClient(regex) {
override fun onPageFinished(view: WebView?, url: String?) {
"onPageFinished: $url".logi("WebView.waitUntil")
if (regex == null) con.resume("")
}
suspend fun WebView.waitUntil(regex: Regex? = null, timeoutMs: Long = 8000L, stopLoading: Boolean = false): String {
return try {
withTimeout(timeoutMs) {
suspendCoroutine<String> { con ->
// launch(Dispatchers.IO) {
// delay(timeoutMs)
// runCatching {
// con.resume("")
// }
// }
launch(Dispatchers.Main) {
webViewClient = object : LightweightGettingWebViewClient(regex) {
override fun onPageFinished(view: WebView?, url: String?) {
"onPageFinished: $url".logi("WebView.waitUntil")
runCatching {
if (regex == null) con.resume("")
}
}

override fun onLoadResource(view: WebView?, url: String?) {
"onLoadResource: $url".logi("WebView.waitUntil")
if (regex != null && url != null && regex.matches(url)) {
con.resume(url)
override fun onLoadResource(view: WebView?, url: String?) {
"onLoadResource: $url".logi("WebView.waitUntil")
if (regex != null && url != null && regex.matches(url)) {
"onLoadResource: match ${regex}".logi("WebView.waitUntil")
runCatching {
con.resume(url)
}
if(stopLoading){
stopLoading()
}
}
}
}
}
}.apply {
"suspendCoroutine ${regex}".logi("WebView.waitUntil")
}
}
} catch (ex: TimeoutCancellationException) {
ex.printStackTrace()
return ""
}
}
2 changes: 1 addition & 1 deletion buildSrc/src/main/java/com/heyanle/buildsrc/Android.kt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ object Android {
const val compileSdk = 34

const val versionCode = 78
const val versionName = "5.0.5"
const val versionName = "5.0.6"


}

0 comments on commit 67ee2fa

Please sign in to comment.