From b052f741d935abd2f51423abf3fcda9157844b5c Mon Sep 17 00:00:00 2001 From: "netop://ウィビ" Date: Sat, 11 Apr 2026 14:42:43 -0700 Subject: initial commit --- src/routes/api/blog.json/+server.ts | 51 +++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/routes/api/blog.json/+server.ts (limited to 'src/routes/api/blog.json') diff --git a/src/routes/api/blog.json/+server.ts b/src/routes/api/blog.json/+server.ts new file mode 100644 index 0000000..f416647 --- /dev/null +++ b/src/routes/api/blog.json/+server.ts @@ -0,0 +1,51 @@ + + + +/*** IMPORT ------------------------------------------- ***/ + +import { error, json } from "@sveltejs/kit"; + +/*** EXPORT ------------------------------------------- ***/ + +export const POST = async({ fetch, request }) => { + try { + const { filename } = await request.json(); + + const response = await fetch(`https://blog.webb.page/${String(filename)}`, { + headers: { "Content-Type": "text/plain" }, + method: "GET" + }); + + const memo = parseMemo(await response.text()); + memo.push(` [READ]`, "\n"); + + return json({ content: memo.join("\n") }); + } catch(welp) { + console.error(`Error fetching memo: ${String(welp)}`); + return error(500); + } +}; + +/*** HELPER ------------------------------------------- ***/ + +function parseMemo(text: string): string { + const intro = text.split(/^Body$/m)[0]; + const lines = intro.split("\n").filter(Boolean); + const format = [""]; + let firstLine = ""; + + lines.map((line, index) => { + if (index === 1) + firstLine = " " + line.split(/\s+\B/)[1].trim(); + + if (index === 2) { + firstLine += ` • ${line.trim()}`; + format.push(firstLine); + } + + if (index === 4) + format.push(" " + line.trim()); + }); + + return format; +} -- cgit v1.2.3