Пример #1
0
def messages(request):
    username = request.session["username"]
    user = Member.objects.get(pk=username)
    # Whose message's are we viewing?
    if "view" in request.GET:
        view = request.GET["view"]
    else:
        view = username
    recip = Member.objects.get(pk=view)
    # If message was deleted
    if "erase" in request.GET:
        msg_id = request.GET["erase"]
        Message.objects.get(id=msg_id).delete()
    # If text was posted then save on DB
    if "text" in request.POST:
        text = request.POST["text"]
        pm = request.POST["pm"] == "0"
        message = Message(user=user, recip=recip, pm=pm, time=timezone.now(), text=text)
        message.save()
    messages = Message.objects.filter(recip=recip)
    profile_obj = Member.objects.get(pk=view).profile
    profile = profile_obj.text if profile_obj else ""
    return render(
        request,
        "social/messages.html",
        {
            "appname": appname,
            "username": username,
            "profile": profile,
            "view": view,
            "messages": messages,
            "loggedin": True,
        },
    )
Пример #2
0
def messages(request):
    username = request.session['username']
    user = Member.objects.get(pk=username)
    # Whose message's are we viewing?
    if 'view' in request.GET:
        view = request.GET['view']
    else:
        view = username
    recip = Member.objects.get(pk=view)
    # If message was deleted
    if 'erase' in request.GET:
        msg_id = request.GET['erase']
        Message.objects.get(id=msg_id).delete()
    # If text was posted then save on DB
    if 'text' in request.POST:
        text = request.POST['text']
        pm = request.POST['pm'] == "0"
        message = Message(user=user,
                          recip=recip,
                          pm=pm,
                          time=timezone.now(),
                          text=text)
        message.save()
    messages = Message.objects.filter(recip=recip)
    profile_obj = Member.objects.get(pk=view).profile
    profile = profile_obj.text if profile_obj else ""
    return render(
        request, 'social/messages.html', {
            'appname': appname,
            'username': username,
            'profile': profile,
            'view': view,
            'messages': messages,
            'loggedin': True
        })
Пример #3
0
def messages(request):
    username = request.session['username']
    user = Member.objects.get(pk=username)
    # Whose message's are we viewing?
    if 'view' in request.GET:
        view = request.GET['view']
    else:
        view = username
    recip = Member.objects.get(pk=view)
    # If message was deleted
    if 'erase' in request.GET:
        msg_id = request.GET['erase']
        Message.objects.get(id=msg_id).delete()
    # If text was posted then save on DB
    if 'text' in request.POST:
        text = request.POST['text']
        pm = request.POST['pm'] == "0"
        message = Message(user=user,recip=recip,pm=pm,time=timezone.now(),text=text)
        message.save()
    messages = Message.objects.filter(recip=recip)
    profile_obj = Member.objects.get(pk=view).profile
    profile = profile_obj.text if profile_obj else ""
    invitations = Invitation.objects.filter(to_user=username)
    return render(request, 'social/messages.html', {
        'appname': appname,
        'username': username,
        'invitations':invitations,
        'profile': profile,
        'view': view,
        'messages': messages,
        'loggedin': True}
        )
Пример #4
0
def enviarFuera(request,User_id):#envia un mensaje del usuario logueado al usuario con id=User_id
	usuarioid = request.session['User_id']
	usuario = User.objects.get(pk=usuarioid)
	m = User.objects.get(pk=User_id)
	mensaje = Message(content = request.POST['mensaje'], private = False, shares = '1', like = '1', owner = usuario, recipient = m)
	mensaje.save()
	return HttpResponseRedirect(reverse('social.views.detail', args=(usuario.id,)))
