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")
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')
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')
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')