From b24d18de289b216babddeb2fba4df6a4c7d6b54e Mon Sep 17 00:00:00 2001 From: Patrick Peng Sun Date: Mon, 29 May 2017 22:12:52 +1000 Subject: [PATCH] remove echo server to standalone file --- serveCommand.go | 117 ------------------------------------------------ 1 file changed, 117 deletions(-) diff --git a/serveCommand.go b/serveCommand.go index c010760..d5f4c5c 100644 --- a/serveCommand.go +++ b/serveCommand.go @@ -1,127 +1,10 @@ package main import ( - "fmt" "log" - "os" ) func serveCommand(openID string, in InWechatMsg) (state chatState, processed bool) { log.Println("process command") return echoCommand(openID, in) } - -func echoCommand(openID string, in InWechatMsg) (state chatState, processed bool) { - processed = true - str, err := BuildTextMsg(openID, "default") - log.Println(in.header.MsgType) - switch in.body.(type) { - case TextMsg: - m := in.body.(TextMsg) - str, err = BuildTextMsg(openID, m.Content+"\n\n关键词 [转接] 将后续信息都转接到 客服") - if m.Content == "转接" { - processed = false - } - - case PicMsg: - m := in.body.(PicMsg) - str = buildPicMsg(openID, m.MediaId) - - case VoiceMsg: - m := in.body.(VoiceMsg) - str = buildVoiceMsg(openID, m.MediaId) - kfSendTxt(openID, "翻译结果:"+m.Recognition) - case VideoMsg: - m := in.body.(VideoMsg) - str = buildVideoMsg(openID, "e2iNEiSxCX5TV1WbFd0TQMn5lilY3bylh1--lDBwi7I", "航拍春日哈工大", m.MediaId) - case ShortVideoMsg: - m := in.body.(ShortVideoMsg) - str = buildVideoMsg(openID, "e2iNEiSxCX5TV1WbFd0TQMn5lilY3bylh1--lDBwi7I", "航拍春日哈工大", m.MediaId) - case LocationMsg: - m := in.body.(LocationMsg) - mid := location2MediaID(m.Location_X, m.Location_Y) - //str, _ = BuildTextMsg(openID, fmt.Sprintf("long=%f, lat=%f, scale=%d", m.Location_X, m.Location_Y, m.Scale)) - str = buildPicMsg(openID, mid) - url := location2URL(m.Location_X, m.Location_Y) - kfSendTxt(openID, url) - - case LinkMsg: - m := in.body.(LinkMsg) - kfSendTxt(openID, m.Title+m.Description) - str, _ = BuildTextMsg(openID, m.Url) - case EventMsg: - return echoEvents(openID, in) - default: - str, err = BuildTextMsg(openID, "text message") - } - - state.OpenID = openID - state.Procedure = "" - state.response = str - log.Println(str) - if err != nil { - log.Println("build response failed") - processed = false - } - //state is any state that - return -} - -func echoEvents(openID string, in InWechatMsg) (state chatState, processed bool) { - processed = true - str := "" - m := in.body.(EventMsg) - log.Println("Event = " + m.Event) - switch m.Event { - case "LOCATION": - mid := location2MediaID(m.Latitude, m.Longitude) - str = buildPicMsg(openID, mid) - case "CLICK": - str, _ = BuildTextMsg(openID, m.EventKey) - case "subscribe": - str, _ = BuildTextMsg(openID, m.EventKey) - case "unsubscribe": - str, _ = BuildTextMsg(openID, m.EventKey) - case "SCAN": - str, _ = BuildTextMsg(openID, m.EventKey) - case "VIEW": - str, _ = BuildTextMsg(openID, m.EventKey) - case "kf_create_session": - kfSendTxt(openID, m.KfAccount) - //str, _ = BuildTextMsg(openID, m.KfAccount) // response msg is ignored by wechat - case "kf_close_session": - kfSendTxt(openID, m.KfAccount+"\n close type ="+m.CloseType) - //str, _ = BuildTextMsg(openID, m.KfAccount+"\n close type ="+m.CloseType) //response msg is ignored by wechat - case "scancode_waitmsg": - log.Println(m.ScanCodeInfo.ScanResult) - log.Println(m.ScanCodeInfo.ScanType) - msg := fmt.Sprintf("ScanResult =%s, ScanType=%s", m.ScanCodeInfo.ScanResult, m.ScanCodeInfo.ScanType) - kfSendTxt(openID, msg) - case "pic_photo_or_album": - msg := fmt.Sprintf("Count = %d ", m.SendPicsInfo.Count) - log.Println(m.SendPicsInfo.Count) - for _, v := range m.SendPicsInfo.PicList.Item { - log.Println(v.PicMd5Sum) - kfSendTxt(openID, v.PicMd5Sum) - } - kfSendTxt(openID, msg) - default: - str, _ = BuildTextMsg(openID, " unknown event:"+m.Event) - } - state.response = str - return -} - -func location2MediaID(lat, long float64) (mediaID string) { - url := fmt.Sprintf("https://maps.googleapis.com/maps/api/staticmap?center=%f,%f&markers=color:red|label:S|%f,%f&zoom=17&size=1280x2014", lat, long, lat, long) - file, _, _ := saveURL(url) - mediaID = uploadImage(file) - os.Remove(file) - return -} - -func location2URL(lat, long float64) (url string) { - url = fmt.Sprintf("http://maps.google.com/maps?z=12&t=m&q=loc:%f+%f", lat, long) - log.Println(url) - return -}