Beispiel #1
0
def handle(param):

    ret = 0
    userid = param.get('userid')
    skey = param.get('skey')
    bid = param.get('bid')
    if userid and skey and bid != None:
        tmp = userstruct.read_redis(userid)

        if not tmp or tmp.skey != skey:
            return {'ret': 0, 'data': {'des': 'skey error'}}

        mapdata = tmp.getmap()
        logger.info(mapdata)

        if mapdata:
            upoint = mapdata.getUpgrade(bid)
            if upoint > 0 and tmp.gamepoint > upoint and mapdata.upgrade(bid):

                logger.info('change point:%s,%s', tmp.gamepoint,
                            tmp.gamepoint - upoint)

                rds = rdsmanager.get_client(userid)
                rkey = 'hashuser:%s' % userid
                pipe = rds.pipeline()
                pipe.hset(rkey, 'mapdata', mapdata.tojson())
                pipe.hincrby(rkey, 'gamepoint', -upoint)
                pipe.execute()

                userstruct.write_redis_updateuser(userid)

                return {'ret': 1, 'data': mapdata.todict()}

    return {'ret': ret, 'data': {'des': 'input error'}}
Beispiel #2
0
def handle(param):

    ret = 0
    userid = param.get('userid')
    skey = param.get('skey')
    bid = param.get('bid')
    if userid and skey and bid != None:
        tmp = userstruct.read_redis(userid)

        if not tmp or tmp.skey != skey:
            return {'ret': 0, 'data': {'des': 'skey error'}}

        mapdata = tmp.getmap()
        logger.info(mapdata)

        if mapdata:
            bret = mapdata.activate(bid)
            if bret:
                tmpgen = mapdata.getGenAll()
                userstruct.write_redis_dict(userid,
                                            {'mapdata': mapdata.tojson()})
                return {'ret': 1, 'data': tmpgen}
            else:
                return {'ret': 0, 'data': {'des': 'input error'}}
    return {'ret': 0, 'data': {}}
Beispiel #3
0
def handle(param):

    ret = 0

    userid = param.get('userid')
    skey = param.get('skey')
    oldpwd = param.get('oldpwd')
    newpwd = param.get('newpwd')

    logger.info("%s,%s", userid, skey)

    if userid and skey and oldpwd:
        tmp = userstruct.read_redis(userid)
        if not tmp or tmp.skey != skey:
            return {'ret': 0, 'data': {'des': 'skey error'}}

        if tmp.password != oldpwd:
            return {'ret': 0, 'data': {'des': 'oldpwd error'}}

        if not userstruct.checkpwdfrt(newpwd):
            return {'ret': 0, 'data': {'des': 'newpwd format error'}}

        #skey = md5('%s%s%s' % (tmp.username, time.ctime(), random.random()))
        #tmp.skey = skey
        #userstruct.write_redis_dict(userid, {'skey':skey})
        sqlutil.execsqlcommit(
            "UPDATE userinfo SET `password` = '%s' where userid = %s" %
            (newpwd, userid))

        logger.debug(tmp)
        return {'ret': 1, 'data': tmp.todict()}

    return {'ret': 0, 'data': {}}
Beispiel #4
0
def handle(param):
    ret = 1

    userid = param.get('userid')
    skey = param.get('skey')
    otherid = param.get('otherid')

    mapdata = mapstruct.MapInfo()
    tmpgen = mapdata.getGenAll()
    if userid and skey:
        tmp = userstruct.read_redis(userid)

        if not tmp or tmp.skey != skey:
            return {'ret': 0, 'data': {'des': 'skey error'}}

        if not otherid:
            mapdata = tmp.getmap()
            logger.info("%s", tmp)
            if mapdata:
                tmpgen = mapdata.getGenAll()
                tmpgen['exp'] = tmp.exp
        else:
            other = userstruct.read_user(otherid)
            if not other:
                return {'ret': 0, 'data': {'des': 'otherid error'}}

            mapdata = other.getmap()
            logger.info("%s", tmp)
            if mapdata:
                tmpgen = mapdata.getGenAll()
                tmpgen['exp'] = other.exp

    return {'ret': ret, 'data': tmpgen}
