statbot/processor_levelup.go

77 lines
2.1 KiB
Go
Raw Normal View History

package main
2015-11-02 19:48:29 +00:00
import "net/http"
type levelUpStatProcessor struct{}
func (p *levelUpStatProcessor) GetName() string {
return "LevelUp Statistics"
}
func (p *levelUpStatProcessor) GetStatKeys() []string {
return []string{
"levelup-*",
}
}
2015-10-29 19:16:45 +00:00
func (p *levelUpStatProcessor) ProcessMessage(m *Message) {}
func (p *levelUpStatProcessor) ProcessAdminMessage(m *Message) {}
func (p *levelUpStatProcessor) ProcessBotMessage(m *Message) {}
2015-10-29 19:16:45 +00:00
func (p *levelUpStatProcessor) ProcessUserMessage(m *Message) {}
func (p *levelUpStatProcessor) ProcessAdminUserMessage(m *Message) {}
func (p *levelUpStatProcessor) ProcessBotUserMessage(m *Message) {}
func (p *levelUpStatProcessor) ProcessChannelMessage(m *Message) {
// levelup XP, for now, is awarded like this:
// Message in #random: 1 xp
// Message in #general: 2 xp
// Message in any other channel: 3 xp + 1 xp for that channel
chnl, err := getChannelInfo(m.Channel)
if err == nil {
if chnl.Name == "random" {
addUserStat(m.User, "levelup-xp", 1)
} else if chnl.Name == "general" {
addUserStat(m.User, "levelup-xp", 2)
} else {
addUserStat(m.User, "levelup-xp", 3)
addUserStat(m.User, "levelup-xp-"+chnl.Name, 1)
}
}
}
2015-10-29 19:16:45 +00:00
func (p *levelUpStatProcessor) ProcessAdminChannelMessage(m *Message) {}
func (p *levelUpStatProcessor) ProcessBotChannelMessage(m *Message) {}
2015-11-02 19:48:29 +00:00
/*
* Web Site Module
*/
type levelUpWebModule struct{}
func (wm *levelUpWebModule) GetName() string {
return "LevelUp Web Module"
}
func (wm *levelUpWebModule) GetRoutes() map[string]func(http.ResponseWriter, *http.Request) {
ret := make(map[string]func(http.ResponseWriter, *http.Request))
//ret["/levelup/"] = wm.
return ret
}
func (wm *levelUpWebModule) Register() {
for k, v := range wm.GetRoutes() {
r.HandleFunc(k, v)
}
}
func (wm *levelUpWebModule) GetMenuEntries() []menuItem {
var ret []menuItem
ret = append(ret, menuItem{Text: "LevelUp!", Link: "/levelup/"})
return ret
}
func (wm *levelUpWebModule) GetBottomMenuEntries() []menuItem {
var ret []menuItem
return ret
}
func (wm *levelUpWebModule) handleLevelUpGeneral(w http.ResponseWriter, req *http.Request) {
initRequest(w, req)
}