コード例 #1
0
ファイル: leftpad.go プロジェクト: velour/catbase
// New creates a new LeftpadPlugin with the Plugin interface
func New(bot bot.Bot) *LeftpadPlugin {
	p := LeftpadPlugin{
		bot:    bot,
		config: bot.Config(),
	}
	return &p
}
コード例 #2
0
ファイル: factoid.go プロジェクト: velour/catbase
// 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
}
コード例 #3
0
ファイル: talker.go プロジェクト: velour/catbase
func New(bot bot.Bot) *TalkerPlugin {
	rand.Seed(time.Now().Unix())
	return &TalkerPlugin{
		Bot:          bot,
		enforceNicks: bot.Config().EnforceNicks,
		sayings:      bot.Config().WelcomeMsgs,
	}
}
コード例 #4
0
ファイル: babbler.go プロジェクト: velour/catbase
func New(bot bot.Bot) *BabblerPlugin {
	plugin := &BabblerPlugin{
		Bot:      bot,
		db:       bot.DB(),
		config:   bot.Config(),
		babblers: map[string]*babbler{},
	}

	return plugin
}
コード例 #5
0
ファイル: beers.go プロジェクト: velour/catbase
// 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
}
コード例 #6
0
ファイル: twitch.go プロジェクト: velour/catbase
func New(bot bot.Bot) *TwitchPlugin {
	p := &TwitchPlugin{
		Bot:        bot,
		config:     bot.Config(),
		twitchList: map[string]*Twitcher{},
	}

	for _, users := range p.config.Twitch.Users {
		for _, twitcherName := range users {
			if _, ok := p.twitchList[twitcherName]; !ok {
				p.twitchList[twitcherName] = &Twitcher{
					name: twitcherName,
					game: "",
				}
			}
		}
	}

	for channel := range p.config.Twitch.Users {
		go p.twitchLoop(channel)
	}

	return p
}