func (m *Tuling) Chat(msg xmpp.Chat) { if len(msg.Text) == 0 || !msg.Stamp.IsZero() { return } //忽略命令消息 if m.bot.IsCmd(msg.Text) { return } if msg.Type == "chat" { if m.Option["chat"] { m.bot.ReplyAuto(msg, m.GetAnswer(msg.Text, utils.GetMd5(msg.Remote))) } } else if msg.Type == "groupchat" { if m.Option["room"] { //忽略bot自己发送的消息 if m.bot.SentThis(msg) || m.bot.BlockRemote(msg) { return } if ok, message := m.bot.Called(msg); ok { roomid, _ := utils.SplitJID(msg.Remote) m.bot.SendPub(roomid, m.GetAnswer(message, utils.GetMd5(msg.Remote))) } } } }
func (m *Admin) cron_add(cmd string, msg xmpp.Chat) { //add <spec6> <jid> <msg> tokens := strings.SplitN(cmd, " ", 9) if len(tokens) != 9 { m.bot.ReplyAuto(msg, "添加新任务失败,请检查消息格式是否正确.") } cron := m.bot.GetCron() to := tokens[7] message := tokens[8] spec := strings.Join(tokens[1:7], " ") id := utils.GetMd5(cmd) if m.IsRoomID(to) { cron.AddFunc(spec, func() { m.bot.SendPub(to, message) }, id) m.crons[id] = CronEntry{spec: spec, to: to, text: message} } else { cron.AddFunc(spec, func() { m.bot.SendAuto(to, message) }, id) m.crons[id] = CronEntry{spec: spec, to: to, text: message} } }
func (b *Bot) DelHandler(mod, name string) { b.web.Destroy(utils.GetMd5(mod + name)) }
func (b *Bot) AddHandler(mod, path string, handler http.HandlerFunc, name string) { b.web.Handler("/"+mod+path, handler, utils.GetMd5(mod+name)) }