fix(rss): get enclosure from SyndEntry attributes first (#799)
This commit is contained in:
parent
1578ba6887
commit
26b8bc2e14
app/src
main/java/me/ash/reader/infrastructure/rss
test/java/me/ash/reader/infrastructure/rss
@ -120,12 +120,19 @@ class RssHelper @Inject constructor(
|
||||
rawDescription = (content ?: desc) ?: "",
|
||||
shortDescription = Readability.parseToText(desc ?: content, syndEntry.link).take(110),
|
||||
fullContent = content,
|
||||
img = findThumbnail(content ?: desc),
|
||||
img = findThumbnail(syndEntry) ?: findThumbnail(content ?: desc),
|
||||
link = syndEntry.link ?: "",
|
||||
updateAt = preDate,
|
||||
)
|
||||
}
|
||||
|
||||
fun findThumbnail(syndEntry: SyndEntry): String? {
|
||||
if (syndEntry.enclosures.isNullOrEmpty()) {
|
||||
return null
|
||||
}
|
||||
return syndEntry.enclosures.first()?.url
|
||||
}
|
||||
|
||||
fun findThumbnail(text: String?): String? {
|
||||
text ?: return null
|
||||
val enclosure = enclosureRegex.find(text)?.groupValues?.get(1)
|
||||
|
@ -71,4 +71,13 @@ class RssHelperTest {
|
||||
Assert.assertEquals(enclosureUrlString1, rssHelper.findThumbnail(imageHtmlCase1))
|
||||
Assert.assertEquals(imageUrlString, rssHelper.findThumbnail(imageHtmlCase2))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testEnclosureNoFilenameExtension() {
|
||||
val result = "https://pic.clubic.com/v1/images/1882727/raw"
|
||||
val case = """
|
||||
<enclosure url="$result" type="image/jpeg" length="0"/>
|
||||
"""
|
||||
Assert.assertEquals(result, rssHelper.findThumbnail(case))
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user