Пример #5
0
def hooks(request):
  if request.method=='POST':
    whabox= Whabox()
    whabox.event=request.POST.get("event")
    whabox.token=request.POST.get("token")
    whabox.contact_uid=request.POST.get("contact[uid]")
    whabox.contact_name=request.POST.get("contact[name]")
    whabox.contact_type=request.POST.get("contact[type]")
    whabox.message_dtm=request.POST.get("message[dtm]")
    whabox.message_uid=request.POST.get("message[uid]")
    whabox.message_cuid=request.POST.get("message[cuid]")
    whabox.message_dir=request.POST.get("message[dir]")
    whabox.message_type=request.POST.get("message[type]")
    whabox.message_text=request.POST.get("message[body][text]")
    whabox.message_ack=request.POST.get("message[ack]")
    #whabox.save()
    
    conversations= Conversation.objects.filter(contact_uid=whabox.contact_uid)
    if conversations:
      conversation=conversations.first()
    else:
      #Crear nueva conversacion y adjuntar el mensaje
      conversation=Conversation()
      conversation.contact_uid=whabox.contact_uid
      conversation.message_cuid=get_random_string(length=32)
           
      #Accionar a la nueva conversacion
      token='d42dbfc3434f650ed58b33e4955fa9cc5be1dd2f26439'
      uid='595974108801'
      url='https://www.waboxapp.com/api/send/chat'
      custom_uid= get_random_string(length=15)   
      wbs= WhaboxSender(token,uid,url,custom_uid)
      text="Usted se ha comunicado a Pytyvo. En breve será atendido"
      result= wbs.sendMessage(text,conversation.contact_uid)
      
      if result:
        print("Se ha enviado correctmente el mensaje")
      else:
        print("No se ha podido enviar el mensaje")
    
    #Trabajar por el mensaje
    message=Message()
    message.conversation=conversation
    message.message_text=whabox.message_text
    message.estado=whabox.message_ack
    if whabox.message_dir=='i':
      message.direction=1
    else:
      message.direction=2
    conversation.estado=1
    conversation.red=2
    
    #Grabar
    conversation.save()
    message.save()
Пример #6
0
def upload_barber_message(request):
    """
    For a barber to leave a message to his fans
    :param request: JSON string
                {string} bid: barber id
                {string} text: message text
    :return:
    """
    req = json.loads(request.body)
    bid = req['bid']
    text = req['text']
    msg = Message(bid=bid, text=text)
    try:
        msg.save()
    except IOError:
        return HttpResponse("Failed to save it in server")
    return HttpResponse("Uploaded successfully!")
Пример #7
0
def member(request, view_user):
    username = request.session['username']
    member = Member.objects.get(pk=view_user)
    if 'view' in request.GET:
        view = request.GET['view']
    else:
        view = username
    recip = Member.objects.get(pk=view)
    # If message was deleted
    if 'erase' in request.GET:
        msg_id = request.GET['erase']
        Message.objects.get(id=msg_id).delete()
    # If text was posted then save on DB
    if 'text' in request.POST:
        text = request.POST['text']
        pm = request.POST['pm'] == "0"
        message = Message(user=username,recip=recip,pm=pm,time=timezone.now(),text=text)
        message.save()
    messages = Message.objects.filter(recip=recip)
    profile_obj = Member.objects.get(pk=view).profile
    profile = profile_obj.text if profile_obj else ""
    if view_user == username:
        greeting = "Your"
    else:
        greeting = view_user + "'s"

    if member.profile:
        text = member.profile.text
    else:
        text = ""
    invitations = Invitation.objects.filter(to_user=username)
    return render(request, 'social/member.html', {
        'appname': appname,
        'username': username,
        'view_user': view_user,
        'messages': messages,
        'invitations':invitations,
        'greeting': greeting,
        'profile': text,
        'loggedin': True}
        )
Пример #8
0
def messages(request):
    if request.method == 'POST':
        form = MessageForm(request.POST)
        if form.is_valid():
            _text = form.cleaned_data['text']
            _private = form.cleaned_data['private']
            _auth = request.session['username']
            if 'view' in request.POST:
                _recip = request.POST['view']
            else:
                _recip = request.session['username']
            message = Message(text=_text,
                              private=_private,
                              recip=_recip,
                              auth=_auth)
            message.save()
    if 'username' in request.session:
        username = request.session['username']
        auth = username
        template = loader.get_template('social/messages.html')
        if 'view' in request.GET:
            view = request.GET['view']
            pms = Message.objects.filter(
                recip=auth, auth=view) | Message.objects.filter(recip=view,
                                                                auth=username)
        else:
            pms = Message.objects.filter(recip=username)
            view = None
        context = RequestContext(
            request, {
                'appname': appname,
                'username': username,
                'loggedin': True,
                'view': view,
                'pms': pms,
                'form': MessageForm()
            })
        return HttpResponse(template.render(context))
    else:
        raise Http404("User is not logged it, no access to messages page!")
