1
0

i fucking hope multiple return values aren't good Go practices

createAudio send a mp3 file created with espeak
This commit is contained in:
2020-12-06 12:04:40 +01:00
parent 03d23a5666
commit cb5995640a
2 changed files with 10 additions and 7 deletions

View File

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

View File

@ -2,6 +2,7 @@ package core
import ( import (
"fmt" "fmt"
"os"
"os/exec" "os/exec"
"strings" "strings"
"time" "time"
@ -33,19 +34,21 @@ func MessageAudio(s *discordgo.Session, m *discordgo.MessageCreate) {
var prefix string = "/gogodisco audio" var prefix string = "/gogodisco audio"
if strings.HasPrefix(m.Content, prefix) { if strings.HasPrefix(m.Content, prefix) {
var message string = strings.TrimLeft(m.Content, prefix) var message string = strings.TrimLeft(m.Content, prefix)
createAudio(message) _, _, filename := createAudio(message)
// func (s *Session) ChannelFileSend(channelID, name string, r io.Reader) (*Message, error)
file, _ := os.Open(filename)
s.ChannelFileSend(m.ChannelID, filename, file)
} }
} }
func createAudio(msg string) ([]byte, error){ func createAudio(msg string) ([]byte, error, string){
curr_time := time.Now().Unix() curr_time := time.Now().Unix()
var filename string = fmt.Sprintf("/tmp/%d.mp3", curr_time) var filename string = fmt.Sprintf("/tmp/%d.mp3", curr_time)
fmt.Println(filename) var cmd_args string = fmt.Sprintf("espeak-ng -s 120 -v mb-fr2 -p 30 %q -w %s", msg, filename)
var cmd_args string = fmt.Sprintf("-s 120 -v mb-fr2 -p 30 '%s'", msg) cmd := exec.Command("sh","-c", cmd_args)
cmd := exec.Command("espeak-ng", cmd_args)
out, err := cmd.CombinedOutput() out, err := cmd.CombinedOutput()
if err != nil { if err != nil {
fmt.Println(fmt.Sprint(err) + ": " + string(out)) fmt.Println(fmt.Sprint(err) + ": " + string(out))
} }
return out, err return out, err, filename
} }