Implement verification panel synchronization with BullMQ integration

- Introduced a new `verificationPanelSync` job to handle posting and updating the verification panel in Discord channels via BullMQ.
- Enhanced the `syncVerificationPanel` function to manage panel updates and error handling, ensuring proper feedback for synchronization issues.
- Updated the WebUI to support verification panel management, including improved error messages for timeout and posting failures.
- Added localization entries for new error messages related to verification panel synchronization in both English and German.
- Refactored existing verification logic to accommodate the new synchronization process, improving overall functionality and user experience.
This commit is contained in:
TheOnlyMace
2026-07-25 15:55:13 +02:00
parent 67ac16d36b
commit ef1803f0ab
10 changed files with 278 additions and 64 deletions

View File

@@ -15,6 +15,7 @@
"unsavedChanges": "Du hast ungespeicherte Änderungen",
"saveSuccess": "Änderungen gespeichert",
"saveError": "Änderungen konnten nicht gespeichert werden",
"networkError": "Netzwerkfehler",
"optional": "Optional",
"back": "Zurück",
"comingSoon": "Demnächst verfügbar",
@@ -562,7 +563,7 @@
},
"verification": {
"title": "Verifizierung",
"description": "Modus, Rollen und Anforderungen für die Mitglieder-Verifizierung.",
"description": "Modus, Rollen und Anforderungen. Beim Speichern (aktiviert, mit Kanal und Rolle) wird das Verifizierungs-Panel im gewählten Kanal gepostet bzw. aktualisiert.",
"enabledLabel": "Verifizierung aktiviert",
"mode": "Modus",
"modes": {
@@ -594,7 +595,11 @@
"altBlockOnMatchHint": "Nutzt die konfigurierte Fehlschlag-Aktion (Kick/Ban/Keine). Aus = nur markieren, trotzdem verifizieren.",
"altIpWindowDays": "IP-Fenster (Tage)",
"altInviteWindowHours": "Invite-Cluster-Fenster (Stunden)",
"altMaxAccountsPerInvite": "Max. Accounts pro Invite (Cluster)"
"altMaxAccountsPerInvite": "Max. Accounts pro Invite (Cluster)",
"errors": {
"panelTimeout": "Der Bot hat das Verifizierungs-Panel nicht rechtzeitig bestätigt. Es wird möglicherweise noch gepostet — prüfe den Kanal und die Bot-Berechtigungen, dann speichere erneut.",
"panelNotPosted": "Das Verifizierungs-Panel konnte nicht im Discord-Kanal erstellt werden. Prüfe Bot-Berechtigungen (Kanal sehen, Nachrichten senden, Embeds)."
}
},
"leveling": {
"title": "Leveling & XP",

View File

@@ -15,6 +15,7 @@
"unsavedChanges": "You have unsaved changes",
"saveSuccess": "Changes saved",
"saveError": "Could not save changes",
"networkError": "Network error",
"back": "Back",
"comingSoon": "Coming soon",
"close": "Close",
@@ -562,7 +563,7 @@
},
"verification": {
"title": "Verification",
"description": "Mode, roles and requirements for member verification.",
"description": "Mode, roles and requirements. Saving (enabled, with channel and role) posts or updates the verification panel in the selected channel.",
"enabledLabel": "Verification enabled",
"mode": "Mode",
"modes": {
@@ -594,7 +595,11 @@
"altBlockOnMatchHint": "Uses the configured fail action (Kick/Ban/None). Off = flag only, still verify.",
"altIpWindowDays": "IP window (days)",
"altInviteWindowHours": "Invite cluster window (hours)",
"altMaxAccountsPerInvite": "Max accounts per invite (cluster)"
"altMaxAccountsPerInvite": "Max accounts per invite (cluster)",
"errors": {
"panelTimeout": "The bot did not confirm the verification panel in time. It may still be posting — check the channel and bot permissions, then save again.",
"panelNotPosted": "The verification panel could not be created in the Discord channel. Check bot permissions (View Channel, Send Messages, Embed Links)."
}
},
"leveling": {
"title": "Leveling & XP",