コード例 #1
0
ファイル: message.py プロジェクト: alexdiao/3805
def do_send_message(receiver_ids, sender_id, content, item_id=None):
    """
    Send message to one or more followers.
    """
    if len(receiver_ids) == 0:
        return "收件人为空,或没有关注你!"
    if not content.strip() and not item_id:
        return "发送内容不能为空!"
    if len(content) > 500:
        return "回复内容不能超过500个字符。"
    for receiver_id in receiver_ids:
        receiver_id = long(receiver_id)
        try:
            receiver = Profile.objects.get(pk=receiver_id)
            if receiver_id != sender_id:
                User_User.objects.get(follower=receiver_id, followed=sender_id)
            message = Message(content=content, date=datetime.datetime.now())
            message.receiver_id = receiver_id
            message.sender_id = sender_id
            if item_id:
                message.item_id = item_id
            message.save()
            receiver.message_count += 1
            receiver.save()
        except Profile.DoesNotExist:
            return "收件人不存在!"
        except User_User.DoesNotExist:
            return "收件人" + receiver.name + "没有关注你,不能发站内信哦!"

    return "success"
コード例 #2
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 "回复的信件不存在!"