예제 #1
0
    def create(cls, **query):
        inst = super(UserGiftLog, cls).create(**query)
        if inst:
            if inst.gift_from == const.FROM_RECORD:
                key = VIDEO_GIFT_KEY % (inst.from_id)
                try:
                    if Redis.exists(key) and query.get("send_success"):
                        Redis.zadd(key,
                                   util.datetime2timestamp(inst.create_at),
                                   cjson.dumps(inst, 2))
                except exceptions.ResponseError:
                    Redis.delete(key)

            key = TOP_SENDER_KEY % (inst.user_id)
            try:
                if Redis.exists(key) and query.get("send_success"):
                    Redis.zincrby(key, inst.gold_price, inst.from_user)
            except exceptions.ResponseError:
                Redis.delete(key)

            if inst.gift_from == const.FROM_LIVE:
                key = USER_TOTAL_GOLD % ({'uid': inst.user_id})
                Redis.delete(key)

        return inst
예제 #2
0
 def test_cached_zset(self):
     self._cached_zset()
     self.assertEqual(Redis.get(self.ZSET_KEY), 'empty')
     with self.assertRaises(exceptions.ResponseError):
         Redis.zadd(self.ZSET_KEY, 1, 'dog', 2, 'pig')
         Redis.delete(self.ZSET_KEY)
     self._cached_zset((1, 'dog', 2, 'pig'))
     self.assertListEqual(Redis.zrevrange(self.ZSET_KEY, 0, -1),
                          ['pig', 'dog'])
예제 #3
0
 def create_model(self):
     _id = super(ActivityComment, self).create_model()
     if _id:
         key = self.ACTIVITY_COMMENT_IDS % ({'aid': str(self.activity)})
         # 列表为空时key对应的value是一个string
         try:
             if Redis.exists(key):
                 Redis.zadd(key, self.create_at, str(_id))
         except exceptions.ResponseError:
             Redis.delete(key)
     return _id
예제 #4
0
    def create_model(self):
        _id = super(UserPopularGame, self).create_model()
        if _id:
            key = self.POP_GAME_IDS % ({'uid': str(self.source)})
            try:
                if Redis.exists(key):
                    Redis.zadd(key, self.create_at, str(self.target))
            except exceptions.ResponseError:
                Redis.delete(key)

        return _id
예제 #5
0
    def create_model(self):
        _id = super(DaTangVideo, self).create_model()
        if _id:
            if self.online:
                key = self.USER_GAME_VIDEO_IDS % ({'uid': str(self.author), 'gid': str(self.game)})
                try:
                    if Redis.exists(key):
                        Redis.zadd(key, self.create_at, str(_id))
                except exceptions.ResponseError:
                    Redis.delete(key)

        return _id
예제 #6
0
    def update_model(self, data={}):
        obj = super(DaTangVideo, self).update_model(data)
        if obj:
            # 下线-->上线
            if self.offline and obj.online:
                key = self.USER_GAME_VIDEO_IDS % ({'uid': str(self.author), 'gid': str(self.game)})
                try:
                    if Redis.exists(key):
                        Redis.zadd(key, self.create_at, str(self._id))
                except exceptions.ResponseError:
                    Redis.delete(key)

        return obj
예제 #7
0
    def create_model(self):
        _id = super(ActivityVideo, self).create_model()
        if _id:
            key = self.LATEST_VIDEO_IDS % ({'aid': str(self.activity_id)})
            try:
                Redis.zadd(key, self.create_at, str(self._id))
            except exceptions.ResponseError:
                Redis.delete(key)

            Redis.delete(self.TOP_COMPETE_VIDEO_IDS % ({'aid': str(self.activity_id)}))

            Redis.delete(self.TOP_VIDEO_END % ({'aid': str(self.activity_id)}))
            Redis.delete(self.TOP_MANUAL_TOP % ({'aid': str(self.activity_id)}))
        return _id
예제 #8
0
    def create_model(self):
        _id = super(Comment, self).create_model()
        if _id:
            # 更新视频评论数
            from wanx.models.video import Video
            video = Video.get_one(str(self.video), check_online=False)
            video.update_model({'$inc': {'comment_count': 1}})

            key = self.VIDEO_COMMENT_IDS % ({'vid': str(self.video)})
            # 列表为空时key对应的value是一个string
            try:
                if Redis.exists(key):
                    Redis.zadd(key, self.create_at, str(_id))
            except exceptions.ResponseError:
                Redis.delete(key)
        return _id
예제 #9
0
    def create_model(self):
        _id = super(Reply, self).create_model()
        if _id:
            # 更新评论回复数
            comment = Comment.get_one(str(self.comment), check_online=False)
            comment.update_model({'$inc': {'reply': 1}})
            # 更新回复的回复数
            if self.reply:
                _reply = Reply.get_one(str(self.reply), check_online=False)
                _reply.update_model({'$inc': {'reply_count': 1}})

            key = self.COMMENT_REPLY_IDS % ({'cid': str(self.comment)})
            # 列表为空时key对应的value是一个string
            try:
                if Redis.exists(key):
                    Redis.zadd(key, self.create_at, str(_id))
            except exceptions.ResponseError:
                Redis.delete(key)
        return _id