migration vers new components V2, et ajout de diverse fonctions !
This commit is contained in:
parent
3590cb748f
commit
ba9e297cb8
14 changed files with 851 additions and 371 deletions
|
|
@ -232,24 +232,31 @@ class BugReport(commands.Cog):
|
|||
current_labels_str = "Mis à jour"
|
||||
|
||||
try:
|
||||
# Création de l'embed pour la mise à jour de statut
|
||||
embed = disnake.Embed(
|
||||
title="🛠️ Mise à jour de votre signalement !",
|
||||
description=f"Le statut de votre rapport **{issue_title}** a été mis à jour par l'équipe.",
|
||||
color=disnake.Color.blue()
|
||||
)
|
||||
embed.add_field(name="Nouveaux Labels / Statuts", value=current_labels_str)
|
||||
# V2 Components migration
|
||||
components = [
|
||||
disnake.ui.Container(
|
||||
disnake.ui.Section(
|
||||
"🛠️ Mise à jour de votre signalement !",
|
||||
accessory=disnake.ui.Thumbnail(self.bot.user.display_avatar.url)
|
||||
),
|
||||
disnake.ui.Separator(divider=True),
|
||||
disnake.ui.TextDisplay(f"Le statut de votre rapport **{issue_title}** a été mis à jour par l'équipe."),
|
||||
disnake.ui.TextDisplay(f"📌 **Nouveaux Labels / Statuts :** {current_labels_str}")
|
||||
)
|
||||
]
|
||||
|
||||
try:
|
||||
await user.send(embed=embed)
|
||||
# On logue systématiquement pour que le staff sache si ça a marché (utile en prod)
|
||||
await user.send(components=components)
|
||||
kuby_logger.info(f"Notification de label envoyée à {user} ({user.id}) pour l'issue #{issue_iid}")
|
||||
if dev and dev.id != user.id:
|
||||
await dev.send(f"✅ [SUIVI] L'utilisateur {user} ({user.id}) a bien reçu la notification de statut **{current_labels_str}** pour l'issue #{issue_iid} ({issue_title}).")
|
||||
except disnake.Forbidden:
|
||||
kuby_logger.warning(f"Impossible d'envoyer un MP à {user} ({user.id}) - MPs désactivés.")
|
||||
if dev and dev.id != user.id:
|
||||
await dev.send(f"⚠️ [DM BLOQUÉ] {user} ({user.id}) a ses MPs fermés. Impossible de notifier pour l'issue #{issue_iid}.")
|
||||
except (disnake.Forbidden, disnake.HTTPException) as e:
|
||||
if isinstance(e, disnake.Forbidden) or (isinstance(e, disnake.HTTPException) and e.code == 50007):
|
||||
kuby_logger.warning(f"Impossible d'envoyer un MP à {user} ({user.id}) - MPs désactivés (Code: {getattr(e, 'code', 'Unknown')})")
|
||||
if dev and dev.id != user.id:
|
||||
await dev.send(f"⚠️ [DM BLOQUÉ] {user} ({user.id}) a ses MPs fermés. Impossible de notifier pour l'issue #{issue_iid}.")
|
||||
else:
|
||||
kuby_logger.error(f"Erreur HTTP lors de l'envoi du MP de statut à {user}: {e}")
|
||||
except Exception as e:
|
||||
kuby_logger.error(f"Erreur lors de l'envoi du MP de statut à {user}: {e}")
|
||||
except Exception as e:
|
||||
|
|
@ -261,23 +268,31 @@ class BugReport(commands.Cog):
|
|||
|
||||
if is_closing_now:
|
||||
try:
|
||||
embed = disnake.Embed(
|
||||
title="🛠️ Bug / Suggestion Terminé(e) !",
|
||||
description=f"Bonne nouvelle ! Votre signalement **{issue_title}** a été marqué comme terminé ou résolu.",
|
||||
color=disnake.Color.green()
|
||||
)
|
||||
embed.add_field(name="Prochaine étape", value="La mise à jour arrive prochainement (ou est déjà là) !")
|
||||
embed.set_footer(text="Merci pour votre aide !")
|
||||
components = [
|
||||
disnake.ui.Container(
|
||||
disnake.ui.Section(
|
||||
"🛠️ Bug / Suggestion Terminé(e) !",
|
||||
accessory=disnake.ui.Thumbnail(self.bot.user.display_avatar.url)
|
||||
),
|
||||
disnake.ui.Separator(divider=True),
|
||||
disnake.ui.TextDisplay(f"Bonne nouvelle ! Votre signalement **{issue_title}** a été marqué comme terminé ou résolu."),
|
||||
disnake.ui.TextDisplay("🚀 **Prochaine étape :** La mise à jour arrive prochainement (ou est déjà là) !"),
|
||||
disnake.ui.TextDisplay("✨ Merci pour votre aide !")
|
||||
)
|
||||
]
|
||||
|
||||
try:
|
||||
await user.send(embed=embed)
|
||||
await user.send(components=components)
|
||||
kuby_logger.info(f"Notification de clôture envoyée à {user} ({user.id}) pour l'issue #{issue_iid}")
|
||||
if dev and dev.id != user.id:
|
||||
await dev.send(f"✅ [SUIVI] L'utilisateur {user} ({user.id}) a bien reçu la notification de CLÔTURE pour l'issue #{issue_iid}.")
|
||||
except disnake.Forbidden:
|
||||
kuby_logger.warning(f"Impossible d'envoyer le MP de clôture à {user} ({user.id}).")
|
||||
if dev and dev.id != user.id:
|
||||
await dev.send(f"⚠️ [DM BLOQUÉ] Impossible d'annoncer la clôture à {user} ({user.id}) pour l'issue #{issue_iid} (DMs désactivés).")
|
||||
except (disnake.Forbidden, disnake.HTTPException) as e:
|
||||
if isinstance(e, disnake.Forbidden) or (isinstance(e, disnake.HTTPException) and e.code == 50007):
|
||||
kuby_logger.warning(f"Impossible d'envoyer le MP de clôture à {user} ({user.id}).")
|
||||
if dev and dev.id != user.id:
|
||||
await dev.send(f"⚠️ [DM BLOQUÉ] Impossible d'annoncer la clôture à {user} ({user.id}) pour l'issue #{issue_iid} (DMs désactivés).")
|
||||
else:
|
||||
kuby_logger.error(f"Erreur HTTP lors de l'envoi du MP de clôture à {user}: {e}")
|
||||
except Exception as e:
|
||||
kuby_logger.error(f"Erreur lors de l'envoi du MP de clôture à {user}: {e}")
|
||||
except Exception as e:
|
||||
|
|
@ -292,22 +307,32 @@ class BugReport(commands.Cog):
|
|||
author_name = payload.get("user", {}).get("name", "Développeur")
|
||||
|
||||
try:
|
||||
embed = disnake.Embed(
|
||||
title="💬 Nouveau commentaire sur votre signalement",
|
||||
description=f"Le développeur a répondu à votre rapport **{issue_title}** :\n\n>>> {note_body}",
|
||||
color=disnake.Color.orange()
|
||||
)
|
||||
embed.set_footer(text=f"Par {author_name}")
|
||||
components = [
|
||||
disnake.ui.Container(
|
||||
disnake.ui.Section(
|
||||
"💬 Nouveau commentaire sur votre signalement",
|
||||
accessory=disnake.ui.Thumbnail(self.bot.user.display_avatar.url)
|
||||
),
|
||||
disnake.ui.Separator(divider=True),
|
||||
disnake.ui.TextDisplay(f"Le développeur a répondu à votre rapport **{issue_title}** :"),
|
||||
disnake.ui.TextDisplay(f">>> {note_body}"),
|
||||
disnake.ui.Separator(divider=True),
|
||||
disnake.ui.TextDisplay(f"✍️ **Par :** {author_name}")
|
||||
)
|
||||
]
|
||||
|
||||
try:
|
||||
await user.send(embed=embed)
|
||||
await user.send(components=components)
|
||||
kuby_logger.info(f"Commentaire GitLab envoyé à {user} ({user.id}) pour l'issue #{issue_iid}")
|
||||
if dev and dev.id != user.id:
|
||||
await dev.send(f"✅ [SUIVI] L'utilisateur {user} ({user.id}) a bien reçu votre commentaire pour l'issue #{issue_iid}.")
|
||||
except disnake.Forbidden:
|
||||
kuby_logger.warning(f"Impossible d'envoyer le commentaire en MP à {user} ({user.id}).")
|
||||
if dev and dev.id != user.id:
|
||||
await dev.send(f"⚠️ [DM BLOQUÉ] Impossible d'envoyer votre commentaire à {user} ({user.id}) pour l'issue #{issue_iid} (DMs désactivés).")
|
||||
except (disnake.Forbidden, disnake.HTTPException) as e:
|
||||
if isinstance(e, disnake.Forbidden) or (isinstance(e, disnake.HTTPException) and e.code == 50007):
|
||||
kuby_logger.warning(f"Impossible d'envoyer le commentaire en MP à {user} ({user.id}).")
|
||||
if dev and dev.id != user.id:
|
||||
await dev.send(f"⚠️ [DM BLOQUÉ] Impossible d'envoyer votre commentaire à {user} ({user.id}) pour l'issue #{issue_iid} (DMs désactivés).")
|
||||
else:
|
||||
kuby_logger.error(f"Erreur HTTP lors de l'envoi du MP de commentaire à {user}: {e}")
|
||||
except Exception as e:
|
||||
kuby_logger.error(f"Erreur lors de l'envoi du MP de commentaire à {user}: {e}")
|
||||
except Exception as e:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue