1
0
Files
gogodiscordo/core/messages.go

63 lines
1.4 KiB
Go

package core
import (
"bytes"
"fmt"
"os/exec"
"strings"
"time"
"github.com/bwmarrin/discordgo"
)
func createAudio(msg string) (filename string, file *bytes.Reader) {
curr_time := time.Now().Unix()
filename = fmt.Sprintf("/tmp/%d.mp3", curr_time)
var cmd_args string = fmt.Sprintf("espeak-ng -s 120 -v mb-fr2 -p 30 '%s' --stdout",
maxString(msg, 300))
cmd := exec.Command("sh", "-c", cmd_args)
out, err := cmd.CombinedOutput()
if err != nil {
fmt.Println(fmt.Sprint(err))
}
file = bytes.NewReader(out)
return
}
func MessageHelp(s *discordgo.Session, m *discordgo.MessageCreate) {
if m.Author.ID == s.State.User.ID {
return
}
if m.Content == "/ggd help" {
// build list of possible commands
return
}
}
func MessagePing(s *discordgo.Session, m *discordgo.MessageCreate) {
if m.Author.ID == s.State.User.ID {
return
}
if m.Content == "ping" {
s.ChannelMessageSend(m.ChannelID, "Pong!")
}
if m.Content == "pong" {
s.ChannelMessageSend(m.ChannelID, "Ping!")
}
}
func MessageAudio(s *discordgo.Session, m *discordgo.MessageCreate) {
if m.Author.ID == s.State.User.ID {
return
}
var prefix string = "/ggd tts"
if strings.HasPrefix(m.Content, prefix) {
var message string = strings.TrimPrefix(m.Content, prefix)
var cleanMessage string = prepareTTSMessage(message)
filename, file := createAudio(cleanMessage)
s.ChannelFileSend(m.ChannelID, filename, file)
}
}