forked from Cookies_Github_mirror/AquaDX
[O] Ongeki: User unpaged apis
This commit is contained in:
@@ -25,6 +25,7 @@ typealias SpecialHandler = RequestContext.() -> Any?
|
||||
fun BaseHandler.toSpecial() = { ctx: RequestContext -> handle(ctx.data) }
|
||||
|
||||
typealias PagedHandler = RequestContext.() -> List<Any>
|
||||
typealias PagedExtraHandler = RequestContext.() -> Pair<List<Any>, JDict>
|
||||
typealias AddFn = RequestContext.() -> PagedProcessor
|
||||
typealias PagePost = (MutJDict) -> Unit
|
||||
data class PagedProcessor(val add: JDict?, val fn: PagedHandler, var post: PagePost? = null)
|
||||
@@ -75,4 +76,21 @@ abstract class MeowApi(val serialize: (String, Any) -> String) {
|
||||
val minTime = millis() - (1000 * 60)
|
||||
pageCache.entries.removeIf { it.value.l < minTime }
|
||||
}
|
||||
|
||||
// Used because maimai and ongeki does not actually require paging implementation
|
||||
fun String.unpaged(key: String? = null, fn: PagedHandler) {
|
||||
val k = key ?: (this.replace("Get", "").firstCharLower() + "List")
|
||||
this {
|
||||
val l = fn(this)
|
||||
mapOf("userId" to uid, "nextIndex" to 0, "length" to l.size, k to l)
|
||||
}
|
||||
}
|
||||
|
||||
fun String.unpagedExtra(key: String? = null, fn: PagedExtraHandler) {
|
||||
val k = key ?: (this.replace("Get", "").firstCharLower() + "List")
|
||||
this {
|
||||
val (l, e) = fn(this)
|
||||
mapOf("userId" to uid, "nextIndex" to 0, "length" to l.size, k to l) + e
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user