Esempio n. 1
0
def get_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_MESSAGE_TIME_LINE_PREFIX+str(user_id)):
            messages=Message.objects.filter(to_user=user_id)[0:40]
            for message in messages:
                add_to_message_timeline(message.message_type,message.contentid,json.loads(message.content),message.from_user_id,user_id,message.addtime,\
                        status=message.status,only_all=True,lpush=False)
        message_id_list=timeline_client.lrange(USER_MESSAGE_TIME_LINE_PREFIX+str(user_id),skip,skip+count)
        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,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)}
Esempio n. 2
0
def insert_message(message_type,contentid,fuser_id,touser_id,content_dict):
    addtime=datetime.now()
    content={}
    content["addtime"]=addtime.strftime(TIME_STRF)
    content["user_id"]=fuser_id
    content["user_name"]=content_dict["user_name"]
    Message_list=[] 
    fields=['message_type','contentid','content','from_user_id','to_user_id','addtime','status'] 
    if message_type==6:
        Message_list=[(message_type,contentid,json.dumps(content),fuser_id,touser_id,addtime)]
    else:
        if message_type==1 or message_type==2:
            question_id=content_dict["question_id"]
            content["question_id"]=question_id
            content["question_title"]=content_dict["question_title"]
            if message_type==1:
                content["answer_id"]=contentid
                content["question_user_id"]=int(content_dict["question_user_id"])
                #question_user_id=content_dict["question_user_id"]
                question_followers=QustionFollow.objects.filter(question_id=question_id).values("user_id")
                Message_list=[(message_type,contentid,json.dumps(content),fuser_id,touser_id,addtime,0)for follow in question_followers for userid in\
                        follow.values() if userid!=int(fuser_id)  ]
                Message_list.append((message_type,contentid,json.dumps(content),fuser_id,int(content_dict["question_user_id"]),addtime,0))
            else:
                Message_list=[(message_type,contentid,json.dumps(content),fuser_id,touser_id,addtime,0)]
        else:
            content["question_id"]=content_dict["question_id"]
            content["answer_id"]=content_dict["answer_id"]
            if message_type==3:
                content["evaluate_answer_id"]=contentid
                content["answer_content"]=content_dict["answer_content"]
                content["status"]=content_dict["status"]
            elif message_type==4:
                content["answer_id"]=content_dict["answer_id"]
                content["answer_content"]=content_dict["answer_content"]
                content["comment_id"]=contentid
            elif message_type==5:
                content["comment_id"]=contentid
                content["answer_content"]=content_dict["answer_content"]
                content["comment_content"]=content_dict["commnet_content"]
            Message_list=[(message_type,contentid,json.dumps(content),fuser_id,touser_id,addtime,0)]
    if Message_list:
        add_to_message_timeline(message_type,contentid,content,fuser_id,touser_id,addtime,status=0)
        Message.messageobjects.bulk_insert_ignore(fields,Message_list)
    return addtime
Esempio n. 3
0
def get_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_MESSAGE_TIME_LINE_PREFIX +
                                      str(user_id)):
            messages = Message.objects.filter(to_user=user_id)[0:40]
            for message in messages:
                add_to_message_timeline(message.message_type,message.contentid,json.loads(message.content),message.from_user_id,user_id,message.addtime,\
                        status=message.status,only_all=True,lpush=False)
        message_id_list = timeline_client.lrange(
            USER_MESSAGE_TIME_LINE_PREFIX + str(user_id), skip, skip + count)
        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,
                                          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)
    }
Esempio n. 4
0
def insert_message(message_type, contentid, fuser_id, touser_id, content_dict):
    addtime = datetime.now()
    content = {}
    content["addtime"] = addtime.strftime(TIME_STRF)
    content["user_id"] = fuser_id
    content["user_name"] = content_dict["user_name"]
    Message_list = []
    fields = [
        'message_type', 'contentid', 'content', 'from_user_id', 'to_user_id',
        'addtime', 'status'
    ]
    if message_type == 6:
        Message_list = [(message_type, contentid, json.dumps(content),
                         fuser_id, touser_id, addtime)]
    else:
        if message_type == 1 or message_type == 2:
            question_id = content_dict["question_id"]
            content["question_id"] = question_id
            content["question_title"] = content_dict["question_title"]
            if message_type == 1:
                content["answer_id"] = contentid
                content["question_user_id"] = int(
                    content_dict["question_user_id"])
                #question_user_id=content_dict["question_user_id"]
                question_followers = QustionFollow.objects.filter(
                    question_id=question_id).values("user_id")
                Message_list=[(message_type,contentid,json.dumps(content),fuser_id,touser_id,addtime,0)for follow in question_followers for userid in\
                        follow.values() if userid!=int(fuser_id)  ]
                Message_list.append(
                    (message_type, contentid, json.dumps(content), fuser_id,
                     int(content_dict["question_user_id"]), addtime, 0))
            else:
                Message_list = [(message_type, contentid, json.dumps(content),
                                 fuser_id, touser_id, addtime, 0)]
        else:
            content["question_id"] = content_dict["question_id"]
            content["answer_id"] = content_dict["answer_id"]
            if message_type == 3:
                content["evaluate_answer_id"] = contentid
                content["answer_content"] = content_dict["answer_content"]
                content["status"] = content_dict["status"]
            elif message_type == 4:
                content["answer_id"] = content_dict["answer_id"]
                content["answer_content"] = content_dict["answer_content"]
                content["comment_id"] = contentid
            elif message_type == 5:
                content["comment_id"] = contentid
                content["answer_content"] = content_dict["answer_content"]
                content["comment_content"] = content_dict["commnet_content"]
            Message_list = [(message_type, contentid, json.dumps(content),
                             fuser_id, touser_id, addtime, 0)]
    if Message_list:
        add_to_message_timeline(message_type,
                                contentid,
                                content,
                                fuser_id,
                                touser_id,
                                addtime,
                                status=0)
        Message.messageobjects.bulk_insert_ignore(fields, Message_list)
    return addtime