Beispiel #5
0
def handle(param):

	ret = 0
	userid = param.get('userid')
	skey = param.get('skey')
	bid = param.get('bid')
	if userid and skey and bid != None:
		tmp = userstruct.read_redis(userid)

		if not tmp or tmp.skey != skey: 
			return {'ret':0, 'data':{'des': 'skey error'}}

		mapdata = tmp.getmap()
		logger.info('mapdata:%s', mapdata)

		if mapdata:
			gentmp = mapdata.getGen(bid)

			logger.info('gentmp:%s', gentmp)
			if gentmp['genflag']:
				mapdata.updatetime[bid] = time.time()


				if gentmp['buildstate'] == 2:
					mapdata.buildstate[bid] = 0

				logger.info('%s,%s', gentmp['buildstate'], mapdata.buildstate[bid])

				mapdata.delAttack(bid)

				logger.info('after:%s', mapdata)

				rds = rdsmanager.get_client(userid)
				rkey = 'hashuser:%s' % userid
				pipe = rds.pipeline()
				pipe.hset(rkey, 'mapdata', mapdata.tojson())
				pipe.hincrby(rkey, 'gamepoint', gentmp['gen'])
				pipe.hincrby(rkey, 'exp', gentmp['gen'])
				pipe.execute()

				userstruct.write_redis_updateuser(userid)

				logger.info('mapdata:%s', mapdata)

				return {'ret':1, 'data':gentmp}
			
			return {'ret':1, 'data':gentmp}
		
	return {'ret':ret, 'data':{}}
Beispiel #6
0
def handle_accept(param):
    ret = 0
    userid = param.get('userid')
    skey = param.get('skey')
    otherid = param.get('otherid')
    acode = param.get('acode')

    if userid and skey and otherid != None and acode != None:
        tmp = userstruct.read_redis(userid)
        if not tmp or tmp.skey != skey:
            return {'ret': 0, 'data': {'des': 'skey error'}}

        dbret = friendstruct.acc_friend(otherid, userid, acode)
        return {'ret': 1, 'data': dbret}

    return {'ret': 0, 'data': {'des': 'input error'}}
Beispiel #7
0
def handle_getfriendreq(param):
    ret = 0
    userid = param.get('userid')
    skey = param.get('skey')

    if userid and skey:
        tmp = userstruct.read_redis(userid)
        if not tmp or tmp.skey != skey:
            return {'ret': 0, 'data': {'des': 'skey error'}}

        dbreq = friendstruct.get_friendreq(userid)
        dbacc = friendstruct.get_friendacc(userid)

        return {'ret': 1, 'data': {'req': dbreq, 'acc': dbacc}}

    return {'ret': 0, 'data': {'des': 'input error'}}
Beispiel #8
0
def handle(param):

    ret = 0
    userid = param.get('userid')
    skey = param.get('skey')

    attackuserid = param.get('attackuserid')
    attackid = param.get('attackid')
    bid = param.get('attackbid')
    if userid and skey and attackuserid and attackid and bid != None:
        tmp = userstruct.read_redis(userid)

        if not tmp or tmp.skey != skey:
            return {'ret': 0, 'data': {'des': 'skey error'}}

        if userid == attackuserid:
            return {'ret': 0, 'data': {'des': 'not can attac youself'}}

        apoint = mapstruct.getAttacPoint(attackid)
        if apoint <= 0:
            return {'ret': 0, 'data': {'des': 'attackid input error'}}

        if tmp.gamepoint < apoint:
            return {'ret': 0, 'data': {'des': 'you point not enough'}}

        attackuser = userstruct.read_user(attackuserid)
        if not attackuser:
            return {'ret': 0, 'data': {'des': 'attackbid error'}}

        mapdata = attackuser.getmap()
        aret = mapdata.addAttack(bid, attackid)
        if not aret:
            return {'ret': 0, 'data': {'des': 'aret error'}}

        logger.info('mapdata:%s, apoint:%s', mapdata, apoint)

        userstruct.write_redis_dict(attackuserid,
                                    {'mapdata': mapdata.tojson()})

        rds = rdsmanager.get_client(userid)
        rkey = 'hashuser:%s' % userid
        rds.hincrby(rkey, 'gamepoint', -apoint)

        return {'ret': 1, 'data': {'des': 'attac ok'}}

    return {'ret': 0, 'data': {'des': 'input error'}}
Beispiel #9
0
def handle_getfriend(param):
    ret = 0
    userid = param.get('userid')
    skey = param.get('skey')

    if userid and skey:
        tmp = userstruct.read_redis(userid)
        if not tmp or tmp.skey != skey:
            return {'ret': 0, 'data': {'des': 'skey error'}}

        dbret = friendstruct.get_friend(userid)

        ftmp = []
        for p in dbret:
            p['title'] = userstruct.getusertitle(p['exp'])
        return {'ret': 1, 'data': dbret}

    return {'ret': 0, 'data': {'des': 'input error'}}
