예제 #1
0
파일: message.py 프로젝트: alexdiao/3805
def do_reply(receiver_id, reply_to_id, sender_id, content):
    """Reply a message"""
    if not content.strip():
        return "回复内容不能为空!"
    if len(content) > 500:
        return "回复内容不能超过500个字符。"  # The best way is check in browser using js
    try:
        receiver = Profile.objects.get(pk=receiver_id)
        main_msg = Message.objects.get(pk=reply_to_id)
        if main_msg.sender_id != sender_id and main_msg.receiver_id != sender_id:
            return "回复失败"
        new_message = Message(content=content, date=datetime.datetime.now())
        new_message.receiver_id = receiver_id
        new_message.sender_id = sender_id
        new_message.reply_to_id = reply_to_id
        new_message.save()

        if main_msg.deleted_by_receiver:
            count = Message.objects.filter(receiver=receiver_id, unread=True, reply_to=Message(reply_to_id)).count()
            if main_msg.unread:
                count += 1
            receiver.message_count += count
            receiver.save()
            main_msg.deleted_by_receiver = False
        elif main_msg.deleted_by_sender:
            count = Message.objects.filter(receiver=receiver_id, unread=True, reply_to=Message(reply_to_id)).count()
            receiver.message_count += count
            receiver.save()
            main_msg.deleted_by_sender = False
        else:
            receiver.message_count += 1
            receiver.save()
        main_msg.save()
        Message.objects.filter(reply_to=Message(reply_to_id)).update(deleted_by_receiver=False, deleted_by_sender=False)
        return "success"
    except Profile.DoesNotExist:
        return "收件人不存在!"
    except Message.DoesNotExist:
        return "回复的信件不存在!"