예제 #1
0
파일: first.go 프로젝트: velour/catbase
// 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,
	}
}
예제 #2
0
파일: counter.go 프로젝트: velour/catbase
// 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(),
	}
}
예제 #3
0
파일: downtime.go 프로젝트: velour/catbase
// 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
}
예제 #4
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
}