def tcplink(sock,addr): strlog = 'Accept new connection from %s:%s...' % addr writeToLog(strlog) sock.send('begin') try: while True: data = sock.recv(1024) time.sleep(1) if data: strlog = "recv from %s:%s :" % addr strlog += data writeToLog(strlog) if data.startswith("wset:"): ret = User.SetWeather(data) print ret elif data == 'exit' or not data: break sock.send('Recved') sock.close() strlog = 'Connection from %s:%s closed.' % addr writeToLog(strlog) except Exception as e: print 'Error occur ' + str(e)
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