封面链接支持修改headers

pull/332/head
AndyBernie 5 years ago
parent 94cd21297e
commit d6c344b539
  1. 3
      app/src/main/java/io/legado/app/help/ImageLoader.kt
  2. 20
      app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt

@ -9,6 +9,7 @@ import com.bumptech.glide.Glide
import com.bumptech.glide.RequestBuilder import com.bumptech.glide.RequestBuilder
import io.legado.app.utils.isAbsUrl import io.legado.app.utils.isAbsUrl
import io.legado.app.utils.isContentPath import io.legado.app.utils.isContentPath
import io.legado.app.model.analyzeRule.AnalyzeUrl
import java.io.File import java.io.File
object ImageLoader { object ImageLoader {
@ -19,7 +20,7 @@ object ImageLoader {
fun load(context: Context, path: String?): RequestBuilder<Drawable> { fun load(context: Context, path: String?): RequestBuilder<Drawable> {
return when { return when {
path.isNullOrEmpty() -> Glide.with(context).load(path) path.isNullOrEmpty() -> Glide.with(context).load(path)
path.isAbsUrl() -> Glide.with(context).load(path) path.isAbsUrl() -> Glide.with(context).load(AnalyzeUrl(path).getGlideUrl())
path.isContentPath() -> Glide.with(context).load(Uri.parse(path)) path.isContentPath() -> Glide.with(context).load(Uri.parse(path))
else -> try { else -> try {
Glide.with(context).load(File(path)) Glide.with(context).load(File(path))

@ -22,7 +22,8 @@ import java.net.URLEncoder
import java.util.* import java.util.*
import java.util.regex.Pattern import java.util.regex.Pattern
import javax.script.SimpleBindings import javax.script.SimpleBindings
import com.bumptech.glide.load.model.GlideUrl
import com.bumptech.glide.load.model.LazyHeaders
/** /**
* Created by GKF on 2018/1/24. * Created by GKF on 2018/1/24.
@ -346,9 +347,7 @@ class AnalyzeUrl(
} }
@Throws(Exception::class) @Throws(Exception::class)
fun getImageBytes( fun getImageBytes(tag: String): ByteArray? {
tag: String
): ByteArray? {
//资源为本站的资源,保留cookie //资源为本站的资源,保留cookie
//图片盗链的不保留当前的cookie,可由js生成图片源站的cookie //图片盗链的不保留当前的cookie,可由js生成图片源站的cookie
val cookie = CookieStore.getCookie(tag) val cookie = CookieStore.getCookie(tag)
@ -403,6 +402,19 @@ class AnalyzeUrl(
return response.body() return response.body()
} }
@Throws(Exception::class)
fun getGlideUrl(): Any? {
var glideUrl: Any = url
if(headerMap.isNotEmpty()) {
val Headers = LazyHeaders.Builder()
headerMap.forEach {(key, value) ->
Headers.addHeader(key, value)
}
glideUrl = GlideUrl(url, Headers.build())
}
return glideUrl
}
data class UrlOption( data class UrlOption(
val method: String?, val method: String?,
val charset: String?, val charset: String?,

Loading…
Cancel
Save