serve icon as a resource

This commit is contained in:
2025-07-20 13:27:39 +02:00
parent e1d5df024c
commit b40137464e
6 changed files with 61 additions and 9 deletions
@@ -16,6 +16,7 @@ public class HandlerKernel implements HttpHandler {
handlers.add(new GetDiscordInviteByGuildId());
// Static endpoints
handlers.add(new IconEndpoint());
handlers.add(new MainEndpoint());
}
@@ -0,0 +1,51 @@
package me.youhavetrouble.inviter.http.endpoints;
import com.sun.net.httpserver.HttpExchange;
import me.youhavetrouble.inviter.Main;
import org.jetbrains.annotations.NotNull;
import java.io.IOException;
import java.io.InputStream;
import java.util.regex.Pattern;
public class IconEndpoint implements EndpointHandler {
private final Pattern pathPattern = Pattern.compile("^/icon$");
private final byte[] imageContent;
public IconEndpoint() {
byte[] rawTemplate = null;
try (InputStream resource = this.getClass().getResourceAsStream("/asset/icon.png")) {
rawTemplate = resource.readAllBytes();
} catch (IOException | NullPointerException e) {
Main.LOGGER.warn("Failed to load template for main endpoint", e);
}
this.imageContent = rawTemplate;
}
@NotNull
@Override
public Pattern pathPattern() {
return pathPattern;
}
@Override
public void handle(@NotNull HttpExchange exchange) throws IOException {
if (imageContent == null) {
exchange.sendResponseHeaders(404, -1);
return;
}
if (!exchange.getRequestMethod().equals("GET")) {
exchange.sendResponseHeaders(405, -1);
return;
}
exchange.getResponseHeaders().set("Content-Type", "image/png");
exchange.sendResponseHeaders(200, imageContent.length);
exchange.getResponseBody().write(imageContent);
exchange.getResponseBody().close();
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

@@ -10,12 +10,12 @@
<meta name="og:type" content="website"/>
<meta name="og:title" content="Discord Inviter"/>
<meta name="og:description" content="A simple tool to invite users to a Discord server"/>
<meta name="og:image" content="data:image/png;base64,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"/>
<meta name="og:image" content="/icon"/>
<meta name="og:url" content="{{base_url}}"/>
<meta name="twitter:title" content="Discord Inviter"/>
<meta name="twitter:image" content="data:image/png;base64,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"/>
<meta name="twitter:image" content="/icon"/>
<meta name="twitter:description" content="A simple tool to invite users to a Discord server"/>
<link rel="icon" type="image/x-icon" href="data:image/png;base64,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" >
<link rel="icon" type="image/x-icon" href="/icon" >
<title>Discord Inviter</title>
<style>
:root {
+3 -3
View File
@@ -10,12 +10,12 @@
<meta name="og:type" content="website"/>
<meta name="og:title" content="Discord Inviter"/>
<meta name="og:description" content="A simple tool to invite users to a Discord server"/>
<meta name="og:image" content="data:image/png;base64,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"/>
<meta name="og:image" content="/icon"/>
<meta name="og:url" content="{{base_url}}"/>
<meta name="twitter:title" content="Discord Inviter"/>
<meta name="twitter:image" content="data:image/png;base64,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"/>
<meta name="twitter:image" content="/icon"/>
<meta name="twitter:description" content="A simple tool to invite users to a Discord server"/>
<link rel="icon" type="image/x-icon" href="data:image/png;base64,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" >
<link rel="icon" type="image/x-icon" href="/icon" >
<title>Discord Inviter</title>
<style>
:root {
@@ -10,12 +10,12 @@
<meta name="og:type" content="website"/>
<meta name="og:title" content="Discord Inviter"/>
<meta name="og:description" content="A simple tool to invite users to a Discord server"/>
<meta name="og:image" content="data:image/png;base64,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"/>
<meta name="og:image" content="/icon"/>
<meta name="og:url" content="{{base_url}}"/>
<meta name="twitter:title" content="Discord Inviter"/>
<meta name="twitter:image" content="data:image/png;base64,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"/>
<meta name="twitter:image" content="/icon"/>
<meta name="twitter:description" content="A simple tool to invite users to a Discord server"/>
<link rel="icon" type="image/x-icon" href="data:image/png;base64,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" >
<link rel="icon" type="image/x-icon" href="/icon" >
<title>Discord Inviter</title>
<style>
:root {