From 94009fb08ea5fd15fb80ed0cae32d8b26b81e703 Mon Sep 17 00:00:00 2001 From: Myzel394 <50424412+Myzel394@users.noreply.github.com> Date: Wed, 20 Nov 2024 17:06:46 +0100 Subject: [PATCH] feat(templates): Add port templates --- src/routes/port.ts | 11 +++-- src/utils/renderer.ts | 2 +- templates/base.html.njk | 5 +++ templates/index.html.njk | 5 --- templates/port.html.njk | 96 ++++++++++++++++++++++++++++++++++++++++ templates/port.txt.njk | 1 + 6 files changed, 111 insertions(+), 9 deletions(-) create mode 100644 templates/port.html.njk create mode 100644 templates/port.txt.njk diff --git a/src/routes/port.ts b/src/routes/port.ts index 942ba1b..5f40846 100644 --- a/src/routes/port.ts +++ b/src/routes/port.ts @@ -4,6 +4,7 @@ import { z } from "zod"; import * as IP from "ip"; import realIP from "../middlewares/real-ip"; import presentation from "../middlewares/presentation"; +import render from "../utils/renderer"; export const portRoute = new Hono(); @@ -55,12 +56,14 @@ portRoute.get("/:port", realIP, presentation, async context => { const result = await connectToAddress(ip, port, { timeout }); - return context.json({ + return render(context, "port", { + port: port, isOpen: result.isOpen, + ip: ip, }); }); -portRoute.get("/:ip/:port", async context => { +portRoute.get("/:ip/:port", realIP, presentation, async context => { const rawData = { ip: context.req.param("ip"), port: context.req.param("port"), @@ -92,7 +95,9 @@ portRoute.get("/:ip/:port", async context => { const result = await connectToAddress(ip, port, { timeout }); - return context.json({ + return render(context, "port", { + port: port, isOpen: result.isOpen, + ip: ip, }); }); diff --git a/src/utils/renderer.ts b/src/utils/renderer.ts index 9e56dd3..7469c8b 100644 --- a/src/utils/renderer.ts +++ b/src/utils/renderer.ts @@ -4,7 +4,7 @@ import * as nunjucks from "nunjucks"; export default async function render( context: Context, - templateName: "index", + templateName: "index" | "port", ctx: Record, ) { const presentation = context.get("presentation") as PresentationType; diff --git a/templates/base.html.njk b/templates/base.html.njk index 12802e8..8018eca 100644 --- a/templates/base.html.njk +++ b/templates/base.html.njk @@ -33,6 +33,11 @@ border-radius: 1em; padding: 3em; } + + h2 { + margin-top: 0; + text-align: left; + } {% block header %}{% endblock %} diff --git a/templates/index.html.njk b/templates/index.html.njk index dfd7416..1d32b5a 100644 --- a/templates/index.html.njk +++ b/templates/index.html.njk @@ -2,11 +2,6 @@ {% block header %} +{% endblock %} + +{% block main %} +

Am I Open

+ + {{ ip }} + + {% if isOpen %} +
+
+ +

Port {{port}} is open

+
+ {% else %} +
+
+ +

Port {{port}} is closed

+
+ {% endif %} +{% endblock %} diff --git a/templates/port.txt.njk b/templates/port.txt.njk new file mode 100644 index 0000000..59d8068 --- /dev/null +++ b/templates/port.txt.njk @@ -0,0 +1 @@ +{% if isOpen %}open{% else %}closed{% endif %}