1
0

core package, embryonic espeak function and tests

This commit is contained in:
2020-12-06 00:06:21 +01:00
parent 366e6a1e3f
commit 03d23a5666
4 changed files with 73 additions and 6 deletions

View File

@ -1,4 +1,4 @@
package config package core
import ( import (
"io/ioutil" "io/ioutil"

13
core/core_test.go Normal file
View File

@ -0,0 +1,13 @@
package core
import (
"testing"
)
func TestCreateAudioSimple(t *testing.T) {
var message string = "test 1 2 3"
_, err := createAudio(message)
if err != nil {
t.Fail()
}
}

51
core/messages.go Normal file
View File

@ -0,0 +1,51 @@
package core
import (
"fmt"
"os/exec"
"strings"
"time"
"github.com/bwmarrin/discordgo"
)
func MessagePing(s *discordgo.Session, m *discordgo.MessageCreate) {
// Ignore all messages created by the bot itself
// This isn't required in this specific example but it's a good practice.
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 = "/gogodisco audio"
if strings.HasPrefix(m.Content, prefix) {
var message string = strings.TrimLeft(m.Content, prefix)
createAudio(message)
}
}
func createAudio(msg string) ([]byte, error){
curr_time := time.Now().Unix()
var filename string = fmt.Sprintf("/tmp/%d.mp3", curr_time)
fmt.Println(filename)
var cmd_args string = fmt.Sprintf("-s 120 -v mb-fr2 -p 30 '%s'", msg)
cmd := exec.Command("espeak-ng", cmd_args)
out, err := cmd.CombinedOutput()
if err != nil {
fmt.Println(fmt.Sprint(err) + ": " + string(out))
}
return out, err
}

View File

@ -12,8 +12,8 @@ import (
) )
func main() { func main() {
var c config.Config var c core.Config
c.LoadConf() c.LoadConf()
discord, err := discordgo.New("Bot " + c.Token) discord, err := discordgo.New("Bot " + c.Token)
if err != nil { if err != nil {
@ -21,6 +21,9 @@ func main() {
return return
} }
discord.AddHandler(core.MessagePing)
discord.AddHandler(core.MessageAudio)
err = discord.Open() err = discord.Open()
if err != nil { if err != nil {
fmt.Println("error opening connection, ", err) fmt.Println("error opening connection, ", err)