Example #1
0
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)
Example #2
0
 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