Add giphy support. !gif <query>
This commit is contained in:
@@ -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, "")
|
||||
}
|
||||
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 {}
|
||||
|
||||
Reference in New Issue
Block a user