diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
index 6814e8a9..65b8e5e1 100644
--- a/.idea/jarRepositories.xml
+++ b/.idea/jarRepositories.xml
@@ -81,5 +81,10 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
index 27fae606..3cc991cb 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
*Pupil, Hitomi.la viewer for Android*

-[](https://github.com/tom5079/Pupil/releases/download/5.1.29/Pupil-v5.1.29.apk)
+[](https://github.com/tom5079/Pupil/releases/download/5.1.30/Pupil-v5.1.30.apk)
[](https://discord.gg/Stj4b5v)
# Features
diff --git a/app/build.gradle b/app/build.gradle
index 6790bf86..d31ee9ce 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -38,7 +38,7 @@ android {
minSdkVersion 16
targetSdkVersion 30
versionCode 69
- versionName "5.1.29"
+ versionName "5.1.30"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
@@ -126,7 +126,7 @@ dependencies {
implementation "ru.noties.markwon:core:3.1.0"
implementation "org.jsoup:jsoup:1.14.3"
- implementation "com.github.seven332:quickjs-android:0.1.0"
+ implementation "app.cash.zipline:zipline:1.0.0-SNAPSHOT"
implementation "com.google.guava:guava:31.0.1-android"
diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json
index 910882aa..fa3715d4 100644
--- a/app/release/output-metadata.json
+++ b/app/release/output-metadata.json
@@ -11,7 +11,7 @@
"type": "SINGLE",
"filters": [],
"versionCode": 69,
- "versionName": "5.1.29",
+ "versionName": "5.1.30",
"outputFile": "app-release.apk"
}
]
diff --git a/app/src/main/java/xyz/quaver/pupil/Pupil.kt b/app/src/main/java/xyz/quaver/pupil/Pupil.kt
index bf773328..ef5cd391 100644
--- a/app/src/main/java/xyz/quaver/pupil/Pupil.kt
+++ b/app/src/main/java/xyz/quaver/pupil/Pupil.kt
@@ -26,7 +26,6 @@ import android.content.Context
import android.content.Intent
import android.net.Uri
import android.os.Build
-import android.util.Log
import androidx.appcompat.app.AppCompatDelegate
import androidx.core.content.ContextCompat
import androidx.preference.PreferenceManager
@@ -36,11 +35,6 @@ import com.google.android.gms.common.GooglePlayServicesNotAvailableException
import com.google.android.gms.common.GooglePlayServicesRepairableException
import com.google.android.gms.security.ProviderInstaller
import com.google.firebase.crashlytics.FirebaseCrashlytics
-import com.hippo.quickjs.android.QuickJS
-import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.MainScope
-import kotlinx.coroutines.launch
import okhttp3.Dispatcher
import okhttp3.Interceptor
import okhttp3.OkHttpClient
@@ -48,9 +42,7 @@ import okhttp3.Response
import xyz.quaver.io.FileX
import xyz.quaver.pupil.types.Tag
import xyz.quaver.pupil.util.*
-import xyz.quaver.readText
import java.io.File
-import java.net.URL
import java.util.*
import java.util.concurrent.Executors
import java.util.concurrent.TimeUnit
diff --git a/app/src/main/java/xyz/quaver/pupil/hitomi/common.kt b/app/src/main/java/xyz/quaver/pupil/hitomi/common.kt
index 1bed8be5..d320fe18 100644
--- a/app/src/main/java/xyz/quaver/pupil/hitomi/common.kt
+++ b/app/src/main/java/xyz/quaver/pupil/hitomi/common.kt
@@ -17,16 +17,12 @@
package xyz.quaver.pupil.hitomi
import android.util.Log
-import com.hippo.quickjs.android.QuickJS
-import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.launch
-import kotlinx.coroutines.sync.Mutex
-import kotlinx.coroutines.sync.withLock
+import app.cash.zipline.QuickJs
import kotlinx.serialization.decodeFromString
import xyz.quaver.json
import xyz.quaver.readText
import java.net.URL
+import java.nio.charset.Charset
const val protocol = "https:"
@@ -54,33 +50,18 @@ interface gg {
fun getInstance(): gg =
instance ?: synchronized(this) {
instance ?: object: gg {
- private val ggjs by lazy { URL("https://ltn.hitomi.la/gg.js").readText() }
- private val quickJS = QuickJS.Builder().build()
+ private val engine = QuickJs.create().also {
+ it.evaluate(URL("https://ltn.hitomi.la/gg.js").readText(Charset.defaultCharset()).also {
+ Log.d("PUPILD", it)
+ })
+ }
- override fun m(g: Int): Int =
- quickJS.createJSRuntime().use { runtime ->
- runtime.createJSContext().use { context ->
- context.evaluate(ggjs, "gg.js")
- context.evaluate("gg.m($g)", "gg.js", Int::class.java)
- }
- }
+ override fun m(g: Int): Int = engine.evaluate("gg.m($g)") as Int
override val b: String
- get() =
- quickJS.createJSRuntime().use { runtime ->
- runtime.createJSContext().use { context ->
- context.evaluate(ggjs, "gg.js")
- context.evaluate("gg.b", "gg.js", String::class.java)
- }
- }
+ get() = engine.evaluate("gg.b") as String
- override fun s(h: String): String =
- quickJS.createJSRuntime().use { runtime ->
- runtime.createJSContext().use { context ->
- context.evaluate(ggjs, "gg.js")
- context.evaluate("gg.s('$h')", "gg.js", String::class.java)
- }
- }
+ override fun s(h: String): String = engine.evaluate("gg.s('$h')") as String
}.also { instance = it }
}
}
diff --git a/app/src/main/java/xyz/quaver/pupil/services/DownloadService.kt b/app/src/main/java/xyz/quaver/pupil/services/DownloadService.kt
index af5b1bb0..3ae55fda 100644
--- a/app/src/main/java/xyz/quaver/pupil/services/DownloadService.kt
+++ b/app/src/main/java/xyz/quaver/pupil/services/DownloadService.kt
@@ -149,7 +149,7 @@ class DownloadService : Service() {
override fun source(): BufferedSource {
if (bufferedSource == null)
- bufferedSource = Okio.buffer(source(responseBody.source()))
+ bufferedSource = source(responseBody.source()).buffer()
return bufferedSource!!
}
@@ -174,9 +174,13 @@ class DownloadService : Service() {
private val interceptor: PupilInterceptor = { chain ->
val request = chain.request()
+ Log.d("PUPILD", "REQ")
+
if (rateLimitHost.matches(request.url().host()))
rateLimiter.acquire()
+ Log.d("PUPILD", "ACQ ${request.url()}")
+
var response = chain.proceed(request)
var limit = 5
diff --git a/build.gradle b/build.gradle
index 90ef53b7..b6357ca6 100644
--- a/build.gradle
+++ b/build.gradle
@@ -25,6 +25,7 @@ allprojects {
mavenCentral()
jcenter()
maven { url "https://jitpack.io" }
+ maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
maven { url "https://guardian.github.io/maven/repo-releases/" }
}
}