chore: Ajout du transcript fonctionnel pour les tickets

This commit is contained in:
UltraLionFr
2025-08-26 14:41:28 +02:00
parent bb22e65117
commit 4f1a0379ea
21 changed files with 778 additions and 41 deletions
+3 -3
View File
@@ -6,8 +6,9 @@ const {
ActionRowBuilder,
} = require('discord.js');
const { config, lang } = require('../../handlers/configLoader');
const { getTicketByChannel, closeTicket } = require('../../handlers/database');
const { getTicketByChannel } = require('../../handlers/database');
const { scheduleTicketClosure } = require('../../handlers/alertManager');
const { closeTicketWithTranscript } = require('../../handlers/ticketCloser');
const ms = require('ms');
module.exports = {
@@ -106,8 +107,7 @@ module.exports = {
});
scheduleTicketClosure(interaction.channel, alertDuration, async () => {
closeTicket(interaction.channel.id);
await interaction.channel.delete().catch(() => {});
await closeTicketWithTranscript(interaction.channel, interaction.user);
});
},
};
+6 -31
View File
@@ -1,10 +1,7 @@
const {
SlashCommandBuilder,
EmbedBuilder,
MessageFlags,
} = require('discord.js');
const { getTicketByChannel, closeTicket } = require('../../handlers/database');
const { config, lang } = require('../../handlers/configLoader');
const { SlashCommandBuilder, MessageFlags } = require('discord.js');
const { getTicketByChannel } = require('../../handlers/database');
const { lang } = require('../../handlers/configLoader');
const { closeTicketWithTranscript } = require('../../handlers/ticketCloser');
module.exports = {
data: new SlashCommandBuilder()
@@ -21,32 +18,10 @@ module.exports = {
});
}
closeTicket(interaction.channel.id);
await interaction.reply(lang.ticket.closing);
// Log fermeture
const logChannel = await interaction.client.channels
.fetch(config.logsChannel)
.catch(() => null);
if (logChannel) {
const embed = new EmbedBuilder()
.setTitle('🔒 Ticket fermé')
.addFields(
{ name: 'Salon', value: `${interaction.channel.name}`, inline: true },
{
name: 'Fermé par',
value: `${interaction.user.tag} (${interaction.user.id})`,
inline: true,
}
)
.setColor(0xe74c3c)
.setTimestamp();
logChannel.send({ embeds: [embed] });
}
setTimeout(() => {
interaction.channel.delete().catch(() => {});
setTimeout(async () => {
await closeTicketWithTranscript(interaction.channel, interaction.user);
}, 5000);
},
};
+1 -1
View File
@@ -5,7 +5,7 @@ const logger = require('../../handlers/logger');
module.exports = {
name: 'clientReady',
once: true,
async execute(client) {
async execute() {
const commands = getCommandsJSON();
const rest = new REST({ version: '10' }).setToken(
process.env.DISCORD_TOKEN
+34
View File
@@ -0,0 +1,34 @@
const fs = require('fs');
const path = require('path');
const express = require('express');
module.exports = {
name: 'clientReady',
once: true,
async execute() {
const app = express();
const transcriptsPath = path.join(__dirname, '../../transcripts');
app.use('/transcript', express.static(transcriptsPath));
app.get('/', (req, res) => {
res.send(
'✅ Serveur Transcript actif. Utilise /transcript/:id pour voir un ticket.'
);
});
app.get('/transcript/:id', (req, res) => {
const file = path.join(transcriptsPath, `${req.params.id}.html`);
if (fs.existsSync(file)) {
res.sendFile(file);
} else {
res.status(404).send('❌ Transcript introuvable');
}
});
const PORT = process.env.TRANSCRIPT_PORT || 3000;
app.listen(PORT, () => {
console.log(`🌐 Serveur Transcript dispo sur http://localhost:${PORT}`);
});
},
};
+144
View File
@@ -0,0 +1,144 @@
const fs = require('fs');
const path = require('path');
const { EmbedBuilder, StickerFormatType } = require('discord.js');
const { closeTicket } = require('./database');
const { config } = require('./configLoader');
async function generateTranscript(channel, user) {
const messages = await channel.messages.fetch({ limit: 100 });
const sorted = [...messages.values()].reverse();
let html = `
<html>
<head>
<meta charset="utf-8"/>
<title>Transcript - ${channel.name}</title>
<style>
body { font-family: sans-serif; background: #2c2f33; color: #fff; }
.msg { border-bottom: 1px solid #444; padding: 5px; }
.author { font-weight: bold; color: #7289da; }
.time { color: #999; font-size: 12px; }
img { max-width: 400px; margin-top: 5px; border-radius: 5px; }
.embed { border-left: 3px solid #7289da; margin: 5px; padding-left: 5px; background: #23272a; }
.sticker { margin-top: 10px; }
</style>
</head>
<body>
<h2>Transcript - ${channel.name}</h2>
`;
for (const msg of sorted) {
const time = msg.createdAt.toLocaleString();
const avatar = msg.author.displayAvatarURL();
let content = msg.content || '';
// Mentions
if (content) {
content = content.replace(/<@!?(\d+)>/g, (match, id) => {
const u = channel.client.users.cache.get(id);
return u ? `@${u.username}` : match;
});
// Emojis custom
content = content.replace(/<a?:\w+:(\d+)>/g, (match, id) => {
const isAnimated = match.startsWith('<a:');
const ext = isAnimated ? 'gif' : 'png';
return `<img src="https://cdn.discordapp.com/emojis/${id}.${ext}" height="24" style="vertical-align:middle;">`;
});
}
html += `
<div class="msg">
<img src="${avatar}" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">${msg.author.tag}</span>
<span class="time">(${time})</span>
<div style="white-space: pre-wrap; margin-left:37px;">${content}</div>
`;
// Pièces jointes
if (msg.attachments.size > 0) {
msg.attachments.forEach((att) => {
if (att.contentType?.startsWith('image/')) {
html += `<div class="attachment"><img src="${att.url}"/></div>`;
} else {
html += `<div class="attachment"><a href="${att.url}" target="_blank">📎 ${att.name}</a></div>`;
}
});
}
// Stickers
if (msg.stickers.size > 0) {
msg.stickers.forEach((sticker) => {
if (sticker.format === StickerFormatType.LOTTIE) {
html += `<div class="sticker">[Sticker Lottie non supporté]</div>`;
return;
}
const url = `https://cdn.discordapp.com/stickers/${sticker.id}.png`;
html += `
<div class="sticker">
<img src="${url}" alt="${sticker.name}"
style="width:320px; height:320px; border-radius:8px; display:block;"/>
<div style="color:#aaa; font-size:12px;">${sticker.name}</div>
</div>
`;
});
}
// Embeds
if (msg.embeds.length > 0) {
msg.embeds.forEach((embed) => {
html += `<div class="embed">`;
if (embed.title) html += `<div><strong>${embed.title}</strong></div>`;
if (embed.description) html += `<div>${embed.description}</div>`;
if (embed.url)
html += `<div><a href="${embed.url}" target="_blank">🔗 Lien</a></div>`;
if (embed.thumbnail?.url) {
html += `<img src="${embed.thumbnail.url}" style="max-width:150px;"/>`;
}
html += `</div>`;
});
}
html += `</div>`;
}
html += `</body></html>`;
const transcriptsDir = path.join(__dirname, '../transcripts');
if (!fs.existsSync(transcriptsDir)) fs.mkdirSync(transcriptsDir);
const filePath = path.join(transcriptsDir, `${channel.id}.html`);
fs.writeFileSync(filePath, html, 'utf8');
// Logs
const logChannel = await channel.client.channels
.fetch(config.logsChannel)
.catch(() => null);
if (logChannel) {
const embed = new EmbedBuilder()
.setTitle('🔒 Ticket fermé')
.addFields(
{ name: 'Salon', value: `${channel.name}`, inline: true },
{
name: 'Fermé par',
value: user ? `${user.tag} (${user.id})` : 'Automatique',
inline: true,
},
{
name: 'Transcript',
value: `http://localhost:3000/transcript/${channel.id}`,
}
)
.setColor(0xe74c3c)
.setTimestamp();
await logChannel.send({ embeds: [embed] });
}
}
async function closeTicketWithTranscript(channel, user) {
await generateTranscript(channel, user);
closeTicket(channel.id);
await channel.delete().catch(() => {});
}
module.exports = { closeTicketWithTranscript };
+2 -6
View File
@@ -1,6 +1,5 @@
const { PermissionFlagsBits } = require('discord.js');
const { closeTicket } = require('../handlers/database');
const { config, lang } = require('../handlers/configLoader');
const { closeTicketWithTranscript } = require('../handlers/ticketCloser');
module.exports = {
id: 'closeTicket',
@@ -17,13 +16,10 @@ module.exports = {
});
}
const channel = interaction.channel;
await interaction.reply({ content: lang.ticket.closing });
setTimeout(async () => {
closeTicket(channel.id);
await channel.delete().catch(() => {});
await closeTicketWithTranscript(interaction.channel, interaction.user);
}, 5000);
},
};
+2
View File
@@ -17,8 +17,10 @@
"dependencies": {
"@dotenvx/dotenvx": "^1.49.0",
"chalk": "^4.1.2",
"discord-html-transcripts": "^3.2.0",
"discord.js": "^14.22.1",
"dotenv": "^17.2.1",
"express": "^5.1.0",
"sql.js": "^1.13.0",
"yaml": "^2.8.1"
},
+27
View File
@@ -0,0 +1,27 @@
<html>
<head>
<meta charset="utf-8"/>
<title>Transcript - ticket-ultralion</title>
<style>
body { font-family: sans-serif; background: #2c2f33; color: #fff; }
.msg { border-bottom: 1px solid #444; padding: 5px; }
.author { font-weight: bold; color: #7289da; }
.time { color: #999; font-size: 12px; }
</style>
</head>
<body>
<h2>Transcript - ticket-ultralion</h2>
<div class="msg">
<span class="author">Bot Local#7738</span>
<span class="time">(26/08/2025 01:32:57)</span> :
<div>🎟️ Bonjour <@281113457833672706>, un membre du staff va bientôt te répondre.</div>
</div>
<div class="msg">
<span class="author">Bot Local#7738</span>
<span class="time">(26/08/2025 01:34:19)</span> :
<div>⏳ Fermeture du ticket dans 5 secondes...</div>
</div>
</body></html>
+51
View File
@@ -0,0 +1,51 @@
<html>
<head>
<meta charset="utf-8"/>
<title>Transcript - ticket-ultralion</title>
<style>
body { font-family: sans-serif; background: #2c2f33; color: #fff; }
.msg { border-bottom: 1px solid #444; padding: 5px; }
.author { font-weight: bold; color: #7289da; }
.time { color: #999; font-size: 12px; }
</style>
</head>
<body>
<h2>Transcript - ticket-ultralion</h2>
<div class="msg">
<span class="author">Bot Local#7738</span>
<span class="time">(26/08/2025 01:34:44)</span> :
<div>🎟️ Bonjour <@281113457833672706>, un membre du staff va bientôt te répondre.</div>
</div>
<div class="msg">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 01:34:47)</span> :
<div>https://tenor.com/view/frank-leboeuf-salut-c%27est-frank-leboeuf-vendez-votre-voiture-pub-gif-17219703131657425039</div>
</div>
<div class="msg">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 01:34:50)</span> :
<div>[Embed/Média]</div>
</div>
<div class="msg">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 01:34:52)</span> :
<div>[Embed/Média]</div>
</div>
<div class="msg">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 01:34:54)</span> :
<div><a:pog:1151224290021220362></div>
</div>
<div class="msg">
<span class="author">Bot Local#7738</span>
<span class="time">(26/08/2025 01:34:57)</span> :
<div>⏳ Fermeture du ticket dans 5 secondes...</div>
</div>
</body></html>
+106
View File
@@ -0,0 +1,106 @@
<html>
<head>
<meta charset="utf-8"/>
<title>Transcript - ticket-ultralion</title>
<style>
body { font-family: sans-serif; background: #2c2f33; color: #fff; }
.msg { border-bottom: 1px solid #444; padding: 10px; }
.author { font-weight: bold; color: #7289da; }
.time { color: #999; font-size: 12px; margin-left: 5px; }
img { max-width: 400px; border-radius: 5px; margin-top: 5px; }
.attachment { margin-top: 5px; }
.embed { margin-left: 37px; border-left: 3px solid #7289da; padding-left: 8px; margin-top: 5px; }
</style>
</head>
<body>
<h2>Transcript - ticket-ultralion</h2>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/1213952671912820837/a_a72595917491af1a24c4af5b7174618f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">Bot Local#7738</span>
<span class="time">(26/08/2025 01:37:41)</span>
<div style="white-space: pre-wrap; margin-left:37px;">
🎟️ Bonjour @ultralion, un membre du staff va bientôt te répondre.
</div>
</div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 01:37:44)</span>
<div style="white-space: pre-wrap; margin-left:37px;">
qsdqsd
</div>
</div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 01:37:44)</span>
<div style="white-space: pre-wrap; margin-left:37px;">
qsd
</div>
</div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 01:37:45)</span>
<div style="white-space: pre-wrap; margin-left:37px;">
qsd
</div>
</div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 01:37:45)</span>
<div style="white-space: pre-wrap; margin-left:37px;">
qsd
</div>
</div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 01:37:49)</span>
<div style="white-space: pre-wrap; margin-left:37px;">
https://tenor.com/view/congratulations-congrats-gif-25269017
</div>
<div class="embed"><div><a href="https://tenor.com/view/congratulations-congrats-gif-25269017" target="_blank">🔗 Lien</a></div><img src="https://media.tenor.com/Bysws45JqI8AAAAe/congratulations-congrats.png" style="max-width:150px;"/></div></div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 01:37:51)</span>
<div style="white-space: pre-wrap; margin-left:37px;">
</div>
</div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 01:37:53)</span>
<div style="white-space: pre-wrap; margin-left:37px;">
</div>
</div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 01:37:56)</span>
<div style="white-space: pre-wrap; margin-left:37px;">
<a:pog:1151224290021220362>
</div>
</div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 01:37:59)</span>
<div style="white-space: pre-wrap; margin-left:37px;">
<:KEKW:771561273619644417>
</div>
</div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/1213952671912820837/a_a72595917491af1a24c4af5b7174618f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">Bot Local#7738</span>
<span class="time">(26/08/2025 01:38:02)</span>
<div style="white-space: pre-wrap; margin-left:37px;">
⏳ Fermeture du ticket dans 5 secondes...
</div>
</div></body></html>
+47
View File
@@ -0,0 +1,47 @@
<html>
<head>
<meta charset="utf-8"/>
<title>Transcript - ticket-ultralion</title>
<style>
body { font-family: sans-serif; background: #2c2f33; color: #fff; }
.msg { border-bottom: 1px solid #444; padding: 10px; }
.author { font-weight: bold; color: #7289da; }
.time { color: #999; font-size: 12px; margin-left: 5px; }
img { max-width: 400px; border-radius: 5px; margin-top: 5px; }
.attachment { margin-top: 5px; }
.embed { margin-left: 37px; border-left: 3px solid #7289da; padding-left: 8px; margin-top: 5px; }
</style>
</head>
<body>
<h2>Transcript - ticket-ultralion</h2>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/1213952671912820837/a_a72595917491af1a24c4af5b7174618f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">Bot Local#7738</span>
<span class="time">(26/08/2025 01:40:24)</span>
<div style="white-space: pre-wrap; margin-left:37px;">
🎟️ Bonjour @ultralion, un membre du staff va bientôt te répondre.
</div>
</div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 01:40:27)</span>
<div style="white-space: pre-wrap; margin-left:37px;">
</div>
<div class="sticker">
<img src="https://cdn.discordapp.com/stickers/982148542271455272.png" alt="bubz" style="max-height:100px;"/>
<div>bubz</div>
</div>
</div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/1213952671912820837/a_a72595917491af1a24c4af5b7174618f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">Bot Local#7738</span>
<span class="time">(26/08/2025 01:40:32)</span>
<div style="white-space: pre-wrap; margin-left:37px;">
⏳ Fermeture du ticket dans 5 secondes...
</div>
</div>
+55
View File
@@ -0,0 +1,55 @@
<html>
<head>
<meta charset="utf-8"/>
<title>Transcript - ticket-ultralion</title>
<style>
body { font-family: sans-serif; background: #2c2f33; color: #fff; }
.msg { border-bottom: 1px solid #444; padding: 5px; }
.author { font-weight: bold; color: #7289da; }
.time { color: #999; font-size: 12px; }
img { max-width: 400px; margin-top: 5px; border-radius: 5px; }
.embed { border-left: 3px solid #7289da; margin: 5px; padding-left: 5px; background: #23272a; }
.sticker { margin-top: 5px; }
</style>
</head>
<body>
<h2>Transcript - ticket-ultralion</h2>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/1213952671912820837/a_a72595917491af1a24c4af5b7174618f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">Bot Local#7738</span>
<span class="time">(26/08/2025 01:42:09)</span>
<div style="white-space: pre-wrap; margin-left:37px;">
🎟️ Bonjour @ultralion, un membre du staff va bientôt te répondre.
</div>
</div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 01:42:13)</span>
<div style="white-space: pre-wrap; margin-left:37px;">
</div>
<div class="sticker">
<img src="https://cdn.discordapp.com/stickers/982148542271455272.png" alt="bubz" style="max-width:400px; border-radius:5px;"/>
<div style="color:#aaa; font-size:12px;">bubz</div>
</div>
</div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 01:42:16)</span>
<div style="white-space: pre-wrap; margin-left:37px;">
<img src="https://cdn.discordapp.com/emojis/771561273619644417.png" height="24" style="vertical-align:middle;">
</div>
</div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/1213952671912820837/a_a72595917491af1a24c4af5b7174618f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">Bot Local#7738</span>
<span class="time">(26/08/2025 01:42:19)</span>
<div style="white-space: pre-wrap; margin-left:37px;">
⏳ Fermeture du ticket dans 5 secondes...
</div>
</div></body></html>
+1
View File
@@ -0,0 +1 @@
<html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="icon" type="image/png" href="https://cdn.discordapp.com/icons/1066466155163824250/22486abcf6d019eea89fe90019ae266a.png?size=16"/><title>ticket-ultralion</title><script>document.addEventListener("click",t=>{let e=t.target;if(!e)return;let o=e?.getAttribute("data-goto");if(o){let r=document.getElementById(`m-${o}`);r?(r.scrollIntoView({behavior:"smooth",block:"center"}),r.style.backgroundColor="rgba(148, 156, 247, 0.1)",r.style.transition="background-color 0.5s ease",setTimeout(()=>{r.style.backgroundColor="transparent"},1e3)):console.warn("Message ${goto} not found.")}});</script><script>window.$discordMessage={profiles:{"1213952671912820837":{"author":"Bot Local","avatar":"https://cdn.discordapp.com/avatars/1213952671912820837/a_a72595917491af1a24c4af5b7174618f.gif?size=64","roleColor":"#faefa7","roleName":"🤖 Bot","bot":true,"verified":false},"281113457833672706":{"author":"UltraLion","avatar":"https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif?size=64","roleColor":"#64a3f5","roleName":"🎩・Owner","bot":false,"verified":false}}}</script><script type="module" src="https://cdn.jsdelivr.net/npm/@derockdev/discord-components-core@^3.6.1/dist/derockdev-discord-components-core/derockdev-discord-components-core.esm.js"></script></head><body style="margin:0;min-height:100vh"><discord-messages style="min-height:100vh"><discord-header guild="Serveur Test" channel="ticket-ultralion" icon="https://cdn.discordapp.com/icons/1066466155163824250/22486abcf6d019eea89fe90019ae266a.webp?size=128">This is the start of #ticket-ultralion channel.</discord-header><discord-message id="m-1409685757345534006" timestamp="2025-08-25T23:47:55.246Z" edited="false" highlight="false" profile="1213952671912820837"><discord-custom-emoji name="🎟️" url="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/1f39f.svg" embed-emoji="false"></discord-custom-emoji> Bonjour <discord-mention type="user">UltraLion</discord-mention>, un membre du staff va bientôt te répondre.</discord-message><discord-message id="m-1409685769756348501" timestamp="2025-08-25T23:47:58.205Z" edited="false" highlight="false" profile="281113457833672706"><a href="https://tenor.com/view/cat-sticker-line-sticker-bye-sticker-goodbye-sticker-hand-wave-gif-2765574846828776801" target="_blank" rel="noreferrer">https://tenor.com/view/cat-sticker-line-sticker-bye-sticker-goodbye-sticker-hand-wave-gif-2765574846828776801</a><discord-embed slot="embeds" thumbnail="https://images-ext-1.discordapp.net/external/I8iXq_EGAPCmIx-eM3WHgyBRPg82yzXD0om1z2rI-KA/https/media.tenor.com/JmFLq6j8DWEAAAAe/cat-sticker-line-sticker.png" url="https://tenor.com/view/cat-sticker-line-sticker-bye-sticker-goodbye-sticker-hand-wave-gif-2765574846828776801"></discord-embed></discord-message><discord-message id="m-1409685776370897047" timestamp="2025-08-25T23:47:59.782Z" edited="false" highlight="false" profile="281113457833672706"></discord-message><discord-message id="m-1409685782821601351" timestamp="2025-08-25T23:48:01.320Z" edited="false" highlight="false" profile="281113457833672706"></discord-message><discord-message id="m-1409685793777123469" timestamp="2025-08-25T23:48:03.932Z" edited="false" highlight="false" profile="281113457833672706"><discord-custom-emoji name="KEKW" url="https://cdn.discordapp.com/emojis/771561273619644417.png" embed-emoji="false" large-emoji="true"></discord-custom-emoji></discord-message><discord-message id="m-1409685802006483077" timestamp="2025-08-25T23:48:05.894Z" edited="false" highlight="false" profile="1213952671912820837"><discord-command slot="reply" profile="281113457833672706" command="/close"></discord-command><discord-custom-emoji name="⏳" url="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/23f3.svg" embed-emoji="false"></discord-custom-emoji> Fermeture du ticket dans 5 secondes...</discord-message><div style="text-align:center;width:100%">Exporté 6 messages </div></discord-messages></body></html>
+11
View File
@@ -0,0 +1,11 @@
<html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="icon" type="image/png" href="https://cdn.discordapp.com/icons/1066466155163824250/22486abcf6d019eea89fe90019ae266a.png?size=16"/><title>ticket-ultralion</title><script>document.addEventListener("click",t=>{let e=t.target;if(!e)return;let o=e?.getAttribute("data-goto");if(o){let r=document.getElementById(`m-${o}`);r?(r.scrollIntoView({behavior:"smooth",block:"center"}),r.style.backgroundColor="rgba(148, 156, 247, 0.1)",r.style.transition="background-color 0.5s ease",setTimeout(()=>{r.style.backgroundColor="transparent"},1e3)):console.warn("Message ${goto} not found.")}});</script><script>window.$discordMessage={profiles:{"1213952671912820837":{"author":"Bot Local","avatar":"https://cdn.discordapp.com/avatars/1213952671912820837/a_a72595917491af1a24c4af5b7174618f.gif?size=64","roleColor":"#faefa7","roleName":"🤖 Bot","bot":true,"verified":false},"281113457833672706":{"author":"UltraLion","avatar":"https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif?size=64","roleColor":"#64a3f5","roleName":"🎩・Owner","bot":false,"verified":false}}}</script><script type="module" src="https://cdn.jsdelivr.net/npm/@derockdev/discord-components-core@^3.6.1/dist/derockdev-discord-components-core/derockdev-discord-components-core.esm.js"></script></head><body style="margin:0;min-height:100vh"><discord-messages style="min-height:100vh"><discord-header guild="Serveur Test" channel="ticket-ultralion" icon="https://cdn.discordapp.com/icons/1066466155163824250/22486abcf6d019eea89fe90019ae266a.webp?size=128">This is the start of #ticket-ultralion channel.</discord-header><discord-message id="m-1409686368573198376" timestamp="2025-08-25T23:50:20.974Z" edited="false" highlight="false" profile="1213952671912820837"><discord-custom-emoji name="🎟️" url="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/1f39f.svg" embed-emoji="false"></discord-custom-emoji> Bonjour <discord-mention type="user">UltraLion</discord-mention>, un membre du staff va bientôt te répondre.</discord-message><discord-message id="m-1409686421551321119" timestamp="2025-08-25T23:50:33.605Z" edited="false" highlight="false" profile="281113457833672706"><a href="https://tenor.com/view/spongebob-cant-wait-impatient-anxious-eagerly-gif-12243170376163390127" target="_blank" rel="noreferrer">https://tenor.com/view/spongebob-cant-wait-impatient-anxious-eagerly-gif-12243170376163390127</a><discord-embed slot="embeds" thumbnail="https://images-ext-1.discordapp.net/external/GY9yDOeWvHPAGIxW6BrcwdQyxTBKElQ6B19kYGFPiOU/https/media.tenor.com/qeh6lwvN8q8AAAAe/spongebob-cant-wait.png" url="https://tenor.com/view/spongebob-cant-wait-impatient-anxious-eagerly-gif-12243170376163390127"></discord-embed></discord-message><discord-message id="m-1409686428253945977" timestamp="2025-08-25T23:50:35.203Z" edited="false" highlight="false" profile="281113457833672706"></discord-message><discord-message id="m-1409686442086764705" timestamp="2025-08-25T23:50:38.501Z" edited="false" highlight="false" profile="281113457833672706"></discord-message><discord-message id="m-1409686453965029508" timestamp="2025-08-25T23:50:41.333Z" edited="false" highlight="false" profile="281113457833672706"><discord-custom-emoji name="KEKW" url="https://cdn.discordapp.com/emojis/771561273619644417.png" embed-emoji="false" large-emoji="true"></discord-custom-emoji></discord-message><discord-message id="m-1409686464010256495" timestamp="2025-08-25T23:50:43.728Z" edited="false" highlight="false" profile="281113457833672706"><discord-custom-emoji name="pog" url="https://cdn.discordapp.com/emojis/1151224290021220362.gif" embed-emoji="false" large-emoji="true"></discord-custom-emoji></discord-message><discord-message id="m-1409686474445688843" timestamp="2025-08-25T23:50:46.216Z" edited="false" highlight="false" profile="1213952671912820837"><discord-command slot="reply" profile="281113457833672706" command="/close"></discord-command><discord-custom-emoji name="⏳" url="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/23f3.svg" embed-emoji="false"></discord-custom-emoji> Fermeture du ticket dans 5 secondes...</discord-message><div style="text-align:center;width:100%">Exporté 7 messages </div></discord-messages>
<div class="sticker">
<img src="https://cdn.discordapp.com/stickers/968620146031726662.png" alt="Hmmmm" style="max-width:300px; border-radius:5px;"/>
<div style="color:#aaa; font-size:12px;">Hmmmm</div>
</div>
<div class="sticker">
<img src="https://media.discordapp.net/stickers/1210284219998146590.gif" alt="danse" style="max-width:300px; border-radius:5px;"/>
<div style="color:#aaa; font-size:12px;">danse</div>
</div>
</body></html>
+7
View File
@@ -0,0 +1,7 @@
<html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="icon" type="image/png" href="https://cdn.discordapp.com/icons/1066466155163824250/22486abcf6d019eea89fe90019ae266a.png?size=16"/><title>ticket-ultralion</title><script>document.addEventListener("click",t=>{let e=t.target;if(!e)return;let o=e?.getAttribute("data-goto");if(o){let r=document.getElementById(`m-${o}`);r?(r.scrollIntoView({behavior:"smooth",block:"center"}),r.style.backgroundColor="rgba(148, 156, 247, 0.1)",r.style.transition="background-color 0.5s ease",setTimeout(()=>{r.style.backgroundColor="transparent"},1e3)):console.warn("Message ${goto} not found.")}});</script><script>window.$discordMessage={profiles:{"1213952671912820837":{"author":"Bot Local","avatar":"https://cdn.discordapp.com/avatars/1213952671912820837/a_a72595917491af1a24c4af5b7174618f.gif?size=64","roleColor":"#faefa7","roleName":"🤖 Bot","bot":true,"verified":false},"281113457833672706":{"author":"UltraLion","avatar":"https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif?size=64","roleColor":"#64a3f5","roleName":"🎩・Owner","bot":false,"verified":false}}}</script><script type="module" src="https://cdn.jsdelivr.net/npm/@derockdev/discord-components-core@^3.6.1/dist/derockdev-discord-components-core/derockdev-discord-components-core.esm.js"></script></head><body style="margin:0;min-height:100vh"><discord-messages style="min-height:100vh"><discord-header guild="Serveur Test" channel="ticket-ultralion" icon="https://cdn.discordapp.com/icons/1066466155163824250/22486abcf6d019eea89fe90019ae266a.webp?size=128">This is the start of #ticket-ultralion channel.</discord-header><discord-message id="m-1409687087371915335" timestamp="2025-08-25T23:53:12.349Z" edited="false" highlight="false" profile="1213952671912820837"><discord-custom-emoji name="🎟️" url="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/1f39f.svg" embed-emoji="false"></discord-custom-emoji> Bonjour <discord-mention type="user">UltraLion</discord-mention>, un membre du staff va bientôt te répondre.</discord-message><discord-message id="m-
<div class="sticker">
<img src="https://cdn.discordapp.com/stickers/982148542271455272.png" alt="bubz"
style="width:320px; height:320px; border-radius:8px; margin:5px 0;"/>
<div style="color:#aaa; font-size:12px;">bubz</div>
</div>
" timestamp="2025-08-25T23:53:16.144Z" edited="false" highlight="false" profile="281113457833672706"></discord-message><discord-message id="m-1409687118892109914" timestamp="2025-08-25T23:53:19.864Z" edited="false" highlight="false" profile="1213952671912820837"><discord-command slot="reply" profile="281113457833672706" command="/close"></discord-command><discord-custom-emoji name="⏳" url="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/23f3.svg" embed-emoji="false"></discord-custom-emoji> Fermeture du ticket dans 5 secondes...</discord-message><div style="text-align:center;width:100%">Exporté 3 messages </div></discord-messages></body></html>
+1
View File
@@ -0,0 +1 @@
<html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="icon" type="image/png" href="https://cdn.discordapp.com/icons/1066466155163824250/22486abcf6d019eea89fe90019ae266a.png?size=16"/><title>ticket-ultralion</title><script>document.addEventListener("click",t=>{let e=t.target;if(!e)return;let o=e?.getAttribute("data-goto");if(o){let r=document.getElementById(`m-${o}`);r?(r.scrollIntoView({behavior:"smooth",block:"center"}),r.style.backgroundColor="rgba(148, 156, 247, 0.1)",r.style.transition="background-color 0.5s ease",setTimeout(()=>{r.style.backgroundColor="transparent"},1e3)):console.warn("Message ${goto} not found.")}});</script><script>window.$discordMessage={profiles:{"1213952671912820837":{"author":"Bot Local","avatar":"https://cdn.discordapp.com/avatars/1213952671912820837/a_a72595917491af1a24c4af5b7174618f.gif?size=64","roleColor":"#faefa7","roleName":"🤖 Bot","bot":true,"verified":false},"281113457833672706":{"author":"UltraLion","avatar":"https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif?size=64","roleColor":"#64a3f5","roleName":"🎩・Owner","bot":false,"verified":false}}}</script><script type="module" src="https://cdn.jsdelivr.net/npm/@derockdev/discord-components-core@^3.6.1/dist/derockdev-discord-components-core/derockdev-discord-components-core.esm.js"></script></head><body style="margin:0;min-height:100vh"><discord-messages style="min-height:100vh"><discord-header guild="Serveur Test" channel="ticket-ultralion" icon="https://cdn.discordapp.com/icons/1066466155163824250/22486abcf6d019eea89fe90019ae266a.webp?size=128">This is the start of #ticket-ultralion channel.</discord-header><discord-message id="m-1409687630693662923" timestamp="2025-08-25T23:55:21.887Z" edited="false" highlight="false" profile="1213952671912820837"><discord-custom-emoji name="🎟️" url="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/1f39f.svg" embed-emoji="false"></discord-custom-emoji> Bonjour <discord-mention type="user">UltraLion</discord-mention>, un membre du staff va bientôt te répondre.</discord-message><discord-message id="m-1409687643964313601" timestamp="2025-08-25T23:55:25.051Z" edited="false" highlight="false" profile="281113457833672706"></discord-message><discord-message id="m-1409687655234408490" timestamp="2025-08-25T23:55:27.738Z" edited="false" highlight="false" profile="1213952671912820837"><discord-command slot="reply" profile="281113457833672706" command="/close"></discord-command><discord-custom-emoji name="⏳" url="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/23f3.svg" embed-emoji="false"></discord-custom-emoji> Fermeture du ticket dans 5 secondes...</discord-message><div style="text-align:center;width:100%">Exporté 3 messages </div></discord-messages></body></html>
+48
View File
@@ -0,0 +1,48 @@
<html>
<head>
<meta charset="utf-8"/>
<title>Transcript - ticket-ultralion</title>
<style>
body { font-family: sans-serif; background: #2c2f33; color: #fff; }
.msg { border-bottom: 1px solid #444; padding: 5px; }
.author { font-weight: bold; color: #7289da; }
.time { color: #999; font-size: 12px; }
img { max-width: 400px; margin-top: 5px; border-radius: 5px; }
.embed { border-left: 3px solid #7289da; margin: 5px; padding-left: 5px; background: #23272a; }
.sticker { margin-top: 10px; }
</style>
</head>
<body>
<h2>Transcript - ticket-ultralion</h2>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/1213952671912820837/a_a72595917491af1a24c4af5b7174618f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">Bot Local#7738</span>
<span class="time">(26/08/2025 01:57:53)</span>
<div style="white-space: pre-wrap; margin-left:37px;">
🎟️ Bonjour @ultralion, un membre du staff va bientôt te répondre.
</div>
</div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 01:57:59)</span>
<div style="white-space: pre-wrap; margin-left:37px;">
</div>
<div class="sticker">
<img src="https://cdn.discordapp.com/stickers/982148542271455272.png" alt="bubz"
style="width:320px; height:320px; border-radius:8px; display:block;"/>
<div style="color:#aaa; font-size:12px;">bubz</div>
</div>
</div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/1213952671912820837/a_a72595917491af1a24c4af5b7174618f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">Bot Local#7738</span>
<span class="time">(26/08/2025 01:58:02)</span>
<div style="white-space: pre-wrap; margin-left:37px;">
⏳ Fermeture du ticket dans 5 secondes...
</div>
</div></body></html>
+78
View File
@@ -0,0 +1,78 @@
<html>
<head>
<meta charset="utf-8"/>
<title>Transcript - ticket-ultralion</title>
<style>
body { font-family: sans-serif; background: #2c2f33; color: #fff; }
.msg { border-bottom: 1px solid #444; padding: 5px; }
.author { font-weight: bold; color: #7289da; }
.time { color: #999; font-size: 12px; }
img { max-width: 400px; margin-top: 5px; border-radius: 5px; }
.embed { border-left: 3px solid #7289da; margin: 5px; padding-left: 5px; background: #23272a; }
.sticker { margin-top: 10px; }
</style>
</head>
<body>
<h2>Transcript - ticket-ultralion</h2>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/1213952671912820837/a_a72595917491af1a24c4af5b7174618f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">Bot Local#7738</span>
<span class="time">(26/08/2025 02:10:16)</span>
<div style="white-space: pre-wrap; margin-left:37px;">
🎟️ Bonjour @ultralion, un membre du staff va bientôt te répondre.
</div>
</div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 02:10:21)</span>
<div style="white-space: pre-wrap; margin-left:37px;">
https://tenor.com/view/spongebob-cant-wait-impatient-anxious-eagerly-gif-12243170376163390127
</div>
<div class="embed"><div><a href="https://tenor.com/view/spongebob-cant-wait-impatient-anxious-eagerly-gif-12243170376163390127" target="_blank">🔗 Lien</a></div><img src="https://media.tenor.com/qeh6lwvN8q8AAAAe/spongebob-cant-wait.png" style="max-width:150px;"/></div></div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 02:10:23)</span>
<div style="white-space: pre-wrap; margin-left:37px;">
</div>
<div class="sticker">
<img src="https://cdn.discordapp.com/stickers/974279438470635580.png" alt="KEK"
style="width:320px; height:320px; border-radius:8px; display:block;"/>
<div style="color:#aaa; font-size:12px;">KEK</div>
</div>
</div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 02:10:27)</span>
<div style="white-space: pre-wrap; margin-left:37px;">
</div>
<div class="sticker">
<img src="https://cdn.discordapp.com/stickers/982148542271455272.png" alt="bubz"
style="width:320px; height:320px; border-radius:8px; display:block;"/>
<div style="color:#aaa; font-size:12px;">bubz</div>
</div>
</div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 02:10:29)</span>
<div style="white-space: pre-wrap; margin-left:37px;">
<img src="https://cdn.discordapp.com/emojis/1151224290021220362.gif" height="24" style="vertical-align:middle;">
</div>
</div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/1213952671912820837/a_a72595917491af1a24c4af5b7174618f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">Bot Local#7738</span>
<span class="time">(26/08/2025 02:10:32)</span>
<div style="white-space: pre-wrap; margin-left:37px;">
⏳ Fermeture du ticket dans 5 secondes...
</div>
</div></body></html>
+79
View File
@@ -0,0 +1,79 @@
<html>
<head>
<meta charset="utf-8"/>
<title>Transcript - ticket-ultralion</title>
<style>
body { font-family: sans-serif; background: #2c2f33; color: #fff; }
.msg { border-bottom: 1px solid #444; padding: 5px; }
.author { font-weight: bold; color: #7289da; }
.time { color: #999; font-size: 12px; }
img { max-width: 400px; margin-top: 5px; border-radius: 5px; }
.embed { border-left: 3px solid #7289da; margin: 5px; padding-left: 5px; background: #23272a; }
.sticker { margin-top: 10px; }
</style>
</head>
<body>
<h2>Transcript - ticket-ultralion</h2>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/1213952671912820837/a_a72595917491af1a24c4af5b7174618f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">Bot Local#7738</span>
<span class="time">(26/08/2025 02:13:01)</span>
<div style="white-space: pre-wrap; margin-left:37px;">🎟️ Bonjour @ultralion, un membre du staff va bientôt te répondre.</div></div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 02:13:05)</span>
<div style="white-space: pre-wrap; margin-left:37px;">qsdqsd</div></div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 02:13:05)</span>
<div style="white-space: pre-wrap; margin-left:37px;">qsd</div></div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 02:13:05)</span>
<div style="white-space: pre-wrap; margin-left:37px;">qs</div></div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 02:13:05)</span>
<div style="white-space: pre-wrap; margin-left:37px;">dqs</div></div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 02:13:06)</span>
<div style="white-space: pre-wrap; margin-left:37px;">d</div></div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 02:13:06)</span>
<div style="white-space: pre-wrap; margin-left:37px;">qsd</div></div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 02:13:07)</span>
<div style="white-space: pre-wrap; margin-left:37px;">qsdqsdqsdqsdqsd</div></div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 02:13:10)</span>
<div style="white-space: pre-wrap; margin-left:37px;"><img src="https://cdn.discordapp.com/emojis/715662755469852772.png" height="24" style="vertical-align:middle;"></div></div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 02:13:12)</span>
<div class="sticker">
<img src="https://cdn.discordapp.com/stickers/982148542271455272.png" alt="bubz"
style="width:320px; height:320px; border-radius:8px; display:block;"/>
<div style="color:#aaa; font-size:12px;">bubz</div>
</div>
</div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/1213952671912820837/a_a72595917491af1a24c4af5b7174618f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">Bot Local#7738</span>
<span class="time">(26/08/2025 02:13:15)</span>
<div style="white-space: pre-wrap; margin-left:37px;">⏳ Fermeture du ticket dans 5 secondes...</div></div></body></html>
+33
View File
@@ -0,0 +1,33 @@
<html>
<head>
<meta charset="utf-8"/>
<title>Transcript - ticket-ultralion</title>
<style>
body { font-family: sans-serif; background: #2c2f33; color: #fff; }
.msg { border-bottom: 1px solid #444; padding: 5px; }
.author { font-weight: bold; color: #7289da; }
.time { color: #999; font-size: 12px; }
img { max-width: 400px; margin-top: 5px; border-radius: 5px; }
.embed { border-left: 3px solid #7289da; margin: 5px; padding-left: 5px; background: #23272a; }
.sticker { margin-top: 10px; }
</style>
</head>
<body>
<h2>Transcript - ticket-ultralion</h2>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/1213952671912820837/a_a72595917491af1a24c4af5b7174618f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">Bot Local#7738</span>
<span class="time">(26/08/2025 03:18:32)</span>
<div style="white-space: pre-wrap; margin-left:37px;"><@&1066466155574857884></div>
<div class="embed"><div><strong>🎟️ Facturation</strong></div><div>👤 Ouvert par: <@281113457833672706>
**ID de facture** : qsdqsd
**Explique ton problème** : qsdqsd</div></div></div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/1213952671912820837/a_a72595917491af1a24c4af5b7174618f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">Bot Local#7738</span>
<span class="time">(26/08/2025 03:18:38)</span>
<div style="white-space: pre-wrap; margin-left:37px;">@ultralion</div>
<div class="embed"><div>⏳ Une alerte de fermeture a été envoyée. Le ticket sera fermé <t:1756171178:R> si aucune réponse nest donnée. Inactivité détectée depuis <t:1756171118:R>.</div></div></div></body></html>
+42
View File
@@ -0,0 +1,42 @@
<html>
<head>
<meta charset="utf-8"/>
<title>Transcript - ticket-ultralion</title>
<style>
body { font-family: sans-serif; background: #2c2f33; color: #fff; }
.msg { border-bottom: 1px solid #444; padding: 5px; }
.author { font-weight: bold; color: #7289da; }
.time { color: #999; font-size: 12px; }
img { max-width: 400px; margin-top: 5px; border-radius: 5px; }
.embed { border-left: 3px solid #7289da; margin: 5px; padding-left: 5px; background: #23272a; }
.sticker { margin-top: 10px; }
</style>
</head>
<body>
<h2>Transcript - ticket-ultralion</h2>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/1213952671912820837/a_a72595917491af1a24c4af5b7174618f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">Bot Local#7738</span>
<span class="time">(26/08/2025 03:19:49)</span>
<div style="white-space: pre-wrap; margin-left:37px;">🎟️ Bonjour @ultralion, un membre du staff va bientôt te répondre.</div>
</div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/281113457833672706/a_cff01c8ca82e592ddf87e5b37ec5e90f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">ultralion</span>
<span class="time">(26/08/2025 03:19:53)</span>
<div style="white-space: pre-wrap; margin-left:37px;"></div>
<div class="sticker">
<img src="https://cdn.discordapp.com/stickers/982148542271455272.png" alt="bubz"
style="width:320px; height:320px; border-radius:8px; display:block;"/>
<div style="color:#aaa; font-size:12px;">bubz</div>
</div>
</div>
<div class="msg">
<img src="https://cdn.discordapp.com/avatars/1213952671912820837/a_a72595917491af1a24c4af5b7174618f.gif" width="32" height="32" style="border-radius:50%; vertical-align:middle; margin-right:5px;">
<span class="author">Bot Local#7738</span>
<span class="time">(26/08/2025 03:19:56)</span>
<div style="white-space: pre-wrap; margin-left:37px;">⏳ Fermeture du ticket dans 5 secondes...</div>
</div></body></html>