Пример #1
0
 def get(self,clazz_id):
     '''根据时间戳获取班级消息列表'''
     time = int(request.args.get('time','0'))
     messages = None
     if time:
         messages = Message.objects(Q(create_time__lt=time) & Q(clazz_id=clazz_id)).order_by('-create_time')[:5]
     else:
         messages = Message.objects(clazz_id=clazz_id).order_by('-create_time')[:10]
     response={}
     response['code']=200
     messages_json=[]
     for message in messages:
         messages_json.append(message.json(False))
     response['data']=messages_json
     return  response
Пример #2
0
 def get(self,message_id):
     '''获取单条消息'''
     response={}
     response['code']=200
     mode = int(request.args.get('mode'))
     if mode==0:
         message = Message.objects(id=message_id).first()
         response['data']=message.json(False)
     elif mode==1:
         message = Message.objects(id=message_id).first()
         response['data']=message.json(True)
     else:
         message = Message.objects(id=message_id).only('read_users').only('comments').first()
         response_data = {}
         response_data['read_users_count']=len(message.read_users)
         response_data['comments_count']=len(message.comments)
         response['data']=response_data
     return response
Пример #3
0
 def put(self,message_id):
     '''设置消息已读'''
     args = set_message_read_parser.parse_args()
     message = Message.objects(id=message_id).first()
     if message.publisher_id == args['user_id']:
         return {'code':200}
     user = User.objects(id=args['user_id']).first()
     if user not in  message.read_users :
         message.read_users.append(user)
     message.update(set__read_users=message.read_users)
     return {'code':200}
Пример #4
0
 def delete(self,message_id):
     '''删除一条消息'''
     response={}
     user_id = request.args.get('user_id')
     message = Message.objects(id=message_id).first()
     if str(message.publisher_id)==user_id:
         message.delete()
         response['msg']='删除成功'
         response['code']=200
     else:
         response['msg']='只有消息发布者才能删除'
         response['code']=208;
     return response
Пример #5
0
 def delete(self,message_id,comment_id):
     '''删除评论'''
     message = Message.objects(id=message_id).first()
     message.comments.remove(message.comments.get(comment_id=comment_id))
     message.comments.save()
     # index = 0
     # for comment in message.comments:
     #     if comment.comment_id == comment_id:
     #         break
     #     index+=1
     # del message.comments[index]
     # message.update(comments=message.comments)
     return {'code':200,'msg':'删除评论成功'}
Пример #6
0
 def put(self,message_id):
     '''发布评论'''
     args = add_comment_parser.parse_args()
     message = Message.objects(id=message_id).first()
     user = User.objects(id=args['user_id']).first()
     comment = Comment()
     comment.comment_id = str(ObjectId.from_datetime(generation_time=datetime.datetime.now()))
     comment.content = args['content']
     comment.publisher = user.name
     comment.publisher_id = str(user.id)
     comment.publish_time = time.time() * 1000
     message.comments.append(comment)
     message.update(comments = message.comments)
     return {'code':200,'msg':'发布评论成功'}
Пример #7
0
            def post(self):
                '''发布消息'''
                response = {}
                args = publish_message_parser.parse_args()
                message = Message()
                message.content = args['content']
                message.title = args['title']

                user = User.objects(id=args['user_id']).only('name').first()
                message.publisher = user.name
                message.publisher_id = args['user_id']
                message.clazz_id = args['clazz_id']
                message.create_time = time.time()*1000

                members = Member.objects(Q(clazz_id=args['clazz_id']) & Q(status=1)).only('user')
                unread_users = []
                for member in members:
                    if str(member.user.id) != args['user_id']:
                        unread_users.append(member.user)
                message.unread_users = unread_users
                if args['attachments'] != None:
                    items = eval(args['attachments'])
                    mongo_attachments = []
                    for item in items:
                        attachment = Attachment()
                        attachment.width = item['width']
                        attachment.height = item['height']
                        attachment.url = "http://qiniu1.com/" + item['key']
                        mongo_attachments.append(attachment)
                    message.attachments = mongo_attachments
                message.save()
                response['code']=200
                response['msg']='发送消息成功'
                response['data']=message.json(False)


                threading.Thread(target=send_publish_message_push, args=(unread_users,message.id)).start()
                return response