Пример #9
0
    def fetch_messages(self, feed, **kwargs):
        results = requests.get(
            "https://queryfeed.net/instagram",
            params={
                'q': '#{}'.format(feed.hashtag),
                'token': self.provider.app_secret
            }
        )

        results = xmltodict.parse(results.text)

        if not (results.get('rss') and
                results.get('rss').get('channel') and
                results.get('rss').get('channel').get('item')):
            return

        messages = []
        for item in results['rss']['channel']['item']:

            # Don't store duplicates
            try:
                feed.messages.get(provider_post_id=item['link'])
            except Message.DoesNotExist:
                pass
            else:
                continue

            r = requests.get(item['link'])
            user_re = re.compile(r'"owner": ({.*?})')
            m = user_re.search(r.text)

            message = Message()

            if m.group(1):
                user_data = json.loads(m.group(1))
                author_name = user_data.get('full_name', '')

                if author_name is None:
                    author_name = ''

                message.author_name = author_name
                message.author_picture = user_data.get('profile_pic_url', '')
                message.author_username = "******".format(user_data.get('username'))
            else:
                message.author_username = item['guid']

            if 'enclosure' in item:
                media = item['enclosure']
                if 'image' in media['@type']:
                    message.image = media['@url']

            message.text = item['title']

            import pytz
            locale = pytz.utc
            # Thu, 02 Mar 2017 15:13:08 +0000
            message.published_at = locale.localize(
                datetime.datetime.strptime(item['pubDate'], '%a, %d %b %Y %H:%M:%S +0000'))

            message.provider = self.provider
            message.provider_post_id = item['link']
            message.feed = feed
            messages.append(message)
            message.save()
        return messages
Пример #10
0
def messages(request):

    """ Retrieves all messages related to the current user, 
    whether private or public stored in a Message object
    and sends them to the messages.html template"""

    if 'username' in request.session:
        if request.method == 'POST':
            username = request.session['username']
            member_obj = Member.objects.get(pk=username)

            try:
                recipient = Member.objects.get(pk=request.POST.get('recip', None))
                if 'message' in request.POST:
                    message = request.POST['message']
                    if 'message_type' in request.POST:
                        private = request.POST['message_type'] == '1'
                        message = Message(author=member_obj, recip=recipient, private=private, message=message)
                        message.save()
                    else: #Redirect back to the current page with accompanying error message
                        members = Member.objects.all()
                        messages = Message.objects.filter(author=username, private=True) | Message.objects.filter(recip=username, private=True) | Message.objects.filter(recip=username, private=False) | Message.objects.filter(author=username, private=False).order_by('time')
                        return render(request, 'social/messages.html', {
                            'appname': appname,
                            'username': username,
                            'loggedin': True,
                            'chat_messages': messages,
                            'members': members,
                            'error': "Must select \"Public\" or \"Private\""
                        })
                else: #Redirect back to the current page with accompanying error message
                    members = Member.objects.all()
                    messages = Message.objects.filter(author=username, private=True) | Message.objects.filter(recip=username, private=True) | Message.objects.filter(recip=username, private=False) | Message.objects.filter(author=username, private=False).order_by('time')
                    return render(request, 'social/messages.html', {
                            'appname': appname,
                            'username': username,
                            'loggedin': True,
                            'chat_messages': messages,
                            'members': members,
                            'error': "Cannot send empty message"
                        })
            except Member.DoesNotExist:
                members = Member.objects.all()
                messages = Message.objects.filter(author=username, private=True) | Message.objects.filter(recip=username, private=True) | Message.objects.filter(recip=username, private=False) | Message.objects.filter(author=username, private=False).order_by('time')
                return render(request, 'social/messages.html', {
                    'appname': appname,
                    'username': username,
                    'loggedin': True,
                    'chat_messages': messages,
                    'members': members,
                    'error': "Recipient not specified"
                })
        username = request.session['username']
        members = Member.objects.all()
        messages = Message.objects.filter(author=username, private=True) | Message.objects.filter(recip=username, private=True) | Message.objects.filter(recip=username, private=False) | Message.objects.filter(author=username, private=False).order_by('time')
        return render(request, 'social/messages.html', {
            'appname': appname,
            'username': username,
            'loggedin': True,
            'members': members,
            'chat_messages': messages
            })
    else: #Redirect back to index.html with accompanying error message
        return render(request, 'social/index.html', {
            'appname': appname,
            'error': "You are not logged in, no access to messages page!"
            })
