예제 #1
0
def get_activities_list(user_id, skip=0, count=-1):
    field = ["id", "activity_type", "content_id", "addtime", "fuser"]
    items = []
    if not timeline_client.exists(USER_ACTIVITY_TIME_LINE_PREFIX +
                                  str(user_id)):
        activities = Activity.objects.filter(to_user=user_id)
        for activity in activities:
            add_to_activity_timeline(user_id,
                                     activity.activitytype,
                                     activity.contentid,
                                     activity.addtime,
                                     activity.from_user_id,
                                     lpush=False)
    activity_id_list = timeline_client.lrange(
        USER_ACTIVITY_TIME_LINE_PREFIX + str(user_id), skip, skip + count)
    for activity_info_id in activity_id_list:
        #import pdb;pdb.set_trace()
        activity_info_id = "t:" + activity_info_id.split("t:")[1]
        info = timeline_client.hmget(
            USER_ACTIVITY_PREFIX + "u:" + str(user_id) + activity_info_id,
            field)
        if info:
            item = get_activity(int(info[1]), info[2], get_datetime(info[3]),
                                int(info[4]))
            if item:
                items.append(item)
    #import pdb;pdb.set_trace()
    return {
        "activity_list": items,
        "statistics": {
            "submit_question": 0,
            "answer": 0
        }
    }
예제 #2
0
def get_events_list(user_id, skip=0, count=-1):
    field = ["id", "activity_type", "content_id", "addtime"]
    items = []
    question_submit_count = 0
    answer_count = 0
    if not timeline_client.exists(USER_EVENT_TIME_LINE_PREFIX + str(user_id)):
        events = Event.objects.filter(user_id=user_id)
        for event in events:
            add_to_event_timeline(user_id,
                                  event.eventtype,
                                  event.contentid,
                                  event.addtime,
                                  event.id,
                                  add=True,
                                  update=False,
                                  lpush=False)
    event_id_list = timeline_client.lrange(
        USER_EVENT_TIME_LINE_PREFIX + str(user_id), skip, skip + count)
    for event_info_id in event_id_list:
        #import pdb;pdb.set_trace()
        info = timeline_client.hmget(
            USER_EVENT_PREFIX + "u:" + str(user_id) + event_info_id, field)
        item, question_submit_count, answer_count = get_event(
            int(info[1]), info[2], get_datetime(info[3]),
            question_submit_count, answer_count)
        items.append(item)
    return {
        "event_list": items,
        "statistics": {
            "submit_question": question_submit_count,
            "answer": answer_count
        }
    }
예제 #3
0
def get_unread_message_list(user_id,endtime=None,skip=0,count=-1):
    field=["message_type","content_id","content","status","addtime","fuser_id"]
    items=[]
    if skip<40:
        if not timeline_client.exists(USER_UNREAD_MESSAGE_TIME_LINE_PREFIX+str(user_id)):
            messages=Message.objects.filter(to_user=user_id,status=0)[0:20]
            for message in messages:
                add_to_unread_message_timeline(message.message_type,message.contentid,json.loads(message.content),message.from_user_id,user_id,\
                        message.addtime,True,lpush=False,incr_unread=False)
        message_id_list=timeline_client.lrange(USER_UNREAD_MESSAGE_TIME_LINE_PREFIX+str(user_id),skip,skip+count)
        #import pdb;pdb.set_trace()
        for message_info_id in message_id_list: 
            message_info_id="t:"+message_info_id.split("t:")[1]
            info=timeline_client.hmget(USER_MESSAGE_PREFIX+"u:"+str(user_id)+message_info_id,field)
            if info:
                item=get_message(info[0],info[3],info[2],info[5],get_datetime(info[4]),info[1])
                if item:
                    items.append(item)
    else:
        messages=Message.objects.filter(to_user=user_id,status=0,addtime__lt=endtime)[0:20]
        for message in messages:
            item=get_message(message.message_type,message.status,message.content,message.from_user_id,message.addtime,message.contentid)
            items.append(item)
    endtime=None
    if items:
        endtime=items[-1]["addtime"]
    return {"messages":items,"unread_count":get_unread_message_count(user_id),"endtime":endtime,"count":len(items)}
