|
- package main
-
- import (
- "fmt"
- "log"
- "time"
- )
-
- type commandFunction func(*openIDSessionData, InWechatMsg) bool
-
- var commandMap = map[string]commandFunction{
- "版本信息": cmdVersion,
- "version": cmdVersion,
- //"所有命令": allCommand, //include it will cause initialization loop
- "echo": cmdEcho,
- "回音": cmdEcho,
- }
-
- func (ss *openIDSessionData) serveCommand(in InWechatMsg) (processed bool) {
- if in.header.MsgType == "text" {
- cmd := in.body.(TextMsg).Content
- if f, hasFunction := commandMap[cmd]; hasFunction {
- return f(ss, in)
- }
- if cmd == "所有命令" || cmd == "all command" {
- return allCommand(ss, in)
- }
- }
- processed = false
- return
- }
-
- func allCommand(ss *openIDSessionData, in InWechatMsg) (processed bool) {
- processed = true
- msg := "命令如下:\n"
- count := 0
- for k := range commandMap {
- count++
- msg = msg + fmt.Sprintf("%0d : %s \n", count, k)
- }
-
- str, _ := BuildTextMsg(in.header.FromUserName, msg)
- in.replyXML(str)
- return
- }
-
- func cmdVersion(ss *openIDSessionData, in InWechatMsg) (processed bool) {
- processed = true
- in.replyText("这是测试版本" + time.Now().Format("2006/01/02 03:04:05"))
- return
- }
-
- func cmdEcho(ss *openIDSessionData, in InWechatMsg) (processed bool) {
- processed = true
- in.replyText("请输入不同类型的微信信息,比如文字,图片,视频,地址,链接,我们将原样回应您")
- procEcho.init(ss)
- procEcho.start(ss, in)
- log.Println("外面的 procedure=" + ss.Procedure)
- return
- }
|