def MedicineReport(self, recMsg): strret = "该功能尚未开通,敬请期待" content = recMsg.Content.strip() if not User.TestUserExist(recMsg.FromUserName): strret = "请先回复7添加姓名" elif content[1:] == "": strret = '请回复5+症状描述、所需的药品或想了解的问题,如"5脚扭伤需要云南白药喷雾剂"' else: self.WriteToLog("MR:" + User.GetUserName(recMsg.FromUserName) + ":" + content[1:]) strret = "您的请求已记录,将转达至相关人员,谢谢" return strret
def RepairReport(self, recMsg): strret = "该功能尚未开通,敬请期待" content = recMsg.Content.strip() if not User.TestUserExist(recMsg.FromUserName): strret = "请先回复7添加姓名" elif content[1:] == "": strret = '请回复4+报备维修的物品及位置,如"4宿舍209卫生间排气扇损坏"' else: self.WriteToLog("RR:" + User.GetUserName(recMsg.FromUserName) + ":" + content[1:]) strret = "您的请求已记录,将转达至相关人员,谢谢" return strret
def SuggestFeedback(self, recMsg): strret = "该功能尚未开通,敬请期待" content = recMsg.Content.strip() if content[1:] == "": strret = '请回复6+意见或建议,如"6今日班车功能早日能开通"' else: if User.TestUserExist(recMsg.FromUserName): self.WriteToLog("SF:" + User.GetUserName(recMsg.FromUserName) + ":" + content[1:]) else: self.WriteToLog("SF:" + recMsg.FromUserName + ":" + content[1:]) strret = "您反映的意见、建议已记录,将转达至开发人员,谢谢" return strret
def SetName(self, recMsg): strret = "" content = recMsg.Content.strip() if content[1:] == "": strret = '请输入7+姓名,例如"7王大锤"\n1、请勿添加其他非空字符\n2、多次添加将做覆盖处理\n3、回复"77"将查看系统录入的姓名"' elif content[1] == "7": strret = User.GetUserName(recMsg.FromUserName) else: content = content[1:].decode('utf-8') pattern = re.compile(u'([\u4e00-\u9fa5]+)', re.S) name = re.findall(pattern, content) if name: strret = User.SetUserName(recMsg.FromUserName, name[0].encode('utf-8')) else: strret = "设置姓名失败,请重新输入" return strret
def POST(self): try: webData = web.data() print "Handle Post webdata is \n", webData #后台打日志 recMsg = receive.parse_xml(webData) if isinstance(recMsg, receive.Msg): if recMsg.MsgType == 'text': toUser = recMsg.FromUserName fromUser = recMsg.ToUserName content = "" if recMsg.Content.startswith("1"): recContlow = recMsg.Content.lower() wget = weather() if recContlow.startswith( "1tz") or recContlow.startswith("1北京"): content = wget.GetWeather('d7_beijing') self.WriteToLog( "GW:" + User.GetUserName(recMsg.FromUserName) + ":查询北京天气") elif recContlow.startswith( "1xa") or recContlow.startswith("1西安"): content = wget.GetWeather('d7_xian') self.WriteToLog( "GW:" + User.GetUserName(recMsg.FromUserName) + ":查询西安天气") else: with open("weather.txt", 'rt') as weatherinfo: User.weatherdic = json.load(weatherinfo) lastUpdateTime = time.mktime( time.strptime(User.weatherdic["update"], "%Y-%m-%d %H:%M:%S")) timeNow = time.time() + 13 * 60 * 60 if timeNow - lastUpdateTime > 3600: content = wget.GetWeather() else: content = User.GetWeather() self.WriteToLog( "GW:" + User.GetUserName(recMsg.FromUserName) + ":查询马道天气") elif recMsg.Content.startswith( "2") or recMsg.Content.startswith("菜谱"): content = self.GetCookBook() self.WriteToLog("GC:" + User.GetUserName(recMsg.FromUserName) + ":获取菜谱") elif recMsg.Content.startswith( "3") or recMsg.Content.startswith("班车"): content = "该功能尚未开通,敬请期待" self.WriteToLog("GB:" + User.GetUserName(recMsg.FromUserName) + ":查询班车") elif recMsg.Content.startswith("4"): content = self.RepairReport(recMsg) elif recMsg.Content.startswith("5"): content = self.MedicineReport(recMsg) elif recMsg.Content.startswith("6"): content = self.SuggestFeedback(recMsg) elif recMsg.Content.startswith("7"): content = self.SetName(recMsg) elif recMsg.Content.startswith("wset:"): content = User.SetWeather(recMsg.Content) self.WriteToLog("WSET:" + User.GetUserName(recMsg.FromUserName) + ":设置天气:" + recMsg.Content[5:]) elif recMsg.Content.startswith("logget:"): content = self.GetLogReport() elif recMsg.Content.startswith("norecv:"): print "rec" content = self.SetLogNotReceive() else: content = self.strMenu if content == "": content = "公众号后台繁忙,请稍后再试" print "reply is :\n" + content replyMsg = reply.TextMsg(toUser, fromUser, content) return replyMsg.send() elif recMsg.MsgType == 'event': toUser = recMsg.FromUserName fromUser = recMsg.ToUserName content = "" if recMsg.Event == "subscribe": content = "感谢您的订阅,这里是----,竭诚为您服务\n\n" + self.strMenu replyMsg = reply.TextMsg(toUser, fromUser, content) return replyMsg.send() else: return "" else: return "" except Exception, Argment: return Argment