mirror of https://github.com/readrops/Readrops.git
Concatenate jsonfeed authors when they are several
This commit is contained in:
parent
c742c4fbf2
commit
22fe77d5cf
|
@ -16,11 +16,23 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"url": "url 2",
|
"url": "url 2",
|
||||||
"name": "Author 2"
|
"name": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"url": "url 3",
|
"url": "url 3",
|
||||||
"name": "Author 3"
|
"name": "Author 3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "url 4",
|
||||||
|
"name": "Author 4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "url 5",
|
||||||
|
"name": "Author 5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "url 6",
|
||||||
|
"name": "Author 6"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,7 +51,7 @@ class JSONItemsAdapterTest {
|
||||||
assertEquals(item.description, "This is a summary")
|
assertEquals(item.description, "This is a summary")
|
||||||
assertEquals(item.content, "content_html")
|
assertEquals(item.content, "content_html")
|
||||||
assertEquals(item.imageLink, "https://image.com")
|
assertEquals(item.imageLink, "https://image.com")
|
||||||
assertEquals(item.author, "Author 1")
|
assertEquals(item.author, "Author 1, Author 3, Author 4, Author 5, ...")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -57,6 +57,7 @@ class JSONItemsAdapter : JsonAdapter<List<Item>>() {
|
||||||
7 -> pubDate = DateUtils.stringToLocalDateTime(reader.nextString())
|
7 -> pubDate = DateUtils.stringToLocalDateTime(reader.nextString())
|
||||||
8 -> author = parseAuthor(reader) // jsonfeed 1.0
|
8 -> author = parseAuthor(reader) // jsonfeed 1.0
|
||||||
9 -> author = parseAuthors(reader) // jsonfeed 1.1
|
9 -> author = parseAuthors(reader) // jsonfeed 1.1
|
||||||
|
else -> reader.skipValue()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -86,9 +87,6 @@ class JSONItemsAdapter : JsonAdapter<List<Item>>() {
|
||||||
return author
|
return author
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the first author of the array
|
|
||||||
*/
|
|
||||||
private fun parseAuthors(reader: JsonReader): String? {
|
private fun parseAuthors(reader: JsonReader): String? {
|
||||||
val authors = arrayListOf<String?>()
|
val authors = arrayListOf<String?>()
|
||||||
reader.beginArray()
|
reader.beginArray()
|
||||||
|
@ -98,7 +96,10 @@ class JSONItemsAdapter : JsonAdapter<List<Item>>() {
|
||||||
}
|
}
|
||||||
|
|
||||||
reader.endArray()
|
reader.endArray()
|
||||||
return if (authors.filterNotNull().isNotEmpty()) authors.filterNotNull().first() else null
|
|
||||||
|
// here, nextNullableString doesn't check if authors values are empty
|
||||||
|
return if (authors.filterNot { author -> author.isNullOrEmpty() }.isNotEmpty())
|
||||||
|
authors.filterNot { author -> author.isNullOrEmpty() }.joinToString(limit = 4) else null
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun validateItem(item: Item) {
|
private fun validateItem(item: Item) {
|
||||||
|
@ -110,7 +111,7 @@ class JSONItemsAdapter : JsonAdapter<List<Item>>() {
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
val names: JsonReader.Options = JsonReader.Options.of("id", "url", "title", "content_html", "content_text",
|
val names: JsonReader.Options = JsonReader.Options.of("id", "url", "title",
|
||||||
"summary", "image", "date_published", "author", "authors")
|
"content_html", "content_text", "summary", "image", "date_published", "author", "authors")
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue