Example #1
0
    def search(cls, para):
        name = para['name']
        cli = Redis()
        uid_list = cli.srandmember('%s:%s'%(cls.NAME_INDEX, name), cls.NAME_SEARCH_NUM)

        ret = [{'uid':uid, 'name': User(uid).getName(), 'icon': User(uid).getIcon(),'level':User(uid).level} for uid in uid_list]
        return {'users': ret}
Example #2
0
    def setName(self, name):
        old_name = self.name
        self.name = name

        uid = self.key_
        cli = Redis()
        cli.srem('%s:%s'%(self.NAME_INDEX, old_name), uid)
        cli.sadd('%s:%s'%(self.NAME_INDEX, name), uid)
Example #3
0
    def importFriends(cls, uid, uid_list):
        friend_num = Redis().scard(cls.gen_frd_key(uid))
        if friend_num >= cls.MAX_FRIEND_NUM:
            return False

        #truncate for fb import
        if friend_num + len(uid_list) > cls.MAX_FRIEND_NUM:
            uid_list = uid_list[:cls.MAX_FRIEND_NUM - friend_num]

        pipe = Redis().pipeline()
        for i in uid_list:
            pipe.sadd(cls.gen_frd_key(uid), i)
            pipe.sadd(cls.gen_frd_key(i), uid)
        pipe.execute()
Example #4
0
    def send(cls, para):
        from_uid = para['from_uid']
        to_uid = para['to_uid']

        #TODO
        # if cls.isSent(from_uid, to_uid):
        #     return Error.GIFT_SENT

        now = int(time.time())

        key = '%s:%s:%s' % (from_uid, to_uid, now)

        gift_type = random.randint(1, 2)

        data = {
                'from_uid': from_uid,
                'time': now,
                'gid': key,
                'type': gift_type,
                }

        item_type = cls.getIndexItemType()
        item_type(key).setAll(data)

        user_gift = cls(to_uid)
        if user_gift.size() < cls.MAX_SIZE:
            user_gift.addKey(key)

            cli = Redis()
            key = cls.genGiftCacheKey(from_uid, to_uid)
            cli.set(key, 1)
            cli.expire(key, cls.DAY_SEC)
        else:
            Log.error('user_gift full, unable to receive')

        return {}