refactor: resolve Detekt issues found in metadata-extractor

This commit is contained in:
Harsh Shandilya 2022-10-02 16:12:42 +05:30
parent 1d761b1f6e
commit 52ac8346b3
No known key found for this signature in database
2 changed files with 20 additions and 19 deletions

View file

@ -1,7 +1,5 @@
<?xml version="1.0" ?> <?xml version="1.0" ?>
<SmellBaseline> <SmellBaseline>
<ManuallySuppressedIssues></ManuallySuppressedIssues> <ManuallySuppressedIssues></ManuallySuppressedIssues>
<CurrentIssues> <CurrentIssues></CurrentIssues>
<ID>ReturnCount:MetadataExtractor.kt$MetadataExtractor$suspend fun getExtractedMetadata(url: String): LinkMetadata</ID>
</CurrentIssues>
</SmellBaseline> </SmellBaseline>

View file

@ -18,22 +18,25 @@ constructor(
) { ) {
suspend fun getExtractedMetadata(url: String): LinkMetadata { suspend fun getExtractedMetadata(url: String): LinkMetadata {
val parsedUrl = url.toHttpUrlOrNull() ?: return makeDefault(url) return run {
if (!parsedUrl.isHttps) return makeDefault(url) val parsedUrl = url.toHttpUrlOrNull() ?: return@run null
val request = Request.Builder().url(parsedUrl).build() if (!parsedUrl.isHttps) return@run null
val htmlContent = val request = Request.Builder().url(parsedUrl).build()
okHttpClient.newCall(request).execute().use { response -> val htmlContent =
val body = response.body ?: return makeDefault(url) okHttpClient.newCall(request).execute().use { response ->
body.string() val body = response.body ?: return@run null
} body.string()
val extractedMetadata = crux.extractFrom(parsedUrl, Jsoup.parse(htmlContent, url)) }
val faviconUrl = extractedMetadata.urls[FAVICON_URL].toString() val extractedMetadata = crux.extractFrom(parsedUrl, Jsoup.parse(htmlContent, url))
val readingTime = extractedMetadata[DURATION_MS] val faviconUrl = extractedMetadata.urls[FAVICON_URL].toString()
return LinkMetadata( val readingTime = extractedMetadata[DURATION_MS]
url = url, LinkMetadata(
faviconUrl = faviconUrl, url = url,
readingTime = readingTime, faviconUrl = faviconUrl,
) readingTime = readingTime,
)
}
?: makeDefault(url)
} }
private fun makeDefault(url: String) = private fun makeDefault(url: String) =