mirror of
https://github.com/TitanEmbeds/Titan.git
synced 2024-12-25 14:37:02 +01:00
Parse formatting within rich embeds
This commit is contained in:
parent
07e4e4113c
commit
6578526ef6
@ -1343,6 +1343,12 @@
|
|||||||
message.content = message.content.replace(new RegExp("<@!" + mention.id + ">", 'g'), rendered);
|
message.content = message.content.replace(new RegExp("<@!" + mention.id + ">", 'g'), rendered);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message.content = parse_role_mention(message.content);
|
||||||
|
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
|
||||||
|
function parse_role_mention(content) {
|
||||||
var template = $("#mustache_rolemention").html();
|
var template = $("#mustache_rolemention").html();
|
||||||
Mustache.parse(template);
|
Mustache.parse(template);
|
||||||
for (var i = 0; i < guild_roles_list.length; i++) {
|
for (var i = 0; i < guild_roles_list.length; i++) {
|
||||||
@ -1352,9 +1358,9 @@
|
|||||||
roleobj.color = "#" + role.color.toString(16);
|
roleobj.color = "#" + role.color.toString(16);
|
||||||
}
|
}
|
||||||
var rendered = Mustache.render(template, roleobj).trim();
|
var rendered = Mustache.render(template, roleobj).trim();
|
||||||
message.content = message.content.replace("<@&" + role.id + ">", rendered);
|
content = content.replace("<@&" + role.id + ">", rendered);
|
||||||
}
|
}
|
||||||
return message;
|
return content;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getPosition(string, subString, index) {
|
function getPosition(string, subString, index) {
|
||||||
@ -1450,7 +1456,7 @@
|
|||||||
for (var i = 0; i < channelids.length; i++) {
|
for (var i = 0; i < channelids.length; i++) {
|
||||||
var pattern = "<#" + channelids[i] + ">";
|
var pattern = "<#" + channelids[i] + ">";
|
||||||
var elem = "<span class=\"channellink\" channelid=\"" + channelids[i] + "\">#" + guild_channels[channelids[i]].channel.name + "</span>";
|
var elem = "<span class=\"channellink\" channelid=\"" + channelids[i] + "\">#" + guild_channels[channelids[i]].channel.name + "</span>";
|
||||||
message.content = message.content.replace(new RegExp(pattern, "g"), elem);
|
message = message.replace(new RegExp(pattern, "g"), elem);
|
||||||
}
|
}
|
||||||
return message;
|
return message;
|
||||||
}
|
}
|
||||||
@ -1467,13 +1473,13 @@
|
|||||||
emoji_format = "<:" + emoji.name + ":" + emoji.id + ">";
|
emoji_format = "<:" + emoji.name + ":" + emoji.id + ">";
|
||||||
}
|
}
|
||||||
var rendered = Mustache.render(template, {"id": emoji.id, "name": emoji.name, "animated": emoji.animated}).trim();
|
var rendered = Mustache.render(template, {"id": emoji.id, "name": emoji.name, "animated": emoji.animated}).trim();
|
||||||
message.content = message.content.replaceAll(emoji_format, rendered);
|
message = message.replaceAll(emoji_format, rendered);
|
||||||
}
|
}
|
||||||
var rendered = Mustache.render(template, {"id": "$2", "name": "$1"}).trim();
|
var rendered = Mustache.render(template, {"id": "$2", "name": "$1"}).trim();
|
||||||
message.content = message.content.replace(/<:(.*?):(.*?)>/g, rendered);
|
message = message.replace(/<:(.*?):(.*?)>/g, rendered);
|
||||||
rendered = Mustache.render(template, {"id": "$2", "name": "$1", "animated": true}).trim();
|
rendered = Mustache.render(template, {"id": "$2", "name": "$1", "animated": true}).trim();
|
||||||
message.content = message.content.replace(/<a:(.*?):(.*?)>/g, rendered);
|
message = message.replace(/<a:(.*?):(.*?)>/g, rendered);
|
||||||
message.content = twemoji.parse(message.content, {
|
message = twemoji.parse(message, {
|
||||||
className: "message_emoji",
|
className: "message_emoji",
|
||||||
callback: function(icon, options, variant) { // exclude special characters
|
callback: function(icon, options, variant) { // exclude special characters
|
||||||
switch (icon) {
|
switch (icon) {
|
||||||
@ -1592,12 +1598,41 @@
|
|||||||
if (disembed.color) {
|
if (disembed.color) {
|
||||||
disembed.hexColor = "#" + disembed.color.toString(16);
|
disembed.hexColor = "#" + disembed.color.toString(16);
|
||||||
}
|
}
|
||||||
|
if (disembed.title) {
|
||||||
|
disembed.title = render_embed_text_formatting(disembed.title);
|
||||||
|
}
|
||||||
|
if (disembed.description) {
|
||||||
|
disembed.description = render_embed_text_formatting(disembed.description);
|
||||||
|
}
|
||||||
|
if (disembed.fields) {
|
||||||
|
for (var i = 0; i < disembed.fields.length; i++) {
|
||||||
|
disembed.fields[i].name = render_embed_text_formatting(disembed.fields[i].name);
|
||||||
|
disembed.fields[i].value = render_embed_text_formatting(disembed.fields[i].value);
|
||||||
|
}
|
||||||
|
}
|
||||||
var template = $('#mustache_richembed').html();
|
var template = $('#mustache_richembed').html();
|
||||||
Mustache.parse(template);
|
Mustache.parse(template);
|
||||||
var rendered = Mustache.render(template, disembed);
|
var rendered = Mustache.render(template, disembed);
|
||||||
return rendered;
|
return rendered;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function render_embed_text_formatting(content) {
|
||||||
|
content = content.replaceAll("\\<", "<");
|
||||||
|
content = content.replaceAll("\\>", ">");
|
||||||
|
content = escapeHtml(content);
|
||||||
|
content = parse_role_mention(content);
|
||||||
|
content = parse_message_markdown(content);
|
||||||
|
content = parse_channels_in_message(content);
|
||||||
|
content = parse_emoji_in_message(content);
|
||||||
|
content = content.replace(/<https:\/\/(.*?)>/g, "https://$1");
|
||||||
|
content = content.replace(/<http:\/\/(.*?)>/g, "http://$1");
|
||||||
|
var el = $("<div></div>").html(content);
|
||||||
|
el.linkify({
|
||||||
|
target: "_blank"
|
||||||
|
});
|
||||||
|
return el.html();
|
||||||
|
}
|
||||||
|
|
||||||
function parse_message_reactions(reactions) {
|
function parse_message_reactions(reactions) {
|
||||||
var reacts = []
|
var reacts = []
|
||||||
var template = $("#mustache_reactionchip").html();
|
var template = $("#mustache_reactionchip").html();
|
||||||
@ -1700,8 +1735,8 @@
|
|||||||
message = replace_message_mentions(message);
|
message = replace_message_mentions(message);
|
||||||
message = parse_message_attachments(message);
|
message = parse_message_attachments(message);
|
||||||
message.content = parse_message_markdown(message.content);
|
message.content = parse_message_markdown(message.content);
|
||||||
message = parse_channels_in_message(message);
|
message.content = parse_channels_in_message(message.content);
|
||||||
message = parse_emoji_in_message(message);
|
message.content = parse_emoji_in_message(message.content);
|
||||||
message.content = message.content.replace(/<https:\/\/(.*?)>/g, "https://$1");
|
message.content = message.content.replace(/<https:\/\/(.*?)>/g, "https://$1");
|
||||||
message.content = message.content.replace(/<http:\/\/(.*?)>/g, "http://$1");
|
message.content = message.content.replace(/<http:\/\/(.*?)>/g, "http://$1");
|
||||||
if (message.type == 7) {
|
if (message.type == 7) {
|
||||||
|
@ -530,12 +530,12 @@
|
|||||||
<a href="
|
<a href="
|
||||||
{{#url}}{{url}}{{/url}}
|
{{#url}}{{url}}{{/url}}
|
||||||
{{^url}}#{{/url}}
|
{{^url}}#{{/url}}
|
||||||
" target="_blank">{{title}}</a>
|
" target="_blank">{{{title}}}</a>
|
||||||
</div>
|
</div>
|
||||||
{{/title}}
|
{{/title}}
|
||||||
{{^isVideo}}
|
{{^isVideo}}
|
||||||
{{#description}}
|
{{#description}}
|
||||||
<div class="description">{{description}}</div>
|
<div class="description">{{{description}}}</div>
|
||||||
{{/description}}
|
{{/description}}
|
||||||
{{/isVideo}}
|
{{/isVideo}}
|
||||||
{{#isVideo}}
|
{{#isVideo}}
|
||||||
@ -552,8 +552,8 @@
|
|||||||
<div class="fields">
|
<div class="fields">
|
||||||
{{#fields}}
|
{{#fields}}
|
||||||
<div class="field {{#inline}}inline{{/inline}}">
|
<div class="field {{#inline}}inline{{/inline}}">
|
||||||
<div class="field-name">{{name}}</div>
|
<div class="field-name">{{{name}}}</div>
|
||||||
<div class="field-content">{{value}}</div>
|
<div class="field-content">{{{value}}}</div>
|
||||||
</div>
|
</div>
|
||||||
{{/fields}}
|
{{/fields}}
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user