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"
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 "回复的信件不存在!"