Beispiel #1
0
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)))
			}
		}
	}
}
Beispiel #2
0
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}
	}
}
Beispiel #3
0
func (b *Bot) DelHandler(mod, name string) {
	b.web.Destroy(utils.GetMd5(mod + name))
}
Beispiel #4
0
func (b *Bot) AddHandler(mod, path string, handler http.HandlerFunc, name string) {
	b.web.Handler("/"+mod+path, handler, utils.GetMd5(mod+name))
}