Example #1
0
    def test_user_activity_view(self):

        # get
        user1 = backend.add_user('username1','photo_url','weibo_id1')
        user2 = backend.add_user('username2','photo_url','weibo_id2')
        post1 = backend.add_post('title1',user1['id'],'video_url',
                    pic_small='pic_small')
        post2 = backend.add_post('title2',user1['id'],'video_url',
                    pic_small='pic_small')
        
        comment1 = backend.add_comment(post1['id'],'comment1',user1['id'])

        ac1 = {
                'post_id':post1['id'],
                'from_id':user1['id'],
                'to_id':user2['id'],
                'atype':'like'
                }
        ac2 = {
                'post_id':post1['id'],
                'from_id':user1['id'],
                'comment_id':comment1['id'],
                'to_id':user2['id'],
                'atype':'comment'
                }


        ret = backend.add_activity(ac1)
        ret = backend.add_activity(ac2)
        backend.new_install(user2['id'],'device_token')

        headers = self.generate_header('weibo_id2')
        resp = self.client.get('/user/%d/activity' % user2['id'],headers=headers)
        _data = json.loads(resp.data)
        assert resp.status_code == 200
        assert len(_data['results']) == 2

        redis.flushall()
        redis.hset('ACTIVITY::UPDATETIME::%(user_id)s' % {'user_id':user2['id']},
                                'last_update_time',int(time.time() - 3600 * 6))

        resp = self.client.get('/user/%d/activity/count' % user2['id'],
                headers=headers)
        _data = json.loads(resp.data)
        assert resp.status_code == 200
        assert _data['count'] == 2

        redis.hset('ACTIVITY::UPDATETIME::%(user_id)s' % {'user_id':user2['id']},
                                'last_update_time',int(time.time()) + 2)

        resp = self.client.get('/user/%d/activity/count' % user2['id'],
                headers=headers)
        _data = json.loads(resp.data)
        assert resp.status_code == 200
        assert _data['count'] == 0
Example #2
0
    def get(self,user_id):
        try:
            page = int(request.values.get('page'))
        except:
            page = 1

        limit = 10
        offset = (page-1) * limit
        
        feeds = backend.get_latest_feed(user_id,limit,offset)

        if len(feeds) > 0:
            feeds = pipe_load(feeds)   
        
        curr_user = backend.get_user_by_uid(g.ukey)
        liked_post_ids = [p['id'] for p in feeds]
        liked_dict = backend.is_like_post(curr_user['id'],liked_post_ids)
        for up in feeds:
            up['is_like'] = liked_dict.get(up['id']) or False

        if page == 1:
            redis.hset(FEED_UPDATE_TIME_KEY % {'user_id':user_id},
                                'last_update_time',int(time.time()))
        return jsonify(results=feeds,page=page)
Example #3
0
    def get(self, user_id):
        try:
            page = int(request.values.get('page'))
        except:
            page = 1

        limit = 10
        offset = (page - 1) * limit

        feeds = backend.get_latest_feed(user_id, limit, offset)

        if len(feeds) > 0:
            feeds = pipe_load(feeds)

        curr_user = backend.get_user_by_uid(g.ukey)
        liked_post_ids = [p['id'] for p in feeds]
        liked_dict = backend.is_like_post(curr_user['id'], liked_post_ids)
        for up in feeds:
            up['is_like'] = liked_dict.get(up['id']) or False

        if page == 1:
            redis.hset(FEED_UPDATE_TIME_KEY % {'user_id': user_id},
                       'last_update_time', int(time.time()))
        return jsonify(results=feeds, page=page)
Example #4
0
            ac_list.append(ac)

        try:
            _user = backend.get_user(user_id)
        except BackendError,ex:
            traceback.print_exc()
        try:
            backend.set_install(user_id,{'badge':0})
            rq.enqueue('motiky.worker.apns_push',
                        user_id=user_id,data={
                            'badge':0
                            })
        except BackendError,ex:
            traceback.print_exc()

        redis.hset(ACTIVITY_UPDATE_TIME_KEY % {'user_id':user_id},
                        'last_update_time',int(time.time()))

        return jsonify(results=ac_list)

user_activity_func = UserActivityView.as_view('user_activity')
user_new_activity_count_func = UserNewActivityCountView.as_view('user_new_activity_count')

instance.add_url_rule('/user/<int:user_id>/activity',
        view_func=user_activity_func,methods=['GET'])

instance.add_url_rule('/user/<int:user_id>/activity/count',
        view_func=user_new_activity_count_func,methods=['GET'])



Example #5
0
    def test_user_activity_view(self):

        # get
        user1 = backend.add_user('username1', 'photo_url', 'weibo_id1')
        user2 = backend.add_user('username2', 'photo_url', 'weibo_id2')
        post1 = backend.add_post('title1',
                                 user1['id'],
                                 'video_url',
                                 pic_small='pic_small')
        post2 = backend.add_post('title2',
                                 user1['id'],
                                 'video_url',
                                 pic_small='pic_small')

        comment1 = backend.add_comment(post1['id'], 'comment1', user1['id'])

        ac1 = {
            'post_id': post1['id'],
            'from_id': user1['id'],
            'to_id': user2['id'],
            'atype': 'like'
        }
        ac2 = {
            'post_id': post1['id'],
            'from_id': user1['id'],
            'comment_id': comment1['id'],
            'to_id': user2['id'],
            'atype': 'comment'
        }

        ret = backend.add_activity(ac1)
        ret = backend.add_activity(ac2)
        backend.new_install(user2['id'], 'device_token')

        headers = self.generate_header('weibo_id2')
        resp = self.client.get('/user/%d/activity' % user2['id'],
                               headers=headers)
        _data = json.loads(resp.data)
        assert resp.status_code == 200
        assert len(_data['results']) == 2

        redis.flushall()
        redis.hset(
            'ACTIVITY::UPDATETIME::%(user_id)s' % {'user_id': user2['id']},
            'last_update_time', int(time.time() - 3600 * 6))

        resp = self.client.get('/user/%d/activity/count' % user2['id'],
                               headers=headers)
        _data = json.loads(resp.data)
        assert resp.status_code == 200
        assert _data['count'] == 2

        redis.hset(
            'ACTIVITY::UPDATETIME::%(user_id)s' % {'user_id': user2['id']},
            'last_update_time',
            int(time.time()) + 2)

        resp = self.client.get('/user/%d/activity/count' % user2['id'],
                               headers=headers)
        _data = json.loads(resp.data)
        assert resp.status_code == 200
        assert _data['count'] == 0
Example #6
0
        ac_list = []
        for ac in acs:
            try:
                ac = filter_activity(ac)
            except:
                traceback.print_exc()
                continue
            ac_list.append(ac)

        try:
            _user = backend.get_user(user_id)
        except BackendError, ex:
            traceback.print_exc()
        try:
            backend.set_install(user_id, {"badge": 0})
            rq.enqueue("motiky.worker.apns_push", user_id=user_id, data={"badge": 0})
        except BackendError, ex:
            traceback.print_exc()

        redis.hset(ACTIVITY_UPDATE_TIME_KEY % {"user_id": user_id}, "last_update_time", int(time.time()))

        return jsonify(results=ac_list)


user_activity_func = UserActivityView.as_view("user_activity")
user_new_activity_count_func = UserNewActivityCountView.as_view("user_new_activity_count")

instance.add_url_rule("/user/<int:user_id>/activity", view_func=user_activity_func, methods=["GET"])

instance.add_url_rule("/user/<int:user_id>/activity/count", view_func=user_new_activity_count_func, methods=["GET"])