Bernhard
11/18/2020, 11:54 AMRyan
11/18/2020, 11:58 AMRyan
11/18/2020, 11:58 AMBernhard
11/18/2020, 11:59 AMRyan
11/18/2020, 12:00 PMBernhard
11/18/2020, 12:00 PMBernhard
11/18/2020, 12:00 PMkqr
11/18/2020, 12:25 PMBernhard
11/18/2020, 12:26 PMkqr
11/18/2020, 12:26 PMkqr
11/18/2020, 12:26 PMBernhard
11/18/2020, 12:26 PMBernhard
11/18/2020, 12:26 PMBernhard
11/18/2020, 12:27 PMBernhard
11/18/2020, 12:27 PMkqr
11/18/2020, 12:27 PMkqr
11/18/2020, 12:27 PMBernhard
11/18/2020, 12:27 PMBernhard
11/18/2020, 12:28 PMval hasMore = true
generateSequence(0, { it + maximumPageSize })
.takeWhile { hasMore }
.map { offset ->
val end = offset + maximumPageSize
val targetFileName = "${offset}-${end}__${download.targetFileName}"
val paginatedDownload = download.copy(
targetFileName = targetFileName,
urlParameters = paginateUrlParameters(offset)
)
val importer = HttpImporter(paginatedDownload)
importer.run(targetDirectory)
}
Bernhard
11/18/2020, 12:28 PMBernhard
11/18/2020, 12:28 PMBernhard
11/18/2020, 12:29 PMBernhard
11/18/2020, 12:32 PMBernhard
11/18/2020, 12:34 PMkqr
11/18/2020, 12:45 PMRob Elliot
11/18/2020, 2:12 PMdata class Page<T>(
val elements: List<T>,
val offset: Int,
val hasMore: Boolean
)
val allThings: Sequence<Thing> =
generateSequence(getPage(0)) { page ->
if (page.hasMore)
getPage(page.offset + page.elements.size)
else null
}
.flatMap { it.elements.asSequence() }