def read_notification(request, noti_id):
    result = dict()
    result["success"] = True
    result["message"] = "success"
    result["notifications"] = list()
    try:
        user = User.objects.get(username=request.user.username)
        try:
            noti = UserNotification.objects.filter(user=user, id=noti_id)[0]
            noti.is_read = True
            noti.save()
        except Exception as e:
            print str(e)
            return my_utils.return_error("Invalid action")

        if noti.related_type == "Message":
            try:
                feed = Message.objects.filter(id=noti.related_id, is_deleted=False)
                result["feed"] = my_utils.process_messages(request, feed)[0]
            except Exception as e:
                print str(e)
                pass
        elif noti.related_type == "DM" or noti.related_type == "DM_Reply":
            try:
                message = DirectMessage.objects.filter(id=noti.related_id, is_deleted=False)
                result["dm"] = process_messages(request, message)[0]
            except Exception as e:
                print str(e)
                pass

    except:
        return my_utils.return_error("Please Sign in First")

    return HttpResponse(json.dumps(result, indent=4), mimetype="application/json")
Ejemplo n.º 2
0
def feed(request):
    result=dict()
    result['success']=True
    result['message']='success'
    result['items']=list()
    inStr = request.GET.get('q','')
    if inStr == '' or inStr.strip() == '':
        return HttpResponse(json.dumps(result, indent=4), mimetype='application/json')
    
    base_id = request.GET.get("base_id",False)
    
    try:
        arr = inStr.split(' ')
        query_type = Q()
        additional= Q()
        if base_id:
            additional = Q(id__lt=base_id)
        for item in arr:
            query_type = query_type & Q(contents__icontains=item)
        feeds = Message.objects.filter(query_type, is_deleted=False).order_by('-reg_date')[:DEFAULT_LOAD_LENGTH]
        for feed in feeds:
            try:
                user_profile = UserProfile.objects.get(user=feed.author)
                feed.author_picture=user_profile.picture.url
            except Exception as e:
                feed.author_picture='/media/default.png'
        result['items'] = my_utils.process_messages(request,feeds)
        if len(feeds) == DEFAULT_LOAD_LENGTH:
            result['load_more']=True
    except Exception as e:
        print str(e)
        pass
        
    return HttpResponse(json.dumps(result, indent=4), mimetype='application/json')
Ejemplo n.º 3
0
def get_feed(request,feed_id):
    result=dict()
    result['success']=True
    result['message']='success'
    try:
        feed = Message.objects.filter(id=feed_id)
        result['feed']=my_utils.process_messages(request, feed)
    except Exception as e:
        print str(e)
        return my_utils.return_error('Empty Message')
        
    return HttpResponse(json.dumps(result, indent=4), mimetype='application/json')
Ejemplo n.º 4
0
def load_topic_timeline(request,topic_id):
    result=dict()
    result['success']=True
    result['message']='success'
    
    try:
        base_id = request.GET.get("base_id",False)
        additional = Q()
        if base_id:
            additional = Q(id__lt=base_id)
        
        topic = Topic.objects.get(id=topic_id)
        try:
            timelines = TopicTimeline.objects.filter(additional, topic=topic).order_by('-update_date')[:DEFAULT_LOAD_LENGTH]
            if not timelines:
                result['feeds']=my_utils.process_messages(request, list())
                return HttpResponse(json.dumps(result, indent=4), mimetype='application/json')
            messages = list()
            for timeline in timelines:
                try:
                    if not timeline.message.is_deleted:
                        timeline.message.base_id=timeline.id
                        messages.append(timeline.message)
                except:
                    pass
            
            if len(timelines) == DEFAULT_LOAD_LENGTH:
                result['load_more']=True
            
            result['feeds']=my_utils.process_messages(request, messages)
                
        except Exception as e:
            print str(e)
            result['success']=True
            result['message']='Do not have any message'
    except:
            return my_utils.return_error('No Such Topic')
            
    return HttpResponse(json.dumps(result, indent=4), mimetype='application/json')