Пример #11
0
def messages(request):
    """ Retrieves all messages related to the current user, 
    whether private or public stored in a Message object
    and sends them to the messages.html template"""

    if 'username' in request.session:
        if request.method == 'POST':
            username = request.session['username']
            member_obj = Member.objects.get(pk=username)

            try:
                recipient = Member.objects.get(
                    pk=request.POST.get('recip', None))
                if 'message' in request.POST:
                    message = request.POST['message']
                    if 'message_type' in request.POST:
                        private = request.POST['message_type'] == '1'
                        message = Message(author=member_obj,
                                          recip=recipient,
                                          private=private,
                                          message=message)
                        message.save()
                    else:  #Redirect back to the current page with accompanying error message
                        members = Member.objects.all()
                        messages = Message.objects.filter(
                            author=username,
                            private=True) | Message.objects.filter(
                                recip=username,
                                private=True) | Message.objects.filter(
                                    recip=username,
                                    private=False) | Message.objects.filter(
                                        author=username,
                                        private=False).order_by('time')
                        return render(
                            request, 'social/messages.html', {
                                'appname': appname,
                                'username': username,
                                'loggedin': True,
                                'chat_messages': messages,
                                'members': members,
                                'error':
                                "Must select \"Public\" or \"Private\""
                            })
                else:  #Redirect back to the current page with accompanying error message
                    members = Member.objects.all()
                    messages = Message.objects.filter(
                        author=username,
                        private=True) | Message.objects.filter(
                            recip=username,
                            private=True) | Message.objects.filter(
                                recip=username,
                                private=False) | Message.objects.filter(
                                    author=username,
                                    private=False).order_by('time')
                    return render(
                        request, 'social/messages.html', {
                            'appname': appname,
                            'username': username,
                            'loggedin': True,
                            'chat_messages': messages,
                            'members': members,
                            'error': "Cannot send empty message"
                        })
            except Member.DoesNotExist:
                members = Member.objects.all()
                messages = Message.objects.filter(
                    author=username, private=True) | Message.objects.filter(
                        recip=username, private=True) | Message.objects.filter(
                            recip=username,
                            private=False) | Message.objects.filter(
                                author=username,
                                private=False).order_by('time')
                return render(
                    request, 'social/messages.html', {
                        'appname': appname,
                        'username': username,
                        'loggedin': True,
                        'chat_messages': messages,
                        'members': members,
                        'error': "Recipient not specified"
                    })
        username = request.session['username']
        members = Member.objects.all()
        messages = Message.objects.filter(
            author=username, private=True) | Message.objects.filter(
                recip=username, private=True) | Message.objects.filter(
                    recip=username, private=False) | Message.objects.filter(
                        author=username, private=False).order_by('time')
        return render(
            request, 'social/messages.html', {
                'appname': appname,
                'username': username,
                'loggedin': True,
                'members': members,
                'chat_messages': messages
            })
    else:  #Redirect back to index.html with accompanying error message
        return render(
            request, 'social/index.html', {
                'appname': appname,
                'error': "You are not logged in, no access to messages page!"
            })
Пример #12
0
    def fetch_messages(self, feed, **kwargs):
        try:
            last_message = feed.messages.filter(
                provider=self.provider).order_by('published_at').last()
            if last_message is None:
                last_id = None
            else:
                last_id = last_message.provider_post_id

            results = requests.get(
                "https://api.twitter.com/1.1/search/tweets.json",
                params={
                    'q': '%23{}'.format(feed.hashtag),
                    'count': '100',
                    'since_id': last_id,
                    'entities': True
                },
                headers={
                    "Authorization": "Bearer {}".format(self.access_token)
                }).json()
            messages = []
            for tweet in results['statuses']:
                message = Message()
                message.author_name = tweet['user']['name']
                message.author_picture = tweet['user'][
                    'profile_image_url_https'].replace('_normal', '')
                message.author_username = "******".format(
                    tweet['user']['screen_name'])
                content = tweet['text']
                if 'extended_entities' in tweet:
                    for media in tweet['extended_entities']['media']:
                        if media['type'] == 'photo':
                            message.image = media['media_url_https']
                        if media['type'] in ('animated_gif', 'video'):
                            variants = media['video_info']['variants']
                            # Select the MP4 with the best bitrate
                            mp4 = [
                                variant for variant in variants
                                if variant['content_type'] == 'video/mp4'
                            ]
                            if len(mp4) > 0:
                                best_bitrate = max(
                                    mp4, key=lambda item: item['bitrate'])
                                message.video = best_bitrate['url']
                                if media['type'] == 'animated_gif':
                                    message.video_is_gif = True
                message.text = content
                import pytz
                locale = pytz.utc
                message.published_at = locale.localize(
                    datetime.datetime.strptime(tweet['created_at'],
                                               '%a %b %d %H:%M:%S +0000 %Y'))
                message.provider = self.provider
                message.provider_post_id = tweet['id_str']
                message.feed = feed
                messages.append(message)
                message.save()
            return messages
        except HTTPError:
            self.auth()
            return self.fetch_messages(feed, **kwargs)
Пример #13
0
def enviar(request,User_id):
	request.session['User_id']
	m = User.objects.get(pk=User_id)
	mensaje = Message(content = request.POST['mensaje'], private = False, shares = '1', like = '1', owner = m, recipient = m)
	mensaje.save()
	return HttpResponseRedirect(reverse('social.views.detail', args=(m.id,)))
