新增 requestWithoutUA

通过增加特定标识使用无UA请求,适用于网络导入书源等
用法:http://xxx.xxx/xxxx#requestWithoutUA
pull/2587/head
adhu2018 3 years ago
parent feae7bd149
commit 8a5bd630b3
  1. 13
      app/src/main/java/io/legado/app/help/http/HttpHelper.kt
  2. 6
      app/src/main/java/io/legado/app/ui/association/ImportBookSourceViewModel.kt
  3. 6
      app/src/main/java/io/legado/app/ui/association/ImportHttpTtsViewModel.kt
  4. 6
      app/src/main/java/io/legado/app/ui/association/ImportReplaceRuleViewModel.kt
  5. 6
      app/src/main/java/io/legado/app/ui/association/ImportRssSourceViewModel.kt
  6. 6
      app/src/main/java/io/legado/app/ui/association/ImportThemeViewModel.kt
  7. 6
      app/src/main/java/io/legado/app/ui/association/ImportTxtTocRuleViewModel.kt

@ -7,6 +7,8 @@ import io.legado.app.help.http.cronet.CronetInterceptor
import io.legado.app.help.http.cronet.CronetLoader import io.legado.app.help.http.cronet.CronetLoader
import io.legado.app.utils.NetworkUtils import io.legado.app.utils.NetworkUtils
import okhttp3.* import okhttp3.*
import org.jsoup.Connection
import org.jsoup.Jsoup
import java.net.InetSocketAddress import java.net.InetSocketAddress
import java.net.Proxy import java.net.Proxy
import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.ConcurrentHashMap
@ -38,6 +40,17 @@ val cookieJar by lazy {
} }
} }
fun requestWithoutUA(url: String): Connection.Response {
val response = Jsoup.connect(url.replace("#requestWithoutUA", ""))
.sslSocketFactory(SSLHelper.unsafeSSLSocketFactory)
.ignoreContentType(true)
.followRedirects(false)
.headers(mapOf("User-Agent" to ""))
.method(Connection.Method.GET)
.execute()
return response
}
val okHttpClient: OkHttpClient by lazy { val okHttpClient: OkHttpClient by lazy {
val specs = arrayListOf( val specs = arrayListOf(
ConnectionSpec.MODERN_TLS, ConnectionSpec.MODERN_TLS,

@ -14,6 +14,7 @@ import io.legado.app.help.book.ContentProcessor
import io.legado.app.help.config.AppConfig import io.legado.app.help.config.AppConfig
import io.legado.app.help.http.newCallResponseBody import io.legado.app.help.http.newCallResponseBody
import io.legado.app.help.http.okHttpClient import io.legado.app.help.http.okHttpClient
import io.legado.app.help.http.requestWithoutUA
import io.legado.app.help.source.SourceHelp import io.legado.app.help.source.SourceHelp
import io.legado.app.utils.* import io.legado.app.utils.*
@ -127,12 +128,17 @@ class ImportBookSourceViewModel(app: Application) : BaseViewModel(app) {
} }
private suspend fun importSourceUrl(url: String) { private suspend fun importSourceUrl(url: String) {
if (url.indexOf("#requestWithoutUA")>-1) {
val res = requestWithoutUA(url).body()
allSources.addAll(BookSource.fromJsonArray(res).getOrThrow())
} else {
okHttpClient.newCallResponseBody { okHttpClient.newCallResponseBody {
url(url) url(url)
}.byteStream().let { }.byteStream().let {
allSources.addAll(BookSource.fromJsonArray(it).getOrThrow()) allSources.addAll(BookSource.fromJsonArray(it).getOrThrow())
} }
} }
}
private fun comparisonSource() { private fun comparisonSource() {
execute { execute {

@ -9,6 +9,7 @@ import io.legado.app.data.entities.HttpTTS
import io.legado.app.exception.NoStackTraceException import io.legado.app.exception.NoStackTraceException
import io.legado.app.help.http.newCallResponseBody import io.legado.app.help.http.newCallResponseBody
import io.legado.app.help.http.okHttpClient import io.legado.app.help.http.okHttpClient
import io.legado.app.help.http.requestWithoutUA
import io.legado.app.help.http.text import io.legado.app.help.http.text
import io.legado.app.utils.isAbsUrl import io.legado.app.utils.isAbsUrl
import io.legado.app.utils.isJsonArray import io.legado.app.utils.isJsonArray
@ -88,12 +89,17 @@ class ImportHttpTtsViewModel(app: Application) : BaseViewModel(app) {
} }
private suspend fun importSourceUrl(url: String) { private suspend fun importSourceUrl(url: String) {
if (url.indexOf("#requestWithoutUA")>-1) {
val res = requestWithoutUA(url).body()
importSourceAwait(res)
} else {
okHttpClient.newCallResponseBody { okHttpClient.newCallResponseBody {
url(url) url(url)
}.text().let { }.text().let {
importSourceAwait(it) importSourceAwait(it)
} }
} }
}
private fun comparisonSource() { private fun comparisonSource() {
execute { execute {

@ -11,6 +11,7 @@ import io.legado.app.help.ReplaceAnalyzer
import io.legado.app.help.config.AppConfig import io.legado.app.help.config.AppConfig
import io.legado.app.help.http.newCallResponseBody import io.legado.app.help.http.newCallResponseBody
import io.legado.app.help.http.okHttpClient import io.legado.app.help.http.okHttpClient
import io.legado.app.help.http.requestWithoutUA
import io.legado.app.help.http.text import io.legado.app.help.http.text
import io.legado.app.utils.isAbsUrl import io.legado.app.utils.isAbsUrl
import io.legado.app.utils.isJsonArray import io.legado.app.utils.isJsonArray
@ -110,12 +111,17 @@ class ImportReplaceRuleViewModel(app: Application) : BaseViewModel(app) {
} }
private suspend fun importUrl(url: String) { private suspend fun importUrl(url: String) {
if (url.indexOf("#requestWithoutUA")>-1) {
val res = requestWithoutUA(url).body()
importAwait(res)
} else {
okHttpClient.newCallResponseBody { okHttpClient.newCallResponseBody {
url(url) url(url)
}.text("utf-8").let { }.text("utf-8").let {
importAwait(it) importAwait(it)
} }
} }
}
private fun comparisonSource() { private fun comparisonSource() {
execute { execute {

@ -12,6 +12,7 @@ import io.legado.app.exception.NoStackTraceException
import io.legado.app.help.config.AppConfig import io.legado.app.help.config.AppConfig
import io.legado.app.help.http.newCallResponseBody import io.legado.app.help.http.newCallResponseBody
import io.legado.app.help.http.okHttpClient import io.legado.app.help.http.okHttpClient
import io.legado.app.help.http.requestWithoutUA
import io.legado.app.help.source.SourceHelp import io.legado.app.help.source.SourceHelp
import io.legado.app.utils.* import io.legado.app.utils.*
@ -121,6 +122,10 @@ class ImportRssSourceViewModel(app: Application) : BaseViewModel(app) {
} }
private suspend fun importSourceUrl(url: String) { private suspend fun importSourceUrl(url: String) {
if (url.indexOf("#requestWithoutUA")>-1) {
val res = requestWithoutUA(url).body()
importSource(res)
} else {
okHttpClient.newCallResponseBody { okHttpClient.newCallResponseBody {
url(url) url(url)
}.byteStream().let { body -> }.byteStream().let { body ->
@ -133,6 +138,7 @@ class ImportRssSourceViewModel(app: Application) : BaseViewModel(app) {
} }
} }
} }
}
private fun comparisonSource() { private fun comparisonSource() {
execute { execute {

@ -8,6 +8,7 @@ import io.legado.app.exception.NoStackTraceException
import io.legado.app.help.config.ThemeConfig import io.legado.app.help.config.ThemeConfig
import io.legado.app.help.http.newCallResponseBody import io.legado.app.help.http.newCallResponseBody
import io.legado.app.help.http.okHttpClient import io.legado.app.help.http.okHttpClient
import io.legado.app.help.http.requestWithoutUA
import io.legado.app.help.http.text import io.legado.app.help.http.text
import io.legado.app.utils.* import io.legado.app.utils.*
@ -83,12 +84,17 @@ class ImportThemeViewModel(app: Application) : BaseViewModel(app) {
} }
private suspend fun importSourceUrl(url: String) { private suspend fun importSourceUrl(url: String) {
if (url.indexOf("#requestWithoutUA")>-1) {
val res = requestWithoutUA(url).body()
importSourceAwait(res)
} else {
okHttpClient.newCallResponseBody { okHttpClient.newCallResponseBody {
url(url) url(url)
}.text().let { }.text().let {
importSourceAwait(it) importSourceAwait(it)
} }
} }
}
private fun comparisonSource() { private fun comparisonSource() {
execute { execute {

@ -9,6 +9,7 @@ import io.legado.app.data.entities.TxtTocRule
import io.legado.app.exception.NoStackTraceException import io.legado.app.exception.NoStackTraceException
import io.legado.app.help.http.newCallResponseBody import io.legado.app.help.http.newCallResponseBody
import io.legado.app.help.http.okHttpClient import io.legado.app.help.http.okHttpClient
import io.legado.app.help.http.requestWithoutUA
import io.legado.app.help.http.text import io.legado.app.help.http.text
import io.legado.app.utils.* import io.legado.app.utils.*
@ -86,12 +87,17 @@ class ImportTxtTocRuleViewModel(app: Application) : BaseViewModel(app) {
} }
private suspend fun importSourceUrl(url: String) { private suspend fun importSourceUrl(url: String) {
if (url.indexOf("#requestWithoutUA")>-1) {
val res = requestWithoutUA(url).body()
importSourceAwait(res)
} else {
okHttpClient.newCallResponseBody { okHttpClient.newCallResponseBody {
url(url) url(url)
}.text().let { }.text().let {
importSourceAwait(it) importSourceAwait(it)
} }
} }
}
private fun comparisonSource() { private fun comparisonSource() {
execute { execute {

Loading…
Cancel
Save