From 19adc29d1deed946a76887535de50259834c48b4 Mon Sep 17 00:00:00 2001 From: RePod <RePod@users.noreply.github.com> Date: Tue, 19 Jan 2021 17:42:23 -0500 Subject: [PATCH] LANraragi: Safer tag parsing. (#5490) It was possible to get a null into the function and the following split() did not like it. --- src/all/lanraragi/build.gradle | 2 +- .../extension/all/lanraragi/LANraragi.kt | 29 ++++++++++--------- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/src/all/lanraragi/build.gradle b/src/all/lanraragi/build.gradle index dc5a8bdca..156f6af9e 100644 --- a/src/all/lanraragi/build.gradle +++ b/src/all/lanraragi/build.gradle @@ -5,7 +5,7 @@ ext { extName = 'LANraragi' pkgNameSuffix = 'all.lanraragi' extClass = '.LANraragi' - extVersionCode = 3 + extVersionCode = 4 libVersion = '1.2' } diff --git a/src/all/lanraragi/src/eu/kanade/tachiyomi/extension/all/lanraragi/LANraragi.kt b/src/all/lanraragi/src/eu/kanade/tachiyomi/extension/all/lanraragi/LANraragi.kt index 6b05409af..c1e54879f 100644 --- a/src/all/lanraragi/src/eu/kanade/tachiyomi/extension/all/lanraragi/LANraragi.kt +++ b/src/all/lanraragi/src/eu/kanade/tachiyomi/extension/all/lanraragi/LANraragi.kt @@ -430,26 +430,29 @@ open class LANraragi : ConfigurableSource, HttpSource() { return getTopResponse(response).request().url().queryParameter("start")!!.toInt() } - private fun getArtist(tags: String): String { - tags.split(',').forEach { + private fun getNSTag(tags: String?, tag: String): List<String>? { + tags?.split(',')?.forEach { if (it.contains(':')) { - val temp = it.trim().split(':') - - if (temp[0].equals("artist", true)) return temp[1] + val temp = it.trim().split(":", limit = 2) + if (temp[0].equals(tag, true)) return temp } } + return null + } + + private fun getArtist(tags: String?): String { + getNSTag(tags, "artist")?.let { + return it[1] + } + return "N/A" } - private fun getDateAdded(tags: String): String { - tags.split(',').forEach { - if (it.contains(':')) { - val temp = it.trim().split(':') - - // Pad Date Added LRR plugin (or user specified namespace) to milliseconds - if (temp[0].equals(latestNamespacePref, true)) return temp[1].padEnd(13, '0') - } + private fun getDateAdded(tags: String?): String { + getNSTag(tags, "date_added")?.let { + // Pad Date Added NS to milliseconds + return it[1].padEnd(13, '0') } return ""