class Handle(object): def __init__(self): self.robot = Robot() self.basic = Basic() self.material = Material() self.dao = Dao() self.dao.connect() self.spider = Spider() def POST(self): try: webData = web.data() print "Handle Post webdata is ", webData #后台打日志 recMsg = receive.parse_xml(webData) # accessToken = self.basic.get_access_token() # print accessToken if isinstance(recMsg, receive.Msg) and recMsg.MsgType == 'text': toUser = recMsg.FromUserName fromUser = recMsg.ToUserName content = recMsg.Content print content reString = r' ' results = re.split(re.compile(reString), content) if results[0] == "歌曲": if len(results) == 2 and results[1]: muiscName = results[1] if isinstance(muiscName, unicode): muiscName = muiscName.encode('utf-8') print muiscName sql = "select * from music where `musicName` like %s limit 5;" args = ('%s%%' % muiscName) musicList = self.dao.launchSQL(sql, args) content = "" i = 0 if musicList: for row in musicList: i = i + 1 musicName = row[2] artist = row[3] url = row[4] pwd = row[5] try: content = content + "歌曲名:%s\n歌手:%s\n百度云盘下载地址:\n%s\n密码:%s\n\n" % (musicName.encode("utf-8"), artist.encode("utf-8"), url.encode("utf-8"), pwd.encode("utf-8")) except Exception as e: print e if i == 0: content = "不好意思程序员有点菜,没找到这首歌!" replyMsg = reply.TextMsg(toUser, fromUser, content) return replyMsg.send() else: print content replyMsg = reply.TextMsg(toUser, fromUser, content) return replyMsg.send() elif results[0] == "歌手": if len(results) >= 2 and results[1]: artist = results[1] if len(results) == 3 and results[2]: try: page = int(results[2]) start = (page-1)*5+1 end = 5 sql = "select * from music where `artist` like '%s%%' "; sql = sql % artist sql = sql + "limit %d, %d;" % (start, end) return self.getMusic(toUser, fromUser,sql) except Exception as e: print e musicName = results[2] sql = "select * from music where `artist` like '%s%%' "; sql = sql % artist sql = sql + "and `musicName` like '%s%%';" % musicName return self.getMusic(toUser, fromUser,sql) if len(results) == 4 and results[2] == "歌曲" and results[3]: musicName = results[3] sql = "select * from music where `artist` like '%s%%' "; sql = sql % artist sql = sql + "and `musicName` like '%s%%';" % musicName return self.getMusic(toUser, fromUser,sql) else: sql = "select * from music where `artist` like %s limit 5;" args = ('%s%%' % artist) return self.getMusic(toUser, fromUser,sql, args) else: reString = r'https' results = re.match(re.compile(reString), content) if results: page = self.spider.GET(content) #print page results = self.spider.getInstagramAsset(page) i = 0 content = "" for m in results: content = content + m.group(1) + "\n" i = i + 1 reString = r'<meta property="og:video" content="(.*?)" />' results = self.spider.getInstagramAsset(page, None, reString) for m in results: content = content + m.group(1) + "\n" i = i + 1 if i == 0: content = "对不起,程序猿比较菜,没有找到该资源!" print content else: print content replyMsg = reply.TextMsg(toUser, fromUser, content) return replyMsg.send() else: content = self.robot.getRobotReply(fromUser, content) print content #content = "嗨,这么巧的!" replyMsg = reply.TextMsg(toUser, fromUser, content) return replyMsg.send() elif isinstance(recMsg, receive.Msg) and recMsg.MsgType == 'image': toUser = recMsg.FromUserName fromUser = recMsg.ToUserName mediaId = recMsg.MediaId replyMsg = reply.ImageMsg(toUser, fromUser, mediaId) return replyMsg.send() else: print "暂且不处理" return "success" except Exception, Argment: return Argment