|
@@ -2,11 +2,17 @@ package main
|
|
|
|
|
|
|
|
import (
|
|
import (
|
|
|
"fmt"
|
|
"fmt"
|
|
|
|
|
+ "regexp"
|
|
|
"strings"
|
|
"strings"
|
|
|
|
|
|
|
|
"github.com/ayntgl/discordgo"
|
|
"github.com/ayntgl/discordgo"
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
+var boldRegex = regexp.MustCompile(`(?m)\*\*(.*?)\*\*`)
|
|
|
|
|
+var italicRegex = regexp.MustCompile(`(?m)\*(.*?)\*`)
|
|
|
|
|
+var underlineRegex = regexp.MustCompile(`(?m)__(.*?)__`)
|
|
|
|
|
+var strikeThroughRegex = regexp.MustCompile(`(?m)~~(.*?)~~`)
|
|
|
|
|
+
|
|
|
func renderMessages(cID string) {
|
|
func renderMessages(cID string) {
|
|
|
ms, err := session.ChannelMessages(cID, conf.GetMessagesLimit, "", "", "")
|
|
ms, err := session.ChannelMessages(cID, conf.GetMessagesLimit, "", "", "")
|
|
|
if err != nil {
|
|
if err != nil {
|
|
@@ -39,7 +45,7 @@ func renderMessage(m *discordgo.Message) {
|
|
|
|
|
|
|
|
if rm.Content != "" {
|
|
if rm.Content != "" {
|
|
|
rm.Content = parseMentions(rm.Content, rm.Mentions)
|
|
rm.Content = parseMentions(rm.Content, rm.Mentions)
|
|
|
- b.WriteString(rm.Content)
|
|
|
|
|
|
|
+ b.WriteString(parseMarkdown(rm.Content))
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
b.WriteString("[::-]\n")
|
|
b.WriteString("[::-]\n")
|
|
@@ -50,7 +56,7 @@ func renderMessage(m *discordgo.Message) {
|
|
|
// (users mentioned in the message) and render the message content.
|
|
// (users mentioned in the message) and render the message content.
|
|
|
if m.Content != "" {
|
|
if m.Content != "" {
|
|
|
m.Content = parseMentions(m.Content, m.Mentions)
|
|
m.Content = parseMentions(m.Content, m.Mentions)
|
|
|
- b.WriteString(m.Content)
|
|
|
|
|
|
|
+ b.WriteString(parseMarkdown(m.Content))
|
|
|
}
|
|
}
|
|
|
// If the edited timestamp of the message is not empty; it implies that
|
|
// If the edited timestamp of the message is not empty; it implies that
|
|
|
// the message has been edited, hence render the message with edited
|
|
// the message has been edited, hence render the message with edited
|
|
@@ -120,3 +126,13 @@ func parseAuthor(b *strings.Builder, u *discordgo.User) {
|
|
|
b.WriteString("[#EB459E]BOT[-] ")
|
|
b.WriteString("[#EB459E]BOT[-] ")
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+func parseMarkdown(md string) string {
|
|
|
|
|
+ var res string
|
|
|
|
|
+ res = boldRegex.ReplaceAllString(md, "[::b]$1[::-]")
|
|
|
|
|
+ res = italicRegex.ReplaceAllString(res, "[::i]$1[::-]")
|
|
|
|
|
+ res = underlineRegex.ReplaceAllString(res, "[::u]$1[::-]")
|
|
|
|
|
+ res = strikeThroughRegex.ReplaceAllString(res, "[::s]$1[::-]")
|
|
|
|
|
+
|
|
|
|
|
+ return res
|
|
|
|
|
+}
|