forked from openrs2/openrs2
Polar's site no longer hosts XTEA keys. Signed-off-by: Graham <gpe@openrs2.org>master
parent
5b8cd2964f
commit
a5dfbdd691
@ -1,50 +0,0 @@ |
||||
package org.openrs2.archive.key |
||||
|
||||
import kotlinx.coroutines.Dispatchers |
||||
import kotlinx.coroutines.future.await |
||||
import kotlinx.coroutines.withContext |
||||
import org.jsoup.Jsoup |
||||
import org.openrs2.http.charset |
||||
import org.openrs2.http.checkStatusCode |
||||
import java.net.URI |
||||
import java.net.http.HttpClient |
||||
import java.net.http.HttpRequest |
||||
import java.net.http.HttpResponse |
||||
import java.time.Duration |
||||
import javax.inject.Inject |
||||
import javax.inject.Singleton |
||||
|
||||
@Singleton |
||||
public class PolarKeyDownloader @Inject constructor( |
||||
private val client: HttpClient, |
||||
jsonKeyReader: JsonKeyReader |
||||
) : JsonKeyDownloader(KeySource.POLAR, client, jsonKeyReader) { |
||||
override suspend fun getMissingUrls(seenUrls: Set<String>): Set<String> { |
||||
val request = HttpRequest.newBuilder(ENDPOINT) |
||||
.GET() |
||||
.timeout(Duration.ofSeconds(30)) |
||||
.build() |
||||
|
||||
val response = client.sendAsync(request, HttpResponse.BodyHandlers.ofInputStream()).await() |
||||
response.checkStatusCode() |
||||
|
||||
val document = withContext(Dispatchers.IO) { |
||||
Jsoup.parse(response.body(), response.charset?.name(), ENDPOINT.toString()) |
||||
} |
||||
|
||||
val urls = mutableSetOf<String>() |
||||
|
||||
for (element in document.select("a")) { |
||||
val url = element.absUrl("href") |
||||
if (url.endsWith(".json") && url !in seenUrls) { |
||||
urls += url |
||||
} |
||||
} |
||||
|
||||
return urls |
||||
} |
||||
|
||||
private companion object { |
||||
private val ENDPOINT = URI("https://archive.runestats.com/osrs/xtea/") |
||||
} |
||||
} |
Loading…
Reference in new issue