Compare commits

...

2 commits

Author SHA1 Message Date
TheKodeToad 18143913b8 Merge pull request 'Fix HTTP hanging and redirects' (#5) from TheKodeToad/http-fix into mistress
Some checks failed
Publish to snapshot maven / build (push) Failing after 31s
Reviewed-on: #5
Reviewed-by: owlsys <owlsys@noreply.localhost>
2024-09-07 05:58:49 -04:00
TheKodeToad 022d170c0a
Fix HTTP hanging and redirects 2024-09-04 20:42:27 +01:00
2 changed files with 10 additions and 9 deletions

View file

@ -46,7 +46,8 @@ gradlePlugin {
tasks.jar { tasks.jar {
manifest { manifest {
attributes("Implementation-Version" to version, attributes(
"Implementation-Version" to version,
"Implementation-Date" to Date(), "Implementation-Date" to Date(),
"Implementation-Name" to project.name "Implementation-Name" to project.name
) )

View file

@ -17,6 +17,8 @@ import kotlin.io.path.notExists
object CachingHttpClient { object CachingHttpClient {
private val CLIENT = HttpClient.newBuilder().followRedirects(HttpClient.Redirect.NORMAL).build()
fun downloadTo(uri: URI, path: Path, allowOverwrite: Boolean) { fun downloadTo(uri: URI, path: Path, allowOverwrite: Boolean) {
if (allowOverwrite || path.notExists()) { if (allowOverwrite || path.notExists()) {
path.createParentDirectories() path.createParentDirectories()
@ -39,15 +41,13 @@ object CachingHttpClient {
} }
fun getUncached(uri: URI): InputStream { fun getUncached(uri: URI): InputStream {
HttpClient.newHttpClient().use { return CLIENT.send(
return it.send(
HttpRequest.newBuilder().uri(uri).header( HttpRequest.newBuilder().uri(uri).header(
"User-Agent", "User-Agent",
"FrogMC Phytotelma/" + CachingHttpClient.javaClass.`package`.implementationVersion "FrogMC Phytotelma/" + CachingHttpClient.javaClass.`package`.implementationVersion
).build(), BodyHandlers.ofInputStream() ).build(), BodyHandlers.ofInputStream()
).body() ).body()
} }
}
private fun getCacheFile(uri: URI): Path { private fun getCacheFile(uri: URI): Path {
val path = PhytotelmaPlugin.globalCacheDir.resolve("httpCache") val path = PhytotelmaPlugin.globalCacheDir.resolve("httpCache")