[AB-xxx] refactoring some embeds to use components v2

This commit is contained in:
Sheldan
2025-07-13 19:46:37 +02:00
parent 5fabc47cf8
commit 518b54790c
22 changed files with 253 additions and 133 deletions

View File

@@ -1,70 +1,121 @@
{
"embeds": [
"components": [
{
<#if author??>
<#include "user_author">
<@user_author user=author/>
<#else>
<#include "deleted_user_author"/>
</#if>,
<#include "abstracto_color">,
<#if embeddedMessage.content?has_content || embeddedMessage.embeds?size gt 0>
"description": "${embeddedMessage.content?json_string}
<#list embeddedMessage.embeds>
<@safe_include "message_embed_embed_embeds_name"/>:
<#items as embed><#assign embed=embed/>
<@safe_include "message_embed_embed_description"/>: <#if embed.description?has_content >${embed.description?json_string}</#if> <#if embed.imageUrl?has_content> <@safe_include "message_embed_embed_image_url"/>: ${embed.imageUrl} </#if>
</#items>
</#list>
",
</#if>
<#if embeddedMessage.attachments?size gt 0 && !embeddedMessage.attachments[0].spoiler>
"imageUrl": "${embeddedMessage.attachments[0].proxyUrl}",
<#elseif embeddedMessage.attachments?size = 0 && embeddedMessage.embeds?size gt 0 && embeddedMessage.embeds[0].cachedThumbnail??>
"imageUrl": "${embeddedMessage.embeds[0].cachedThumbnail.proxyUrl}",
<#elseif embeddedMessage.attachments?size = 0 && embeddedMessage.embeds?size gt 0 && embeddedMessage.embeds[0].cachedImageInfo??>
"imageUrl": "${embeddedMessage.embeds[0].cachedImageInfo.proxyUrl}",
</#if>
"fields": [
"type": "textDisplay",
<#include "user_user_name">
<#assign userText><#if author??><@user_user_name user=author/><#else><@safe_include "delete_user_name"/></#if></#assign>
<#include "member_user_name">
<#assign embeddingUserText><@member_user_name member=embeddingUser/></#assign>
"content": "<@safe_include "message_embed_meta_info"/>"
},
{
"type": "container",
"components": [
<#assign hasContent=false>
<#if embeddedMessage.content?has_content>
<#assign hasContent=true>
{
"name": "<@safe_include "message_embed_embed_quoted_by_field_title"/>",
<#assign user>${embeddingUser.asMention?json_string}</#assign>
<#assign channelName>${sourceChannel.name?json_string}</#assign>
<#assign messageLink>${embeddedMessage.messageUrl}</#assign>
"value": "<@safe_include "message_embed_embed_quoted_by_field_value"/>"
"type": "textDisplay",
"content": "${embeddedMessage.content?json_string}"
}
<#if embeddedMessage.referencedMessage??>
,
</#if>
<#list embeddedMessage.embeds as embed>
<#if embed.description?has_content>
,{
<#assign hasContent=true>
"type": "section",
"components": [
{
"type": "textDisplay",
"content": "${embed.description?json_string}"
}
]
<#if (embed.cachedImageInfo?has_content && embed.cachedImageInfo.proxyUrl?has_content) || (embed.cachedThumbnail?has_content && embed.cachedThumbnail.proxyUrl?has_content)>
,"accessory": {
"type": "thumbnail",
"url": "${(embed.cachedImageInfo.proxyUrl)!embed.cachedThumbnail.proxyUrl}"
}
</#if>
}
<#elseif (embed.cachedImageInfo?has_content && embed.cachedImageInfo.proxyUrl?has_content && embed.cachedImageInfo.width gt 0)
|| (embed.cachedThumbnail?has_content && embed.cachedThumbnail.proxyUrl?has_content && embed.cachedThumbnail.width gt 0)>
<#assign hasContent=true>
{
<#assign referencedMessageLink=embeddedMessage.referencedMessage.messageUrl/>
<#assign repliedToAuthorMention>${r"<@"}${embeddedMessage.referencedMessage.author.authorId?c}${r">"}</#assign>
"name": "<@safe_include "message_embed_embed_referenced_message_field_title"/>",
"value": "<@safe_include "message_embed_embed_referenced_message_field_value"/>"
"type": "mediaGallery",
"images": [
{
"url": "${(embed.cachedImageInfo.proxyUrl)!embed.cachedThumbnail.proxyUrl}"
}
]
}
</#if>
],
"timeStamp": "${embeddedMessage.timeCreated}"
}
]
<#if useButton>
,"buttons": [
{
"label": "<@safe_include "message_embed_button_delete"/>",
"id": "${buttonConfigModel.buttonId}",
"buttonStyle": "danger",
"metaConfig": {
"persistCallback": false
</#list>
<#if embeddedMessage.attachments?size gt 0>
<#list embeddedMessage.attachments?filter(x -> x.width gt 0)>
,{
<#assign hasContent=true>
"type": "mediaGallery",
"images": [
<#items as attachment>
{
"url": "${attachment.proxyUrl}"
}</#items>
]
}<#sep>,</#list>
</#if>
<#if hasContent==false>
{
"type": "textDisplay",
"content": "<@safe_include "message_embed_no_content"/>"
}
</#if>
]
}
,{
"type": "actionRow",
"actionRowItems": [
{
<#assign channelName>${sourceChannel.name?json_string}</#assign>
<#assign messageLink>${embeddedMessage.messageUrl}</#assign>
"type": "button",
"label": "<#include "message_embed_original_button_label">",
"url": "${messageLink}",
"buttonStyle": "link"
}
<#if useButton>
,{
"label": "<@safe_include "message_embed_button_delete"/>",
"id": "${buttonConfigModel.buttonId}",
"buttonStyle": "danger",
"type": "button",
"metaConfig": {
"persistCallback": false
}
}
</#if>
<#if embeddedMessage.referencedMessage??>
,
{
"type": "button",
<#assign referencedMessageLink=embeddedMessage.referencedMessage.messageUrl/>
"label": "<#include "message_embed_referenced_button_label">",
"url": "${referencedMessageLink}",
"buttonStyle": "link"
}
</#if>
]
}
]
</#if>
<#if embeddedMessage.attachments?size gt 0 && embeddedMessage.attachments[0].spoiler>
,"additionalMessage": "||${embeddedMessage.attachments[0].proxyUrl?json_string}||"
</#if>
<#if referencedMessageId?has_content && mentionsReferencedMessage?has_content>
,"referencedMessageId": "${referencedMessageId?c}",
"messageConfig": {
"mentionsReferencedMessage": ${mentionsReferencedMessage?string('true', 'false')}
}
,"referencedMessageId": "${referencedMessageId?c}"
</#if>
,"messageConfig": {
"allowsUserMention": false,
"allowsRoleMention": false,
"allowsEveryoneMention": false,
"useComponentsV2": true
<#if referencedMessageId?has_content && mentionsReferencedMessage?has_content>
,"mentionsReferencedMessage": ${mentionsReferencedMessage?string('true', 'false')}
</#if>
}
}