Example #1
0
    def analyze(self):
        """消息分析处理
        """
        print "#############start analyze##################"
        msgtype = self.getXmlArgs("MsgType")
        print "msgtype:%s" % msgtype
        ToUserName = self.getXmlArgs("ToUserName")
        FromUserName = self.getXmlArgs("FromUserName")

        #如果是事件消息
        if msgtype == "event":
            event = self.getXmlArgs("Event")
            #关注事件
            if event == "subscribe":
                response = wservice.call("subscribe", FromUserName, "")
                return pushmsg.produceResponsedMsg(FromUserName, ToUserName,
                                                   response.get("data"))
            #取消关注事件
            elif event == "unsubscribe":
                response = wservice.call("unsubscribe", FromUserName, "")
                return pushmsg.produceResponsedMsg(FromUserName, ToUserName,
                                                   response.get("data"))
            #菜单事件
            else:
                msg = self.getXmlArgs("EventKey")
        #如果是发送消息
        elif msgtype == "text":
            msg = self.getXmlArgs("Content")
        #如果是语音消息
        elif msgtype == "voice":
            msg = self.getXmlArgs("Recognition")

        try:  #检测用户是否存在
            weiuser = Role.objects.get(openid=FromUserName)
        except DoesNotExist, e:  #如果不存在,则关注
            response = wservice.call("subscribe", FromUserName, "")
            return pushmsg.produceResponsedMsg(FromUserName, ToUserName,
                                               response.get("data"))
Example #2
0
def subscribe(openid,request):
    """生成用户,用户关注
    """
    try:
        weiuser = role.Role.objects.get(openid=openid)
    except:
        weiuser = None
    #如果已经关注过
    if weiuser:
        #if weiuser.nickname:#如果已经取名
        #player = Charater(weiuser)
        #player.addRoleMessage(["欢迎回来!!!"])
        #player.model.save()
        return wservice.call("nowplot",openid,request)
    else:
        #如果没关注过
        weiuser = role.Role(openid=openid,subscribe_time=datetime.datetime.now())
        weiuser.save()
    player = Charater(weiuser)
    player.plot.notice("subscribe")
    player.model.save()
    return {"result":True,"data":""}
Example #3
0
def changeFormation(openid, request):
    """更换阵法
    """
    weiuser = Role.objects.get(openid=openid)
    player = Charater(weiuser)
    plist = request.split('@')
    ps = [int(p) for p in plist[1:] if p.isdigit()]
    if not ps:
        player.formation.reset()
    else:
        try:
            ps.append(0)  #加入主角
            partners = [player.partners.getPartnerBySeqno(p + 1) for p in ps]
        except IndexError:
            return {"result": True, "data": "伙伴序号有误,请重新选择"}
        player.formation.reset()
        partners.sort(key=operator.attrgetter("formationSerial"))
        for i, p in enumerate(partners, start=1):
            player.formation.setFormation(i, p.template)

    player.model.save()
    return wservice.call("formation_info", openid, request)
Example #4
0
def property_skill_choice(openid, request):
    try:
        return wservice.call(_PS[int(request) - 1][1], openid, request)
    except (ValueError, IndexError):
        return {"result": True, "data": "功能序号有误"}
Example #5
0
def formation_tavern_choice(openid, request):
    try:
        return wservice.call(_FT[int(request) - 1][1], openid, request)
    except (ValueError, IndexError):
        return {"result": True, "data": "功能序号有误"}
Example #6
0
            else:
                msg = self.getXmlArgs("EventKey")
        #如果是发送消息
        elif msgtype == "text":
            msg = self.getXmlArgs("Content")
        #如果是语音消息
        elif msgtype == "voice":
            msg = self.getXmlArgs("Recognition")

        try:  #检测用户是否存在
            weiuser = Role.objects.get(openid=FromUserName)
        except DoesNotExist, e:  #如果不存在,则关注
            response = wservice.call("subscribe", FromUserName, "")
            return pushmsg.produceResponsedMsg(FromUserName, ToUserName,
                                               response.get("data"))
        except Exception, e:
            response = error_msg()
            return pushmsg.produceResponsedMsg(FromUserName, ToUserName,
                                               response.get("data"))
        #用户操作行为分析
        action = self.actionGuess(FromUserName, msg)
        print "################actionGuess:[%s]#############:" % (action)
        ##########################
        try:
            response = wservice.call(action, FromUserName, msg)
        except Exception, e:  #发送错误信息
            response = error_msg()
        ##########################
        return pushmsg.produceResponsedMsg(FromUserName, ToUserName,
                                           response.get("data"))