summaryrefslogtreecommitdiffstats
path: root/matterbridge.go
diff options
context:
space:
mode:
Diffstat (limited to 'matterbridge.go')
-rw-r--r--matterbridge.go19
1 files changed, 18 insertions, 1 deletions
diff --git a/matterbridge.go b/matterbridge.go
index 734904cf..b9f34c7c 100644
--- a/matterbridge.go
+++ b/matterbridge.go
@@ -3,6 +3,7 @@ package main
import (
"crypto/tls"
"github.com/42wim/matterbridge/matterhook"
+ "github.com/peterhellberg/giphy"
"github.com/thoj/go-ircevent"
"log"
"strconv"
@@ -80,10 +81,14 @@ func (b *Bridge) Send(nick string, message string) error {
func (b *Bridge) handleMatter() {
for {
message := b.m.Receive()
- switch message.Text {
+ cmd := strings.Fields(message.Text)[0]
+ switch cmd {
case "!users":
log.Println("received !users from", message.UserName)
b.i.SendRaw("NAMES " + b.Config.IRC.Channel)
+ case "!gif":
+ message.Text = b.giphyRandom(strings.Fields(strings.Replace(message.Text, "!gif ", "", 1)))
+ b.Send(b.Config.IRC.Nick, "![img]("+message.Text+")")
}
texts := strings.Split(message.Text, "\n")
for _, text := range texts {
@@ -92,6 +97,18 @@ func (b *Bridge) handleMatter() {
}
}
+func (b *Bridge) giphyRandom(query []string) string {
+ g := giphy.DefaultClient
+ if b.Config.General.GiphyAPIKey != "" {
+ g.APIKey = b.Config.General.GiphyAPIKey
+ }
+ res, err := g.Random(query)
+ if err != nil {
+ return "error"
+ }
+ return res.Data.FixedHeightDownsampledURL
+}
+
func main() {
NewBridge("matterbot", NewConfig("matterbridge.conf"))
select {}