예제 #4
0
def get_events_list(user_id,skip=0,count=-1):
    field=["id","activity_type","content_id","addtime"]
    items=[]
    question_submit_count=0
    answer_count=0
    if not timeline_client.exists(USER_EVENT_TIME_LINE_PREFIX+str(user_id)):
        events=Event.objects.filter(user_id=user_id)
        for event in events:
            add_to_event_timeline(user_id,event.eventtype,event.contentid,event.addtime,event.id,add=True,update=False,lpush=False)
    event_id_list=timeline_client.lrange(USER_EVENT_TIME_LINE_PREFIX+str(user_id),skip,skip+count)
    for event_info_id in event_id_list:
        #import pdb;pdb.set_trace()
        info=timeline_client.hmget(USER_EVENT_PREFIX+"u:"+str(user_id)+event_info_id,field)
        item,question_submit_count,answer_count=get_event(int(info[1]),info[2],get_datetime(info[3]),question_submit_count,answer_count)
        items.append(item)
    return {"event_list":items,"statistics":{"submit_question":question_submit_count,"answer":answer_count}}
예제 #5
0
def get_unread_message_list(user_id, endtime=None, skip=0, count=-1):
    field = [
        "message_type", "content_id", "content", "status", "addtime",
        "fuser_id"
    ]
    items = []
    if skip < 40:
        if not timeline_client.exists(USER_UNREAD_MESSAGE_TIME_LINE_PREFIX +
                                      str(user_id)):
            messages = Message.objects.filter(to_user=user_id, status=0)[0:20]
            for message in messages:
                add_to_unread_message_timeline(message.message_type,message.contentid,json.loads(message.content),message.from_user_id,user_id,\
                        message.addtime,True,lpush=False,incr_unread=False)
        message_id_list = timeline_client.lrange(
            USER_UNREAD_MESSAGE_TIME_LINE_PREFIX + str(user_id), skip,
            skip + count)
        #import pdb;pdb.set_trace()
        for message_info_id in message_id_list:
            message_info_id = "t:" + message_info_id.split("t:")[1]
            info = timeline_client.hmget(
                USER_MESSAGE_PREFIX + "u:" + str(user_id) + message_info_id,
                field)
            if info:
                item = get_message(info[0], info[3], info[2], info[5],
                                   get_datetime(info[4]), info[1])
                if item:
                    items.append(item)
    else:
        messages = Message.objects.filter(to_user=user_id,
                                          status=0,
                                          addtime__lt=endtime)[0:20]
        for message in messages:
            item = get_message(message.message_type, message.status,
                               message.content, message.from_user_id,
                               message.addtime, message.contentid)
            items.append(item)
    endtime = None
    if items:
        endtime = items[-1]["addtime"]
    return {
        "messages": items,
        "unread_count": get_unread_message_count(user_id),
        "endtime": endtime,
        "count": len(items)
    }
예제 #6
0
def get_activities_list(user_id,skip=0,count=-1):
    field=["id","activity_type","content_id","addtime","fuser"]
    items=[]
    if not timeline_client.exists(USER_ACTIVITY_TIME_LINE_PREFIX+str(user_id)):
        activities=Activity.objects.filter(to_user=user_id)
        for activity in activities:
            add_to_activity_timeline(user_id,activity.activitytype,activity.contentid,activity.addtime,activity.from_user_id,lpush=False)
    activity_id_list=timeline_client.lrange(USER_ACTIVITY_TIME_LINE_PREFIX+str(user_id),skip,skip+count)
    for activity_info_id in activity_id_list:
        #import pdb;pdb.set_trace()
        activity_info_id="t:"+activity_info_id.split("t:")[1]
        info=timeline_client.hmget(USER_ACTIVITY_PREFIX+"u:"+str(user_id)+activity_info_id,field)
        if info:
            item=get_activity(int(info[1]),info[2],get_datetime(info[3]),int(info[4]))
            if item:
                items.append(item)
    #import pdb;pdb.set_trace()
    return {"activity_list":items,"statistics":{"submit_question":0,"answer":0}}