handon.clubなど、API応答にリンクヘッダが複数ある場合に追加読み込みができなかった
This commit is contained in:
parent
63a9a666e9
commit
a5ce2e75c5
|
@ -88,19 +88,26 @@ open class TootApiResult(
|
|||
|
||||
log.d("array size=${array.size}")
|
||||
|
||||
val sv = response.header("Link")
|
||||
if (sv == null) {
|
||||
// https://handon.club/@highemerly/109755355021758238
|
||||
// https://mastodon.juggler.jp/@tateisu/109756228563804507
|
||||
// リンクヘッダが複数ある場合がある
|
||||
val linkHeaders = response.headers("Link")
|
||||
if( linkHeaders.isEmpty()){
|
||||
log.d("missing Link header")
|
||||
} else {
|
||||
// Link: <https://mastodon.juggler.jp/api/v1/timelines/home?limit=XX&max_id=405228>; rel="next",
|
||||
// <https://mastodon.juggler.jp/api/v1/timelines/home?limit=XX&since_id=436946>; rel="prev"
|
||||
val m = reLinkURL.matcher(sv)
|
||||
while (m.find()) {
|
||||
val url = m.groupEx(1)
|
||||
val rel = m.groupEx(2)
|
||||
// warning.d("Link %s,%s",rel,url);
|
||||
if ("next" == rel) linkOlder = url
|
||||
if ("prev" == rel) linkNewer = url
|
||||
}else{
|
||||
for( sv in linkHeaders){
|
||||
// Link: <https://mastodon.juggler.jp/api/v1/timelines/home?limit=XX&max_id=405228>; rel="next",
|
||||
// <https://mastodon.juggler.jp/api/v1/timelines/home?limit=XX&since_id=436946>; rel="prev"
|
||||
val m = reLinkURL.matcher(sv)
|
||||
while (m.find()) {
|
||||
val url = m.groupEx(1)
|
||||
val rel = m.groupEx(2)
|
||||
// warning.d("Link %s,%s",rel,url);
|
||||
when (rel) {
|
||||
"next" -> linkOlder = url
|
||||
"prev" -> linkNewer = url
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue