mirror of https://github.com/velour/catbase.git
Compare commits
No commits in common. "b59d84b3017e212bba4282c6d0ee8af8eb431678" and "e1ccd553f147d5cadfea6c7ea8fd42091a31b7f3" have entirely different histories.
b59d84b301
...
e1ccd553f1
|
@ -429,19 +429,3 @@ func (d *Discord) Nick(nick string) error {
|
||||||
guildID := d.config.Get("discord.guildid", "")
|
guildID := d.config.Get("discord.guildid", "")
|
||||||
return d.client.GuildMemberNickname(guildID, "@me", nick)
|
return d.client.GuildMemberNickname(guildID, "@me", nick)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Discord) Topic(channelID string) (string, error) {
|
|
||||||
channel, err := d.client.Channel(channelID)
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
return channel.Topic, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (d *Discord) SetTopic(channelID, topic string) error {
|
|
||||||
ce := &discordgo.ChannelEdit{
|
|
||||||
Topic: topic,
|
|
||||||
}
|
|
||||||
_, err := d.client.ChannelEditComplex(channelID, ce)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
2
main.go
2
main.go
|
@ -4,7 +4,6 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"flag"
|
"flag"
|
||||||
"github.com/velour/catbase/plugins/topic"
|
|
||||||
"io"
|
"io"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"os"
|
"os"
|
||||||
|
@ -174,7 +173,6 @@ func main() {
|
||||||
b.AddPlugin(quotegame.New(b))
|
b.AddPlugin(quotegame.New(b))
|
||||||
b.AddPlugin(emojy.New(b))
|
b.AddPlugin(emojy.New(b))
|
||||||
b.AddPlugin(cowboy.New(b))
|
b.AddPlugin(cowboy.New(b))
|
||||||
b.AddPlugin(topic.New(b))
|
|
||||||
// catches anything left, will always return true
|
// catches anything left, will always return true
|
||||||
b.AddPlugin(fact.New(b))
|
b.AddPlugin(fact.New(b))
|
||||||
|
|
||||||
|
|
|
@ -1,62 +0,0 @@
|
||||||
package topic
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"github.com/rs/zerolog/log"
|
|
||||||
"github.com/velour/catbase/bot"
|
|
||||||
"github.com/velour/catbase/config"
|
|
||||||
"github.com/velour/catbase/connectors/discord"
|
|
||||||
"regexp"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
type Topic struct {
|
|
||||||
b bot.Bot
|
|
||||||
c *config.Config
|
|
||||||
}
|
|
||||||
|
|
||||||
func New(b bot.Bot) *Topic {
|
|
||||||
t := &Topic{
|
|
||||||
b: b,
|
|
||||||
c: b.Config(),
|
|
||||||
}
|
|
||||||
t.register()
|
|
||||||
return t
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *Topic) register() {
|
|
||||||
p.b.RegisterRegexCmd(p, bot.Message, regexp.MustCompile(`(?i)^topic$`), func(r bot.Request) bool {
|
|
||||||
switch conn := r.Conn.(type) {
|
|
||||||
case *discord.Discord:
|
|
||||||
topic, err := conn.Topic(r.Msg.Channel)
|
|
||||||
if err != nil {
|
|
||||||
log.Error().Err(err).Msg("couldn't get topic")
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
p.b.Send(conn, bot.Message, r.Msg.Channel, fmt.Sprintf("Topic: %s", topic))
|
|
||||||
return true
|
|
||||||
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
})
|
|
||||||
p.b.RegisterRegexCmd(p, bot.Message, regexp.MustCompile(`(?i)^topic (?P<topic>.*)`), func(r bot.Request) bool {
|
|
||||||
topic := strings.TrimPrefix(r.Msg.Body, "topic ")
|
|
||||||
switch conn := r.Conn.(type) {
|
|
||||||
case *discord.Discord:
|
|
||||||
err := conn.SetTopic(r.Msg.Channel, topic)
|
|
||||||
if err != nil {
|
|
||||||
log.Error().Err(err).Msg("couldn't set topic")
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
topic, err := conn.Topic(r.Msg.Channel)
|
|
||||||
if err != nil {
|
|
||||||
log.Error().Err(err).Msg("couldn't get topic")
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
p.b.Send(conn, bot.Message, r.Msg.Channel, fmt.Sprintf("Topic: %s", topic))
|
|
||||||
return true
|
|
||||||
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
})
|
|
||||||
}
|
|
Loading…
Reference in New Issue