[Ru]Remanga. Fix issue with merging part of image (#5924)
Co-authored-by: pavkazzz <me@pavkazzz.ru>
This commit is contained in:
parent
d25127f865
commit
98e61270b6
|
@ -5,7 +5,7 @@ ext {
|
|||
extName = 'Remanga'
|
||||
pkgNameSuffix = 'ru.remanga'
|
||||
extClass = '.Remanga'
|
||||
extVersionCode = 17
|
||||
extVersionCode = 18
|
||||
libVersion = '1.2'
|
||||
}
|
||||
|
||||
|
|
|
@ -14,14 +14,10 @@ import android.annotation.SuppressLint
|
|||
import android.annotation.TargetApi
|
||||
import android.app.Application
|
||||
import android.content.SharedPreferences
|
||||
import android.graphics.Bitmap
|
||||
import android.graphics.BitmapFactory
|
||||
import android.graphics.Canvas
|
||||
import android.os.Build
|
||||
import android.support.v7.preference.EditTextPreference
|
||||
import android.support.v7.preference.PreferenceScreen
|
||||
import android.text.InputType
|
||||
import android.util.Base64
|
||||
import android.widget.Toast
|
||||
import com.github.salomonbrys.kotson.fromJson
|
||||
import com.google.gson.Gson
|
||||
|
@ -53,7 +49,6 @@ import org.jsoup.Jsoup
|
|||
import rx.Observable
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import java.io.ByteArrayOutputStream
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Date
|
||||
import java.util.Locale
|
||||
|
@ -329,44 +324,22 @@ class Remanga : ConfigurableSource, HttpSource() {
|
|||
}
|
||||
} catch (e: JsonSyntaxException) {
|
||||
val page = gson.fromJson<SeriesWrapperDto<PaidPageDto>>(body)
|
||||
page.content.pages.mapIndexed { i, element ->
|
||||
Page(i, element.joinToString { it.link })
|
||||
val result = mutableListOf<Page>()
|
||||
page.content.pages.forEach {
|
||||
it.forEach {
|
||||
result.add(Page(result.size, "", it.link))
|
||||
}
|
||||
}
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
||||
override fun fetchImageUrl(page: Page): Observable<String> {
|
||||
val urls = page.url.split(", ")
|
||||
val res = this.combineImage(urls)
|
||||
return Observable.just("https://127.0.0.1/?imagebase64,$res")
|
||||
}
|
||||
override fun fetchImageUrl(page: Page): Observable<String> = Observable.just(page.imageUrl!!)
|
||||
|
||||
override fun imageUrlRequest(page: Page): Request = throw NotImplementedError("Unused")
|
||||
|
||||
override fun imageUrlParse(response: Response): String = throw NotImplementedError("Unused")
|
||||
|
||||
private fun combineImage(pages: List<String>): String {
|
||||
val refererHeaders = headersBuilder().build()
|
||||
val s = client.newCall(GET(pages[0], refererHeaders)).execute().body()!!.bytes()
|
||||
val b = BitmapFactory.decodeByteArray(s, 0, s.size)
|
||||
|
||||
val cs = Bitmap.createBitmap(b.width, b.height * pages.size, Bitmap.Config.ARGB_8888)
|
||||
val comboImage = Canvas(cs)
|
||||
var totalHeight = b.height
|
||||
comboImage.drawBitmap(b, 0f, 0f, null)
|
||||
for (i in 1 until pages.size) {
|
||||
val bytes = client.newCall(GET(pages[i], refererHeaders)).execute().body()!!.bytes()
|
||||
val bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.size)
|
||||
comboImage.drawBitmap(bitmap, 0f, (b.height * i).toFloat(), null)
|
||||
totalHeight += bitmap.getHeight()
|
||||
}
|
||||
cs.reconfigure(cs.getWidth(), totalHeight, cs.getConfig())
|
||||
|
||||
val output = ByteArrayOutputStream()
|
||||
cs.compress(Bitmap.CompressFormat.JPEG, 100, output)
|
||||
return Base64.encodeToString(output.toByteArray(), Base64.DEFAULT)
|
||||
}
|
||||
|
||||
override fun imageRequest(page: Page): Request {
|
||||
val refererHeaders = headersBuilder().build()
|
||||
return GET(page.imageUrl!!, refererHeaders)
|
||||
|
|
Loading…
Reference in New Issue