change in ticket renaming and flow

This commit is contained in:
indifferentketchup
2026-04-06 16:37:50 -05:00
parent 1496a96274
commit 4b984312a8
4 changed files with 58 additions and 42 deletions

View File

@@ -33,14 +33,29 @@ function getSenderLocal(senderEmail) {
return (senderEmail || 'unknown').split('@')[0].toLowerCase();
}
function makeTicketName({ escalated, claimed }, ticket, guild) {
function toDiscordSafeName(str) {
return str
.toLowerCase()
.replace(/\s+/g, '-')
.replace(/[^\p{L}\p{N}\p{Emoji_Presentation}-]/gu, '')
.replace(/-{2,}/g, '-')
.replace(/^-+|-+$/g, '')
.slice(0, 100);
}
// claimerEmoji and creatorNickname are only used in the claimed branch.
// Callers that do not pass them (e.g. escalation rename) get the unclaimed name as before.
function makeTicketName({ escalated, claimed }, ticket, guild, claimerEmoji, creatorNickname) {
const senderLocal = getSenderLocal(ticket.senderEmail);
const num = ticket.ticketNumber || 1;
if (escalated) {
return claimed
? `e-ticket-${senderLocal}-${num}`
return (claimed && claimerEmoji && creatorNickname)
? toDiscordSafeName(`e-${claimerEmoji}-${creatorNickname}-${num}`)
: `escalated-ticket-${senderLocal}-${num}`;
}
if (claimed && claimerEmoji && creatorNickname) {
return toDiscordSafeName(`${claimerEmoji}-${creatorNickname}-${num}`);
}
return `ticket-${senderLocal}-${num}`;
}