Adding the fucking switcher

This commit is contained in:
Chris Sexton 2013-09-13 23:27:11 -04:00
parent e56f2d7270
commit 592adfb482
1 changed files with 13 additions and 8 deletions

View File

@ -1,6 +1,7 @@
package plugins package plugins
import ( import (
"log"
"math/rand" "math/rand"
"strings" "strings"
"time" "time"
@ -14,6 +15,7 @@ type YourPlugin struct {
// NewYourPlugin creates a new YourPlugin with the Plugin interface // NewYourPlugin creates a new YourPlugin with the Plugin interface
func NewYourPlugin(bot *bot.Bot) *YourPlugin { func NewYourPlugin(bot *bot.Bot) *YourPlugin {
rand.Seed(time.Now().Unix())
return &YourPlugin{ return &YourPlugin{
Bot: bot, Bot: bot,
} }
@ -24,8 +26,18 @@ func NewYourPlugin(bot *bot.Bot) *YourPlugin {
// Otherwise, the function returns false and the bot continues execution of other plugins. // Otherwise, the function returns false and the bot continues execution of other plugins.
func (p *YourPlugin) Message(message bot.Message) bool { func (p *YourPlugin) Message(message bot.Message) bool {
lower := strings.ToLower(message.Body) lower := strings.ToLower(message.Body)
if strings.Contains(lower, "your") || strings.Contains(lower, "you're") { if strings.Contains(message.Body, "the fucking") { // let's not mess with case
log.Println("Found a fucking")
if rand.Float64() < 0.2 { if rand.Float64() < 0.2 {
log.Println("Replacing a fucking")
r := strings.NewReplacer("the fucking", "fucking the")
msg := r.Replace(message.Body)
p.Bot.SendMessage(message.Channel, msg)
return true
}
}
if strings.Contains(lower, "your") || strings.Contains(lower, "you're") {
if rand.Float64() < 0.15 {
r := strings.NewReplacer("Your", "You're", "your", "you're", "You're", r := strings.NewReplacer("Your", "You're", "your", "you're", "You're",
"Your", "you're", "your", "Youre", "Your", "youre", "your") "Your", "you're", "your", "Youre", "Your", "youre", "your")
msg := r.Replace(message.Body) msg := r.Replace(message.Body)
@ -36,13 +48,6 @@ func (p *YourPlugin) Message(message bot.Message) bool {
return false return false
} }
// LoadData imports any configuration data into the plugin. This is not strictly necessary other
// than the fact that the Plugin interface demands it exist. This may be deprecated at a later
// date.
func (p *YourPlugin) LoadData() {
rand.Seed(time.Now().Unix())
}
// Help responds to help requests. Every plugin must implement a help function. // Help responds to help requests. Every plugin must implement a help function.
func (p *YourPlugin) Help(channel string, parts []string) { func (p *YourPlugin) Help(channel string, parts []string) {
p.Bot.SendMessage(channel, "Your corrects people's grammar.") p.Bot.SendMessage(channel, "Your corrects people's grammar.")