1
0
mirror of https://github.com/fumiama/copymanga.git synced 2026-06-09 01:10:28 +08:00
修复
1. 漫画缺页
2. 漫画下载
This commit is contained in:
源文雨
2022-06-17 22:23:59 +08:00
parent b35bc8c3ab
commit 845a56d443
7 changed files with 50 additions and 23 deletions

1
.idea/misc.xml generated
View File

@@ -6,6 +6,7 @@
<entry key="../../.gradle/caches/transforms-3/530137dbe1613faf299d06bd64f02665/transformed/jetified-search-2.4.1/res/layout/search_view.xml" value="0.46557971014492755" />
<entry key="app/src/main/res/drawable-anydpi/ic_like.xml" value="0.5572916666666666" />
<entry key="app/src/main/res/drawable-anydpi/ic_setting_search.xml" value="0.5572916666666666" />
<entry key="app/src/main/res/layout/activity_dl.xml" value="0.5025484199796126" />
<entry key="app/src/main/res/layout/activity_dlist.xml" value="0.48641304347826086" />
<entry key="app/src/main/res/layout/activity_login.xml" value="0.49592391304347827" />
<entry key="app/src/main/res/layout/activity_main.xml" value="0.5095108695652174" />

View File

@@ -28,6 +28,8 @@ import top.fumiama.copymanga.tool.MangaDlTools.Companion.wmdlt
import top.fumiama.copymanga.tool.ToolsBox
import top.fumiama.copymanga.view.ChapterToggleButton
import top.fumiama.copymanga.view.LazyScrollView
import top.fumiama.copymanga.web.JSHidden
import top.fumiama.copymanga.web.WebChromeClient
import java.io.File
import java.lang.Thread.sleep
import java.lang.ref.WeakReference
@@ -57,6 +59,10 @@ class DlActivity : Activity() {
setContentView(binding.root)
mh?.saveUrlsOnly = true
mangaDlTools = MangaDlTools(this)
dwh.settings.userAgentString = getString(R.string.pc_ua)
dwh.webChromeClient = WebChromeClient()
dwh.setWebViewClient("h.js")
dwh.loadJSInterface(JSHidden())
handler.sendEmptyMessage(-2) //setLayouts
}
@@ -133,9 +139,11 @@ class DlActivity : Activity() {
haveDlStarted = true
canDl = true
handler.sendEmptyMessage(9) //set dl card color to red
Toast.makeText(this, "十秒后开始下载...", Toast.LENGTH_SHORT).show()
fillChapters()
Thread { dlThread { downloadChapterPages(it) } }.start()
Toast.makeText(this, "请耐心等待加载...", Toast.LENGTH_SHORT).show()
Thread {
fillChapters()
dlThread { downloadChapterPages(it) }
}.start()
}
}
}

View File

@@ -22,7 +22,6 @@ import top.fumiama.copymanga.web.WebChromeClient
import java.lang.ref.WeakReference
class MainActivity: Activity() {
var wh: JSWebView? = null
var uploadMessageAboveL: ValueCallback<Array<Uri>>? = null
private var toolsBox: ToolsBox? = null
@SuppressLint("JavascriptInterface")
@@ -44,10 +43,10 @@ class MainActivity: Activity() {
w.loadJSInterface(JS())
w.loadUrl(getString(R.string.web_home))
wh = JSWebView(this, getString(R.string.pc_ua))
wh?.webChromeClient = WebChromeClient()
wh?.setWebViewClient("h.js")
wh?.loadJSInterface(JSHidden())
wh.settings.userAgentString = getString(R.string.pc_ua)
wh.webChromeClient = WebChromeClient()
wh.setWebViewClient("h.js")
wh.loadJSInterface(JSHidden())
}
}
SetDraggable().with(this).onto(fab)

View File

@@ -2,12 +2,11 @@ package top.fumiama.copymanga.tool
import top.fumiama.copymanga.R
import top.fumiama.copymanga.activity.DlActivity
import top.fumiama.copymanga.data.ComicStructure
import top.fumiama.copymanga.view.JSWebView
import top.fumiama.copymanga.web.JSHidden
import kotlinx.android.synthetic.main.activity_dl.*
import java.io.File
import java.lang.Thread.sleep
import java.lang.ref.WeakReference
import java.util.concurrent.Semaphore
import java.util.zip.CRC32
import java.util.zip.CheckedOutputStream
import java.util.zip.ZipEntry
@@ -15,18 +14,12 @@ import java.util.zip.ZipOutputStream
class MangaDlTools(activity: DlActivity) {
var exit = false
private val sem = Semaphore(1)
private val da = WeakReference(activity)
private val d = da.get()
private val p = PropertiesTools(File("${d?.filesDir}/chapters.hash"))
private var imgUrlsList: Array<Array<String>?>? = null
private var chaptersCount = 0
private val newWebViewHidden: JSWebView?
get() {
val re = d?.let { JSWebView(it, it.getString(R.string.pc_ua)) }
re?.setWebViewClient("h.js")
re?.loadJSInterface(JSHidden())
return re
}
init {
wmdlt = WeakReference(this)
@@ -42,12 +35,16 @@ class MangaDlTools(activity: DlActivity) {
}
fun dlChapterUrl(url: String){
p[url.substringAfterLast("/")] = (chaptersCount++).toString()
newWebViewHidden?.loadUrl(url)
sem.acquire()
da.get()?.apply {
p[url.substringAfterLast("/")] = (chaptersCount++).toString()
runOnUiThread { dwh.loadUrl(url) }
}
}
fun setChapterImgs(hash: String, imgUrls: Array<String>){
imgUrlsList?.set(p[hash].toInt(), imgUrls)
sem.release()
}
fun dlChapterAndPackIntoZip(zipf: File, hash: String){

View File

@@ -8,6 +8,8 @@ import android.webkit.*
import android.webkit.WebViewClient
import android.widget.Toast
import top.fumiama.copymanga.R
import top.fumiama.copymanga.activity.MainActivity.Companion.mh
import top.fumiama.copymanga.activity.MainActivity.Companion.wm
class WebViewClient(private val context: Context, jsFileName: String):WebViewClient() {
private val js = context.assets.open(jsFileName).readBytes().decodeToString()
@@ -23,9 +25,14 @@ class WebViewClient(private val context: Context, jsFileName: String):WebViewCli
}
override fun onPageFinished(view: WebView?, url: String?) {
view?.loadUrl(js)
Log.d("MyWC", "Inject JS into: $url")
super.onPageFinished(view, url)
Thread {
Thread.sleep(500)
wm?.get()?.runOnUiThread {
view?.loadUrl(js)
Log.d("MyWC", "Inject JS into: $url")
super.onPageFinished(view, url)
}
}.start()
}
override fun onReceivedSslError(view: WebView?, handler: SslErrorHandler?, error: SslError?) {

View File

@@ -5,6 +5,16 @@
android:layout_height="match_parent"
android:background="#FCFCFF">
<top.fumiama.copymanga.view.JSWebView
android:id="@+id/dwh"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false"
android:longClickable="false"
android:touchscreenBlocksFocus="false" />
<include
android:id="@+id/dtitle"
layout="@layout/widget_titlebar"

View File

@@ -5,6 +5,11 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<top.fumiama.copymanga.view.JSWebView
android:id="@+id/wh"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<top.fumiama.copymanga.view.JSWebView
android:id="@+id/w"
android:layout_width="match_parent"