Пример #14
0
def messages(request, view_user):
    if 'username' in request.session:
        username = request.session['username']
        userMember = Member.objects.get(pk=username)
        viewMember = Member.objects.get(pk=view_user)
        viewname = viewMember.username

        #Looking at own inbox
        if view_user == username:
            greeting = "Your"
            canDelete = True
            public_messages = Message.objects.filter(receiver=username).filter(
                is_private=False)
            private_messages = Message.objects.filter(
                receiver=username).filter(is_private=True)
        #Looking at public messages sent to other user along with private messages you sent the other user
        else:
            canDelete = False
            greeting = view_user + "'s"
            public_messages = Message.objects.filter(receiver=viewname).filter(
                is_private=False)
            private_messages = Message.objects.filter(sender=username).filter(
                receiver=viewname).filter(is_private=True)

        #Delete messages in your inbox
        if 'remove' in request.GET:
            messageid = request.GET['remove']
            Message.objects.filter(id=messageid).delete()

        #Reply to messages -> redirects you to the sender's page
        if 'reply' in request.GET:
            senderName = request.GET['reply']
            return HttpResponseRedirect(senderName)

        #Posting a new message
        if 'text' in request.POST:
            text = request.POST['text']
            #takes value from checkbox
            if 'is_private' in request.POST:
                private = True
            else:
                private = False

            #creates message object (as defined in models) and commits it to the database
            message = Message(message=text,
                              is_private=private,
                              sender=userMember,
                              receiver=viewMember)
            message.save()
            text = ""
        else:
            text = ""

        template = loader.get_template('social/messages.html')
        context = RequestContext(
            request, {
                'appname': appname,
                'username': username,
                'greeting': greeting,
                'viewName': viewname,
                'loggedin': True,
                'public_messages': public_messages,
                'private_messages': private_messages,
                'canDelete': canDelete,
                'text': text,
            })

        return HttpResponse(template.render(context))
    else:
        template = loader.get_template('social/login.html')
        error = "User is not logged it, no access to messages page!"
        context = RequestContext(request, {
            'appname': appname,
            'error': error,
        })
        return HttpResponse(template.render(context))
Пример #15
0
def messages(request):
    username = request.session['username']
    user = Member.objects.get(pk=username)
    member_obj = Member.objects.get(pk=username)
    # list of all other members
    members = Member.objects.exclude(pk=username)
    # list of people that are requested friend
    friends_s = Member.objects.filter(friends__username=username)
    # list of people that are request_friend me
    request_friends = Member.objects.filter(request_friend__username=username)
    # follow new friend
    if 'add' in request.GET:
        friend = request.GET['add']
        friend_obj = Member.objects.get(pk=friend)
        member_obj.request_friend.add(friend_obj)

        request_friend = member_obj.request_friend.all()
        request_friends = Member.objects.filter(request_friend__username=username)
        members = Member.objects.exclude(pk=username)
        # list of people that are requested friend
        friends = member_obj.friends.all()

        for membera in members:
            if membera in request_friend:
                if membera in request_friends and membera not in friends:
                    member_obj.friends.add(friend_obj)

        member_obj.save()
        return redirect('/social/messages/')
    # unfollow a friend
    if 'remove' in request.GET:
        friend = request.GET['remove']
        friend_obj = Member.objects.get(pk=friend)

        member_obj.friends.remove(friend_obj)
        member_obj.request_friend.remove(friend_obj)
        friend_obj.request_friend.remove(member_obj)

        member_obj.save()
        return redirect('/social/messages/')
    # Whose message's are we viewing?
    if 'view' in request.GET:
        view = request.GET['view']
    else:
        view = username
    recip = Member.objects.get(pk=view)
    # If message was deleted
    if 'erase' in request.GET:
        msg_id = request.GET['erase']
        Message.objects.get(id=msg_id).delete()
    # If text was posted then save on DB
    if 'text' in request.POST:
        text = request.POST['text']
        pm = request.POST['pm'] == "0"
        message = Message(user=user,recip=recip,pm=pm,time=timezone.now(),text=text)
        message.save()

    messages = Message.objects.filter(recip=recip)
    profile_obj = Member.objects.get(pk=view).profile
    profile = profile_obj.text if profile_obj else ""
    # list of people that requested friend
    friends_s = Member.objects.filter(friends__username=username)
    return render(request, 'social/messages.html', {
        'appname': appname,
        'username': username,
        'profile': profile,
        'view': view,
        'members': members,
        'request_friends': request_friends,
        'friends_s': friends_s,
        'messages': messages,
        'loggedin': True}
        )