Address some OkHttp nullability issues

This commit is contained in:
Jobobby04 2022-09-03 19:55:30 -04:00
parent 0c1ac913cb
commit 6e1e42fefd
10 changed files with 14 additions and 15 deletions

View File

@ -169,12 +169,12 @@ class PagePreviewCache(private val context: Context) {
editor = diskCache.edit(key) ?: throw IOException("Unable to edit key") editor = diskCache.edit(key) ?: throw IOException("Unable to edit key")
// Get OutputStream and write page with Okio. // Get OutputStream and write page with Okio.
response.body!!.source().saveTo(editor.newOutputStream(0)) response.body.source().saveTo(editor.newOutputStream(0))
diskCache.flush() diskCache.flush()
editor.commit() editor.commit()
} finally { } finally {
response.body?.close() response.body.close()
editor?.abortUnlessCommitted() editor?.abortUnlessCommitted()
} }
} }

View File

@ -1087,7 +1087,7 @@ class EHentai(
.url(EH_API_BASE) .url(EH_API_BASE)
.post(json.toString().toRequestBody(JSON)) .post(json.toString().toRequestBody(JSON))
.build(), .build(),
).execute().body!!.string(), ).execute().body.string(),
) )
val obj = outJson["tokenlist"]!!.jsonArray.first().jsonObject val obj = outJson["tokenlist"]!!.jsonArray.first().jsonObject
@ -1216,7 +1216,7 @@ class EHentai(
if (response.isSuccessful) { if (response.isSuccessful) {
val body = ByteArrayOutputStream() val body = ByteArrayOutputStream()
.use { .use {
val bitmap = BitmapFactory.decodeStream(response.body!!.byteStream()) val bitmap = BitmapFactory.decodeStream(response.body.byteStream())
?: throw IOException("Null bitmap($thumbnailPreview)") ?: throw IOException("Null bitmap($thumbnailPreview)")
Bitmap.createBitmap( Bitmap.createBitmap(
bitmap, bitmap,

View File

@ -62,7 +62,7 @@ class NHentai(delegate: HttpSource, val context: Context) :
} }
override suspend fun parseIntoMetadata(metadata: NHentaiSearchMetadata, input: Response) { override suspend fun parseIntoMetadata(metadata: NHentaiSearchMetadata, input: Response) {
val json = GALLERY_JSON_REGEX.find(input.body?.string().orEmpty())!!.groupValues[1].replace( val json = GALLERY_JSON_REGEX.find(input.body.string())!!.groupValues[1].replace(
UNICODE_ESCAPE_REGEX, UNICODE_ESCAPE_REGEX,
) { it.groupValues[1].toInt(radix = 16).toChar().toString() } ) { it.groupValues[1].toInt(radix = 16).toChar().toString() }
val jsonResponse = jsonParser.decodeFromString<JsonResponse>(json) val jsonResponse = jsonParser.decodeFromString<JsonResponse>(json)

View File

@ -32,7 +32,7 @@ class AzukiHandler(currentClient: OkHttpClient, userAgent: String) {
} }
fun pageListParse(response: Response): List<Page> { fun pageListParse(response: Response): List<Page> {
return Json.parseToJsonElement(response.body!!.string()) return Json.parseToJsonElement(response.body.string())
.jsonObject["pages"]!! .jsonObject["pages"]!!
.jsonArray.mapIndexed { index, element -> .jsonArray.mapIndexed { index, element ->
val url = element.jsonObject["image_wm"]!!.jsonObject["webp"]!!.jsonArray[1].jsonObject["url"]!!.jsonPrimitive.content val url = element.jsonObject["image_wm"]!!.jsonObject["webp"]!!.jsonArray[1].jsonObject["url"]!!.jsonPrimitive.content

View File

@ -45,7 +45,7 @@ class ComikeyHandler(cloudflareClient: OkHttpClient, userAgent: String) {
} }
private fun getActualPageList(response: Response): Request? { private fun getActualPageList(response: Response): Request? {
val element = Json.parseToJsonElement(response.body!!.string()).jsonObject val element = Json.parseToJsonElement(response.body.string()).jsonObject
val ok = element["ok"]?.jsonPrimitive?.booleanOrNull ?: false val ok = element["ok"]?.jsonPrimitive?.booleanOrNull ?: false
if (ok.not()) { if (ok.not()) {
return null return null
@ -55,7 +55,7 @@ class ComikeyHandler(cloudflareClient: OkHttpClient, userAgent: String) {
} }
fun pageListParse(response: Response): List<Page> { fun pageListParse(response: Response): List<Page> {
return Json.parseToJsonElement(response.body!!.string()) return Json.parseToJsonElement(response.body.string())
.jsonObject["readingOrder"]!! .jsonObject["readingOrder"]!!
.jsonArray.mapIndexed { index, element -> .jsonArray.mapIndexed { index, element ->
val url = element.jsonObject["href"]!!.jsonPrimitive.content val url = element.jsonObject["href"]!!.jsonPrimitive.content

View File

@ -26,7 +26,7 @@ class MangaHotHandler(currentClient: OkHttpClient, userAgent: String) {
} }
fun pageListParse(response: Response): List<Page> { fun pageListParse(response: Response): List<Page> {
return Json.parseToJsonElement(response.body!!.string()) return Json.parseToJsonElement(response.body.string())
.jsonObject["content"]!!.jsonObject["contentUrls"]!! .jsonObject["content"]!!.jsonObject["contentUrls"]!!
.jsonArray.mapIndexed { index, element -> .jsonArray.mapIndexed { index, element ->
val url = element.jsonPrimitive.content val url = element.jsonPrimitive.content

View File

@ -40,7 +40,7 @@ class MangaPlusHandler(currentClient: OkHttpClient) {
} }
private fun pageListParse(response: Response): List<Page> { private fun pageListParse(response: Response): List<Page> {
val result = ProtoBuf.decodeFromByteArray<MangaPlusResponse>(response.body!!.bytes()) val result = ProtoBuf.decodeFromByteArray<MangaPlusResponse>(response.body.bytes())
if (result.success == null) { if (result.success == null) {
throw Exception("error getting images") throw Exception("error getting images")
@ -70,7 +70,7 @@ class MangaPlusHandler(currentClient: OkHttpClient) {
val response = chain.proceed(request) val response = chain.proceed(request)
val image = decodeImage(encryptionKey, response.body!!.bytes()) val image = decodeImage(encryptionKey, response.body.bytes())
val body = image.toResponseBody("image/jpeg".toMediaTypeOrNull()) val body = image.toResponseBody("image/jpeg".toMediaTypeOrNull())
return response.newBuilder().body(body).build() return response.newBuilder().body(body).build()

View File

@ -52,7 +52,7 @@ class MyAnimeList : API("https://api.jikan.moe/v3/") {
.toString() .toString()
val response = client.newCall(GET(apiUrl)).await() val response = client.newCall(GET(apiUrl)).await()
val body = withIOContext { response.body?.string() } ?: throw Exception("Null Response") val body = withIOContext { response.body.string() }
val data = Json.decodeFromString<JsonObject>(body) val data = Json.decodeFromString<JsonObject>(body)
val recommendations = data["recommendations"] as? JsonArray val recommendations = data["recommendations"] as? JsonArray
return recommendations?.filterIsInstance<JsonObject>()?.map { rec -> return recommendations?.filterIsInstance<JsonObject>()?.map { rec ->

View File

@ -292,7 +292,7 @@ class BrowserActionActivity : AppCompatActivity() {
token to it token to it
} }
}.flatMap { (token, response) -> }.flatMap { (token, response) ->
val audioFile = response.body!!.bytes() val audioFile = response.body.bytes()
httpClient.newCall( httpClient.newCall(
Request.Builder() Request.Builder()

View File

@ -7,8 +7,7 @@ import okhttp3.ResponseBody.Companion.toResponseBody
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
fun Response.interceptAsHtml(block: (Document) -> Unit): Response { fun Response.interceptAsHtml(block: (Document) -> Unit): Response {
val body = body return if (body.contentType()?.type == "text" &&
return if (body?.contentType()?.type == "text" &&
body.contentType()?.subtype == "html" body.contentType()?.subtype == "html"
) { ) {
val bodyString = body.string() val bodyString = body.string()