Beispiel #10
0
def handle(param):

    ret = 0

    userid = param.get('userid')
    skey = param.get('skey')
    logger.info("%s,%s", userid, skey)

    if userid and skey:
        tmp = userstruct.read_redis(userid)
        if not tmp or tmp.skey != skey:
            return {'ret': 0, 'data': {'des': 'skey error'}}

        userstruct.write_redis_dict(tmp.userid, {})

        return {'ret': 1, 'data': tmp.todict()}

    return {'ret': 0, 'data': {}}
Beispiel #11
0
def handle_add(param):
    ret = 0
    userid = param.get('userid')
    skey = param.get('skey')
    otherusername = param.get('otherusername')

    if userid and skey and otherusername:
        tmp = userstruct.read_redis(userid)
        if not tmp or tmp.skey != skey:
            return {'ret': 0, 'data': {'des': 'skey error'}}

        other = userstruct.read_mysql(otherusername)
        if not other:
            return {'ret': 0, 'data': {'des': 'otherusername error'}}

        logger.debug("%s, %s", userid, other.userid)
        dbret = friendstruct.req_friend(userid, other.userid)
        return {'ret': 1, 'data': dbret}

    return {'ret': 0, 'data': {'des': 'input error'}}
Beispiel #12
0
def handle(param):

    ret = 0
    userid = param.get('userid')
    skey = param.get('skey')

    guardid = param.get('guardid')
    bid = param.get('guardbid')

    if userid and skey and guardid and bid != None:
        tmp = userstruct.read_redis(userid)

        if not tmp or tmp.skey != skey:
            return {'ret': 0, 'data': {'des': 'skey error'}}

        apoint = mapstruct.getGuardPoint(guardid)
        if apoint <= 0:
            return {'ret': 0, 'data': {'des': 'attackid input error'}}

        if tmp.gamepoint < apoint:
            return {'ret': 0, 'data': {'des': 'you point not enough'}}

        mapdata = tmp.getmap()
        aret = mapdata.guard(bid, guardid)
        if not aret:
            return {'ret': 0, 'data': {'des': 'aret error'}}

        logger.info('mapdata:%s, apoint:%s', mapdata, apoint)

        rds = rdsmanager.get_client(userid)
        rkey = 'hashuser:%s' % userid
        pipe = rds.pipeline()
        pipe.hset(rkey, 'mapdata', mapdata.tojson())
        pipe.hincrby(rkey, 'gamepoint', -apoint)
        pipe.execute()

        userstruct.write_redis_updateuser(userid)

        return {'ret': 1, 'data': {'des': 'attac ok'}}

    return {'ret': 0, 'data': {'des': 'input error'}}
Beispiel #13
0
def handle(param):

	ret = 0
	userid = param.get('userid')
	skey = param.get('skey')
	otherid = param.get('otherid')

	if userid and skey:
		tmp = userstruct.read_redis(userid)

		if not tmp or tmp.skey != skey: 
			return {'ret':0, 'data':{'des': 'skey error'}}

		#myself
		if not otherid:		
			mapdata = tmp.getmap()
			logger.debug('%s, %s', mapdata, type(mapdata))
			if not mapdata:
				mapdata = mapstruct.MapInfo()
				userstruct.write_redis_dict(userid, {'mapdata': mapdata.tojson()})

			logger.debug('%s, %s', mapdata, type(mapdata))
			return {'ret':1, 'data':mapdata.todict()}
		#other	
		else:
			other = userstruct.read_user(otherid)
			if not other:
				return {'ret':0, 'data':{'des': 'otherid error'}}

			mapdata = other.getmap()
			logger.debug('%s, %s', mapdata, type(mapdata))
			if not mapdata:
				mapdata = mapstruct.MapInfo()
				userstruct.write_redis_dict(otherid, {'mapdata': mapdata.tojson()})

			logger.debug('%s, %s', mapdata, type(mapdata))
			return {'ret':1, 'data':mapdata.todict()}


	return {'ret':ret, 'data':{'des': 'skey error'}}
Beispiel #14
0
def handle(param):

    ret = 0
    username = param.get('username')
    passwd = param.get('password')
    if not username or not passwd:
        return {'ret': 0, 'date': {'desc': 'input error'}}

    tmp = userstruct.read_mysql(username)
    logger.debug(tmp)
    if tmp and passwd == tmp.password:
        rtmp = userstruct.read_redis(tmp.userid)
        if rtmp:
            tmp = rtmp

        skey = md5('%s%s%s' % (username, time.ctime(), random.random()))
        tmp.skey = skey

        userstruct.write_redis_all(tmp)

        logger.debug(tmp)
        return {'ret': 1, 'data': tmp.todict()}

    return {'ret': 0, 'data': {'desc': 'username or password error'}}