1
0
mirror of https://github.com/mgerb/go-discord-bot synced 2026-01-10 09:02:49 +00:00

fix: channel join sound bug

This commit is contained in:
2022-03-23 22:13:28 -05:00
parent 6b8db59e98
commit 149ba48802
7 changed files with 64 additions and 74 deletions

View File

@@ -1,17 +0,0 @@
install:
cd server && dep ensure && go get
cd client && npm install
build-server:
cd ./server && packr build -o ../bot ./main.go
build-scripts:
go build -o bot-scripts ./server/scripts
build-client:
cd client && npm run build
clean:
rm -rf bot ./dist
all: install build-client build-server

View File

@@ -1,7 +1,6 @@
package bot package bot
import ( import (
"os"
"time" "time"
"github.com/bwmarrin/discordgo" "github.com/bwmarrin/discordgo"
@@ -13,7 +12,6 @@ import (
// keep reference to discord session // keep reference to discord session
var _session *discordgo.Session var _session *discordgo.Session
var _token string var _token string
var _sc chan os.Signal
// SendEmbeddedNotification - sends notification to default room // SendEmbeddedNotification - sends notification to default room
func SendEmbeddedNotification(title, description string) { func SendEmbeddedNotification(title, description string) {

View File

@@ -1,73 +1,73 @@
package bothandlers package bothandlers
/** // /**
* DEPRECATED // * DEPRECATED
* this was used to fetch a giphy image // * this was used to fetch a giphy image
* no longer used // * no longer used
*/ // */
import ( // import (
"io/ioutil" // "io/ioutil"
"math/rand" // "math/rand"
"net/http" // "net/http"
"strings" // "strings"
"time" // "time"
"github.com/bwmarrin/discordgo" // "github.com/bwmarrin/discordgo"
"github.com/tidwall/gjson" // "github.com/tidwall/gjson"
) // )
const ( // const (
gifPrefix string = "!gif " // gifPrefix string = "!gif "
userAgent string = "go-discord-bot" // userAgent string = "go-discord-bot"
giphyURL string = "http://api.giphy.com/v1/gifs/search?&api_key=dc6zaTOxFJmzC&limit=10&q=" // giphyURL string = "http://api.giphy.com/v1/gifs/search?&api_key=dc6zaTOxFJmzC&limit=10&q="
) // )
// GifHandler - handler for giphy api // // GifHandler - handler for giphy api
func GifHandler(s *discordgo.Session, m *discordgo.MessageCreate) { // func GifHandler(s *discordgo.Session, m *discordgo.MessageCreate) {
// check if valid command // // check if valid command
if strings.HasPrefix(m.Content, gifPrefix) { // if strings.HasPrefix(m.Content, gifPrefix) {
searchText := strings.TrimPrefix(m.Content, gifPrefix) // searchText := strings.TrimPrefix(m.Content, gifPrefix)
gifLink := getGiphy(searchText) // gifLink := getGiphy(searchText)
if gifLink == "null" { // if gifLink == "null" {
gifLink = "No gif found." // gifLink = "No gif found."
} // }
s.ChannelMessageSend(m.ChannelID, gifLink) // s.ChannelMessageSend(m.ChannelID, gifLink)
} // }
} // }
// send http request to reddit // // send http request to reddit
func getGiphy(searchTerm string) string { // func getGiphy(searchTerm string) string {
rand.Seed(time.Now().UnixNano()) // rand.Seed(time.Now().UnixNano())
client := &http.Client{} // client := &http.Client{}
req, err := http.NewRequest("GET", giphyURL+searchTerm, nil) // req, err := http.NewRequest("GET", giphyURL+searchTerm, nil)
response, err := client.Do(req) // response, err := client.Do(req)
if err != nil { // if err != nil {
return err.Error() // return err.Error()
} // }
defer response.Body.Close() // defer response.Body.Close()
body, err := ioutil.ReadAll(response.Body) // body, err := ioutil.ReadAll(response.Body)
if err != nil { // if err != nil {
return err.Error() // return err.Error()
} // }
data := gjson.Get(string(body), "data").Array() // data := gjson.Get(string(body), "data").Array()
if len(data) < 1 { // if len(data) < 1 {
return "null" // return "null"
} // }
return data[rand.Intn(len(data))].Get("images.fixed_height.url").String() // return data[rand.Intn(len(data))].Get("images.fixed_height.url").String()
} // }

View File

@@ -2,6 +2,7 @@ package bothandlers
import ( import (
"strings" "strings"
"time"
"github.com/bwmarrin/discordgo" "github.com/bwmarrin/discordgo"
"github.com/mgerb/go-discord-bot/server/db" "github.com/mgerb/go-discord-bot/server/db"
@@ -16,8 +17,11 @@ func LoggerHandler(s *discordgo.Session, m *discordgo.MessageCreate) {
model.UserSave(db.GetConn(), user) model.UserSave(db.GetConn(), user)
// create and save message // create and save message
timestamp, _ := m.Message.Timestamp.Parse() timestamp := m.Message.Timestamp
editedTimestamp, _ := m.Message.EditedTimestamp.Parse() var editedTimestamp time.Time
if m.Message.EditedTimestamp != nil {
editedTimestamp = *m.Message.EditedTimestamp
}
attachments := getAttachments(m.Message.Attachments) attachments := getAttachments(m.Message.Attachments)
message := &model.Message{ message := &model.Message{

View File

@@ -57,7 +57,8 @@ func VoiceStateHandler(s *discordgo.Session, v *discordgo.VoiceStateUpdate) {
voiceConnection := conn.getVoiceConnection() voiceConnection := conn.getVoiceConnection()
if voiceConnection != nil && voiceConnection.Ready && voiceConnection.ChannelID == v.VoiceState.ChannelID { if voiceConnection != nil && voiceConnection.Ready && voiceConnection.ChannelID == v.VoiceState.ChannelID &&
(v.BeforeUpdate == nil || v.BeforeUpdate.ChannelID != voiceConnection.ChannelID) {
user, err := model.UserGet(db.GetConn(), v.VoiceState.UserID) user, err := model.UserGet(db.GetConn(), v.VoiceState.UserID)

View File

@@ -3,7 +3,7 @@ module github.com/mgerb/go-discord-bot/server
go 1.17 go 1.17
require ( require (
github.com/bwmarrin/discordgo v0.23.2 github.com/bwmarrin/discordgo v0.24.0
github.com/gin-gonic/gin v1.7.7 github.com/gin-gonic/gin v1.7.7
github.com/go-audio/audio v1.0.0 github.com/go-audio/audio v1.0.0
github.com/go-audio/wav v1.0.0 github.com/go-audio/wav v1.0.0

View File

@@ -75,6 +75,8 @@ github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4Yn
github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4=
github.com/bwmarrin/discordgo v0.23.2 h1:BzrtTktixGHIu9Tt7dEE6diysEF9HWnXeHuoJEt2fH4= github.com/bwmarrin/discordgo v0.23.2 h1:BzrtTktixGHIu9Tt7dEE6diysEF9HWnXeHuoJEt2fH4=
github.com/bwmarrin/discordgo v0.23.2/go.mod h1:c1WtWUGN6nREDmzIpyTp/iD3VYt4Fpx+bVyfBG7JE+M= github.com/bwmarrin/discordgo v0.23.2/go.mod h1:c1WtWUGN6nREDmzIpyTp/iD3VYt4Fpx+bVyfBG7JE+M=
github.com/bwmarrin/discordgo v0.24.0 h1:Gw4MYxqHdvhO99A3nXnSLy97z5pmIKHZVJ1JY5ZDPqY=
github.com/bwmarrin/discordgo v0.24.0/go.mod h1:NJZpH+1AfhIcyQsPeuBKsUtYrRnjkyu0kIVMCHkZtRY=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
@@ -243,6 +245,7 @@ github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5m
github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0=
github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM=
github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
@@ -456,6 +459,7 @@ golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20210817164053-32db794688a5 h1:HWj/xjIHfjYU5nVXpTM0s39J9CbLn7Cc5a7IC5rwsMQ= golang.org/x/crypto v0.0.0-20210817164053-32db794688a5 h1:HWj/xjIHfjYU5nVXpTM0s39J9CbLn7Cc5a7IC5rwsMQ=
golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=