Spaces:
Paused
Paused
| import express from "express" | |
| import { Welcome2, Goodbye } from "knights-canvas" | |
| const app = express() | |
| const PORT = process.env.PORT || 7860 | |
| // Helper validasi query | |
| function validateParams(params, required) { | |
| for (let r of required) { | |
| if (!params[r]) return r | |
| } | |
| return null | |
| } | |
| // Welcome2 API | |
| app.get("/api/welcome", async (req, res) => { | |
| try { | |
| const required = ["username", "group", "avatar", "bg", "member"] | |
| const missing = validateParams(req.query, required) | |
| if (missing) { | |
| return res.status(400).json({ error: `Parameter '${missing}' wajib diisi` }) | |
| } | |
| const { username, group, avatar, bg, member } = req.query | |
| const image = await new Welcome2() | |
| .setUsername(username) | |
| .setGroupname(group) | |
| .setAvatar(avatar) | |
| .setBg(bg) | |
| .setMember(member) | |
| .toAttachment() | |
| res.set("Content-Type", "image/png") | |
| res.send(image.toBuffer()) | |
| } catch (err) { | |
| res.status(500).json({ error: err.message }) | |
| } | |
| }) | |
| // Goodbye API | |
| app.get("/api/goodbye", async (req, res) => { | |
| try { | |
| const required = ["username", "group", "avatar", "bg", "member", "icon"] | |
| const missing = validateParams(req.query, required) | |
| if (missing) { | |
| return res.status(400).json({ error: `Parameter '${missing}' wajib diisi` }) | |
| } | |
| const { username, group, avatar, bg, member, icon } = req.query | |
| const image = await new Goodbye() | |
| .setUsername(username) | |
| .setGuildName(group) | |
| .setAvatar(avatar) | |
| .setGuildIcon(icon) | |
| .setBackground(bg) | |
| .setMemberCount(member) | |
| .toAttachment() | |
| res.set("Content-Type", "image/png") | |
| res.send(image.toBuffer()) | |
| } catch (err) { | |
| res.status(500).json({ error: err.message }) | |
| } | |
| }) | |
| app.listen(PORT, () => console.log(`API running on port ${PORT}`)) | |