77 lines
2.1 KiB
Go
77 lines
2.1 KiB
Go
package main
|
|
|
|
import "net/http"
|
|
|
|
type levelUpStatProcessor struct{}
|
|
|
|
func (p *levelUpStatProcessor) GetName() string {
|
|
return "LevelUp Statistics"
|
|
}
|
|
|
|
func (p *levelUpStatProcessor) GetStatKeys() []string {
|
|
return []string{
|
|
"levelup-*",
|
|
}
|
|
}
|
|
|
|
func (p *levelUpStatProcessor) ProcessMessage(m *Message) {}
|
|
func (p *levelUpStatProcessor) ProcessAdminMessage(m *Message) {}
|
|
func (p *levelUpStatProcessor) ProcessBotMessage(m *Message) {}
|
|
|
|
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)
|
|
}
|
|
}
|
|
}
|
|
func (p *levelUpStatProcessor) ProcessAdminChannelMessage(m *Message) {}
|
|
func (p *levelUpStatProcessor) ProcessBotChannelMessage(m *Message) {}
|
|
|
|
/*
|
|
* 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)
|
|
|
|
}
|