Fix: loading spinner until video plays, remove watched text from title

This commit is contained in:
tvmon-dev
2026-04-15 21:13:28 +09:00
parent 08917e96c7
commit aa48060630
2 changed files with 27 additions and 12 deletions

View File

@@ -439,6 +439,11 @@ class TvmonScraper {
continue continue
} }
val cleanLinkText = linkText
.replace("시청중", "")
.replace("NEW", "")
.trim()
val episodeNumMatch = Pattern.compile("(\\d+)\\s*화|(\\d+)\\s*회|EP\\.?(\\d+)|제\\s*(\\d+)\\s*부").matcher(linkText) val episodeNumMatch = Pattern.compile("(\\d+)\\s*화|(\\d+)\\s*회|EP\\.?(\\d+)|제\\s*(\\d+)\\s*부").matcher(linkText)
val episodeTitle = if (episodeNumMatch.find()) { val episodeTitle = if (episodeNumMatch.find()) {
episodeNumMatch.group(1) ?: episodeNumMatch.group(2) ?: episodeNumMatch.group(3) ?: episodeNumMatch.group(4) episodeNumMatch.group(1) ?: episodeNumMatch.group(2) ?: episodeNumMatch.group(3) ?: episodeNumMatch.group(4)
@@ -471,7 +476,7 @@ class TvmonScraper {
episodes.add(Episode( episodes.add(Episode(
number = finalNumber, number = finalNumber,
title = linkText.ifBlank { finalNumber }, title = cleanLinkText.ifBlank { finalNumber },
url = fullUrl, url = fullUrl,
type = "webview", type = "webview",
date = dateStr date = dateStr

View File

@@ -272,6 +272,13 @@ class PlaybackActivity : AppCompatActivity() {
return super.shouldInterceptRequest(view, request) return super.shouldInterceptRequest(view, request)
} }
override fun onPageStarted(view: WebView?, url: String?, favicon: android.graphics.Bitmap?) {
super.onPageStarted(view, url, favicon)
runOnUiThread {
loadingOverlay.visibility = View.VISIBLE
}
}
override fun onPageFinished(view: WebView?, url: String?) { override fun onPageFinished(view: WebView?, url: String?) {
super.onPageFinished(view, url) super.onPageFinished(view, url)
android.util.Log.i("PlaybackActivity", "Page finished: $url") android.util.Log.i("PlaybackActivity", "Page finished: $url")
@@ -295,12 +302,6 @@ class PlaybackActivity : AppCompatActivity() {
injectEnhancedAutoPlayScript() injectEnhancedAutoPlayScript()
android.util.Log.i("PlaybackActivity", "Enhanced AutoPlay script injected (third)") android.util.Log.i("PlaybackActivity", "Enhanced AutoPlay script injected (third)")
}, 1500) }, 1500)
handler.postDelayed({
runOnUiThread {
loadingOverlay.visibility = View.GONE
}
}, 1500)
} }
} }
@@ -480,7 +481,9 @@ class PlaybackActivity : AppCompatActivity() {
v.play().then(function() { v.play().then(function() {
console.log('AutoPlay: Video play() succeeded'); console.log('AutoPlay: Video play() succeeded');
if (window.Android) window.Android.onVideoPlay(); if (window.Android) {
window.Android.onVideoPlay();
}
}).catch(function(e) { }).catch(function(e) {
console.log('AutoPlay: Video play() failed: ' + e.message); console.log('AutoPlay: Video play() failed: ' + e.message);
}); });
@@ -496,6 +499,13 @@ class PlaybackActivity : AppCompatActivity() {
tryPlay(v); tryPlay(v);
}, {once: true}); }, {once: true});
v.addEventListener('playing', function() {
console.log('AutoPlay: Video is now playing');
if (window.Android) {
window.Android.onVideoPlay();
}
}, {once: true});
if (v.readyState >= 2) { if (v.readyState >= 2) {
tryPlay(v); tryPlay(v);
} }