Spaces:
Paused
Paused
File size: 1,806 Bytes
4ed058c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | 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}`))
|