Five new features: - /permissions scan: audits admin/ban roles, dangerous bot permissions, public channels, empty/duplicate/useless roles, too-many-admins warning. - /panel create: fixed info panels (rules/support/bewerbung/partner/ rollen/events/faq) with buttons wired into the existing ticket/ register/partner flows, FAQ panels get a question dropdown. - Image moderation: QR-code detection in message attachments via jimp+jsqr (pure JS, no native build deps) with a small scam-pattern check; opt-in toggle in dashboard settings since decoding costs per-message. - Invite tracker extension: now resolves the inviter (not just the code), tracks suspicious joins per invite, and the dashboard growth page gets an invite breakdown + recent-joins table. - Ticket categories: /ticketconfig lets each ticket topic get its own ping role and a modal question template shown before the channel is created; topics without config behave exactly as before. Also fixes two rough edges found along the way: the welcome embed had no way to attach an image despite the backend already supporting it (added URL/file-upload fields + live preview), and Reaction Roles required typing raw role IDs into a textarea (replaced with a proper role picker). Incidentally repairs node_modules/.bin symlinks that were committed as literal broken shell-script text instead of real symlinks. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
44 lines
1.1 KiB
JSON
44 lines
1.1 KiB
JSON
{
|
|
"name": "papo-discord-bot",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"type": "commonjs",
|
|
"prisma": {
|
|
"schema": "src/database/schema.prisma"
|
|
},
|
|
"scripts": {
|
|
"build:web": "npm --prefix frontend run build",
|
|
"dev": "ts-node-dev --respawn --transpile-only src/index.ts",
|
|
"build": "npm run build:web && tsc",
|
|
"start": "node dist/index.js"
|
|
},
|
|
"dependencies": {
|
|
"@discordjs/opus": "^0.9.0",
|
|
"@discordjs/rest": "^2.2.0",
|
|
"@discordjs/voice": "^0.19.0",
|
|
"@prisma/client": "^5.4.2",
|
|
"@snazzah/davey": "^0.1.8",
|
|
"cookie-parser": "^1.4.6",
|
|
"discord-api-types": "^0.37.83",
|
|
"discord.js": "^14.14.1",
|
|
"dotenv": "^16.3.1",
|
|
"express": "^4.18.2",
|
|
"express-session": "^1.17.3",
|
|
"ffmpeg-static": "^5.2.0",
|
|
"jimp": "^1.6.1",
|
|
"jsqr": "^1.4.0",
|
|
"libsodium-wrappers": "^0.7.13",
|
|
"play-dl": "^1.9.7",
|
|
"sodium-native": "^4.0.4"
|
|
},
|
|
"devDependencies": {
|
|
"@types/cookie-parser": "^1.4.3",
|
|
"@types/express": "^4.17.21",
|
|
"@types/express-session": "^1.17.8",
|
|
"@types/node": "^20.4.2",
|
|
"prisma": "^5.4.2",
|
|
"ts-node-dev": "^2.0.0",
|
|
"typescript": "^5.2.2"
|
|
}
|
|
}
|