// NewRememberPlugin creates a new RememberPlugin with the Plugin interface func NewRemember(b bot.Bot) *RememberPlugin { p := RememberPlugin{ Bot: b, Log: make(map[string][]msg.Message), db: b.DB(), } return &p }
// NewCounterPlugin creates a new CounterPlugin with the Plugin interface func New(bot bot.Bot) *CounterPlugin { if bot.DBVersion() == 1 { if _, err := bot.DB().Exec(`create table if not exists counter ( id integer primary key, nick string, item string, count integer );`); err != nil { log.Fatal(err) } } return &CounterPlugin{ Bot: bot, DB: bot.DB(), } }
// NewFactoid creates a new Factoid with the Plugin interface func New(botInst bot.Bot) *Factoid { p := &Factoid{ Bot: botInst, NotFound: []string{ "I don't know.", "NONONONO", "((", "*pukes*", "NOPE! NOPE! NOPE!", "One time, I learned how to jump rope.", }, db: botInst.DB(), } _, err := p.db.Exec(`create table if not exists factoid ( id integer primary key, fact string, tidbit string, verb string, owner string, created integer, accessed integer, count integer );`) if err != nil { log.Fatal(err) } for _, channel := range botInst.Config().Channels { go p.factTimer(channel) go func(ch string) { // Some random time to start up time.Sleep(time.Duration(15) * time.Second) if ok, fact := p.findTrigger(p.Bot.Config().Factoid.StartupFact); ok { p.sayFact(msg.Message{ Channel: ch, Body: "speed test", // BUG: This is defined in the config too Command: true, Action: false, }, *fact) } }(channel) } return p }
// NewAdminPlugin creates a new AdminPlugin with the Plugin interface func New(bot bot.Bot) *AdminPlugin { p := &AdminPlugin{ Bot: bot, db: bot.DB(), } p.LoadData() return p }
func New(bot bot.Bot) *BabblerPlugin { plugin := &BabblerPlugin{ Bot: bot, db: bot.DB(), config: bot.Config(), babblers: map[string]*babbler{}, } return plugin }
// NewFirstPlugin creates a new FirstPlugin with the Plugin interface func New(b bot.Bot) *FirstPlugin { if b.DBVersion() == 1 { _, err := b.DB().Exec(`create table if not exists first ( id integer primary key, day integer, time integer, body string, nick string );`) if err != nil { log.Fatal("Could not create first table: ", err) } } log.Println("First plugin initialized with day:", midnight(time.Now())) first, err := getLastFirst(b.DB()) if err != nil { log.Fatal("Could not initialize first plugin: ", err) } return &FirstPlugin{ Bot: b, db: b.DB(), First: first, } }
// NewBeersPlugin creates a new BeersPlugin with the Plugin interface func New(bot bot.Bot) *BeersPlugin { if bot.DBVersion() == 1 { if _, err := bot.DB().Exec(`create table if not exists untappd ( id integer primary key, untappdUser string, channel string, lastCheckin integer, chanNick string );`); err != nil { log.Fatal(err) } } p := BeersPlugin{ Bot: bot, db: bot.DB(), } p.LoadData() for _, channel := range bot.Config().Untappd.Channels { go p.untappdLoop(channel) } return &p }
// NewDowntimePlugin creates a new DowntimePlugin with the Plugin interface func New(bot bot.Bot) *DowntimePlugin { p := DowntimePlugin{ Bot: bot, db: bot.DB(), } if bot.DBVersion() == 1 { _, err := p.db.Exec(`create table if not exists downtime ( id integer primary key, nick string, lastSeen integer );`) if err != nil { log.Fatal("Error creating downtime table: ", err) } } return &p }