Example #1
0
def send_message_view(request):
    if (request.method == "POST"):
        form = SendMessageForm(request.POST)

        if (form.is_valid()):
            push_ids = []
            for rider in Rider.objects.iterator():
                if rider.push_id is not None and len(rider.push_id) > 0:
                    push_ids.append(rider.push_id)

            if len(push_ids) > 0:
                headers = {}
                headers[settings.
                        GCM_API_KEY_HEADER] = 'key=' + settings.GCM_API_KEY
                headers['Content-Type'] = 'application/json'
                data = {}
                data['registration_ids'] = push_ids
                data['data'] = {}
                data['data']['msg'] = form.cleaned_data[
                    'message']  # For legacy sake (last sr project)
                data['data']['message'] = form.cleaned_data['message']

                req = Request(settings.GCM_SEND_URL, json.dumps(data), headers)
                urlopen(req)
                messages.success(request, 'Message was sent successfully.')
            else:
                messages.info(request, 'No riders to message.')
    else:
        form = SendMessageForm()

    return render(request, 'send_message.html', {'form': form})
Example #2
0
def sendMessage(request):
    if request.method=='GET':
        form = SendMessageForm()
        return render_to_response('jqmform.html',{'title':'title','form':form})
    else:
        form = SendMessageForm(request.POST)
        if form.is_valid():
            sender_id = form.data['sender']
            sender = WeixinApp.objects.get(pk=sender_id)
            now = int(time.time())
            logger.debug(str(now) + ':' + str(sender.expire))

            if now>sender.expire: # token已经过期
                url = 'https://api.weixin.qq.com/cgi-bin/token?' + urllib.urlencode({
                    'grant_type':'client_credential',
                    'appid':sender.app_id,
                    'secret':sender.app_secret,
                })
                logger.debug(url)
                f = urllib.urlopen(url)
                jobj = json.load(f)
                f.close()
                logger.debug('Thread return 1: ' + str(jobj))
                if jobj.has_key('errmsg'):
                    logger.error('WX get error: ' + jobj['errmsg'])
                    return render_to_response('errorMessage.html',{'errorMessage':jobj['errmsg']})
                else:
                    access_token = jobj['access_token']
                    sender.expire = now + jobj['expires_in']
                    sender.access_token = access_token
                    sender.save()
            else:
                access_token = sender.access_token

            logger.debug('access_token is ' + access_token)
            receiver = form.data['receiver']
            message = form.data['message']
            msg = {'touser':receiver,'msgtype':'text','text':{'content':message}}
            #logger.debug(json.dumps(msg))

            url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?" + urllib.urlencode({
                'access_token':access_token,
            })
            req = urllib2.Request(url, json.dumps(msg), {'Content-Type': 'application/json'})
            f = urllib2.urlopen(req)
            jobj = json.load(f)
            f.close()
            logger.debug('Thread return 2: ' + str(jobj))
            if jobj.has_key('errmsg'):
                logger.error('WX get error: ' + jobj['errmsg'])
                return render_to_response('errorMessage.html',{'errorMessage':jobj['errmsg']})
            else:
                return render_to_response('errorMessage.html',{'errorMessage':'发送成功'})
        else:
            return render_to_response('jqmform.html',{'title':'title','form':form})
Example #3
0
def send(recv):
    form = SendMessageForm(request.form)
    _recv = urllib.unquote(recv)
    receiver = User.query.filter(User.username == _recv.strip()).first()
    if not receiver:
        flash(u"未知用户%s" % _recv)
        return redirect(url_for(".sendto") or "/")
    if request.method == "POST" and form.validate():
        msg = create_message(
            sender_id=current_user.id, recv=receiver, title=form.data["title"], content=form.data["content"]
        )
        return render_template("send_ok.html", msg=msg)
    return render_template("send_message.html", form=form, actionurl=url_for(".send", recv=recv))
Example #4
0
def send_message():
    """
    function that takes input from form and validates.
        takes the input and sends the message, and adds the message to message db.
    """
    form = SendMessageForm()
    if form.validate_on_submit():
        send_sms(form.pnumber.data, form.message.data)
        message = Message(pnumber = form.pnumber.data, message=form.message.data, time=datetime.utcnow(), sender=True)
        db.session.add(message)
        db.session.commit()
        flash(f'Message, ({form.message.data}) sent to {form.pnumber.data}!', 'success')
        return redirect(url_for('list_message'))
    return render_template('send_message.html', title='Send Message', form=form)
Example #5
0
def game():
    """Chat room. The user's name and room must be stored in
    the session."""
    form = SendMessageForm()
    name = session.get('name', '')
    room = session.get('room', '')
    cur_user_id = session.get('cur_user_id', '')
    current_user = db.session.query(User).filter_by(id=cur_user_id).first()
    #current_user.isready = 1
    #location = session.get('location', '')
    room1 = db.session.query(Rooms).filter_by(s_id=room).first()
    location_id = room1.location_id
    location = db.session.query(Location).filter_by(id=location_id).first()
    start_time = room1.start_time
    session['time'] = str(start_time)
    if name == '' or room == '':
        return redirect(url_for('.index'))
    return render_template('game.html',
                           name=name,
                           form=form,
                           room=room,
                           title="Игра",
                           current_user=current_user,
                           location=location,
                           start_time=start_time)
Example #6
0
def send(recv):
    form = SendMessageForm(request.form)
    _recv = urllib.unquote(recv)
    receiver = User.query.filter(User.username == _recv.strip()).first()
    if not receiver:
        flash(u'未知用户%s' % _recv)
        return redirect(url_for(".sendto") or '/')
    if request.method == 'POST' and form.validate():
        msg = create_message(sender_id=current_user.id,
                             recv=receiver,
                             title=form.data['title'],
                             content=form.data['content'])
        return render_template("send_ok.html", msg=msg)
    return render_template("send_message.html",
                           form=form,
                           actionurl=url_for(".send", recv=recv))
Example #7
0
    def send(self):
        from forms import SendMessageForm
        from uliweb.core.html import Tag
        from sqlalchemy.sql import select, func
        from uliweb.utils.textconvert import text2html

        User = get_model('user')
        form = SendMessageForm()
        if request.method == 'GET':
            SendMessageForm.users.choices = []
            return {'form': form.build, 'ok': False}
        if request.method == 'POST':
            flag = form.validate(request.POST)
            if flag:
                u = get_model('user')
                for u in form.users.data:
                    _id = int(u)
                    user = User.get(_id)

                    functions.send_message(request.user, user,
                                           text2html(form.message.data))
                flash(_('Send message successful!'))
                return redirect(url_for(MessageView.sended_list))
            else:
                #process select values
                choices = []
                for u in form.users.data:
                    _id = int(u)
                    user = User.get(_id)
                    if user:
                        choices.append((str(user.id), unicode(user)))
                SendMessageForm.users.choices = choices
                if '_' in form.errors:
                    message = form.errors['_']
                else:
                    message = _('There are something wrong, please fix them')
                flash(message, 'error')
                return {'form': form.build, 'ok': False}
Example #8
0
 def send(self):
     from forms import SendMessageForm
     from uliweb.core.html import Tag
     from sqlalchemy.sql import select,func
     from uliweb.utils.textconvert import text2html
     
     User = get_model('user')
     form = SendMessageForm()
     if request.method == 'GET':
         SendMessageForm.users.choices = []
         return {'form':form.build, 'ok':False}
     if request.method == 'POST':
         flag = form.validate(request.POST)
         if flag:
             u = get_model('user')
             for u in form.users.data:
                 _id = int(u)
                 user = User.get(_id)
                 
                 functions.send_message(request.user, user, text2html(form.message.data))
             flash(_('Send message successful!'))
             return redirect(url_for(MessageView.sended_list))
         else:
             #process select values
             choices = []
             for u in form.users.data:
                 _id = int(u)
                 user = User.get(_id)
                 if user:
                     choices.append((str(user.id), unicode(user)))
             SendMessageForm.users.choices = choices
             if '_' in form.errors:
                 message = form.errors['_']
             else:
                 message = _('There are something wrong, please fix them')
             flash(message, 'error')
             return {'form':form.build, 'ok':False}
Example #9
0
def send_message():
	if 'username' in session:
		form = SendMessageForm()

		if request.method == 'POST':
			newmsg = Message(session['username'],form.msg.data, session['chall'])
			db.session.add(newmsg)
			db.session.commit()
			user_msg = "Message sent to Admin"

			return render_template("send_message.html", form=form, msg=user_msg)

		elif request.method == 'GET':
			return render_template("send_message.html", form=form)

	else:
		return redirect(url_for("login"))
Example #10
0
def channel():
    form = SendMessageForm()
    link = request.args.get('link')
    channel = engine_query('getChannelByLink', [link])
    if not channel:
        return render_template('channel.html', head='No such channel', data='')
    if request.method == 'GET':
        #eprint(channel[0])
        #eprint(channel[0].encode('ASCII'))
        messages = engine_query('getMessages', [channel[0]])
        return render_template('channel.html',
                               form=form,
                               head=channel[1],
                               link=link,
                               data=messages)
    elif request.method == 'POST':
        engine_query('addMessage',
                     [channel[0], current_user.id, form.text.data])
        messages = engine_query('getMessages', [channel[0]])
        return render_template('channel.html',
                               form=form,
                               head=channel[1],
                               link=link,
                               data=messages)
Example #11
0
def messages():
    messages = []
    sentMessages = []

    sendMessageForm = SendMessageForm()
    updateMessageForm = UpdateMessageForm()

    messages = db.getIncomingMessagesByUserId(db.userid)
    sentMessages = db.getSentMessagesByUserId(db.userid)

    #testMessage = ["Emre", "Reyhanlioglu", "Test topic", "Test message", "16.12.2019: 16:39", "High", "4"]
    #sentMessages.append(testMessage)

    #testMessage = ["Emre R", "Test topic", "Test message", "16.12.2019: 16:39", "High"]
    #messages.append(testMessage)

    if request.method == "POST":
        if request.form["btn"] == "sendMessage":
            receiverName = sendMessageForm.receiverName.data
            receiverSurname = sendMessageForm.receiverSurname.data
            topic = sendMessageForm.topic.data
            message = sendMessageForm.message.data
            priority = sendMessageForm.priority.data

            checkedUserId = db.getUserIdByNameAndSurname(
                receiverName, receiverSurname)
            if checkedUserId is None:
                print('USER DOES NOT EXIST')
                return render_template('messages.html',
                                       messages=messages,
                                       sendMessageForm=sendMessageForm,
                                       updateMessageForm=updateMessageForm,
                                       sentMessages=sentMessages)

            senderId = db.userid
            senderUser = db.getProfileInformations(senderId)
            senderName = senderUser[3]
            senderSurname = senderUser[4]

            receiverId = db.getUserIdByNameAndSurname(receiverName,
                                                      receiverSurname)

            newMessage = [
                senderId, receiverId, senderName, senderSurname, topic,
                message, priority
            ]

            db.insertMessage(newMessage)
            messages = db.getIncomingMessagesByUserId(db.userid)
            sentMessages = db.getSentMessagesByUserId(db.userid)

            return render_template('messages.html',
                                   messages=messages,
                                   sendMessageForm=sendMessageForm,
                                   updateMessageForm=updateMessageForm,
                                   sentMessages=sentMessages)

        elif request.form["btn"] == "updateMessage":
            #print('UPDATE MESSAGE CALLED')
            messageId = int(updateMessageForm.messageId.data)

            topic = updateMessageForm.topic.data
            message = updateMessageForm.message.data
            priority = updateMessageForm.priority.data

            newMessage = [topic, message, priority]

            db.updateMessageByMessageId(messageId, newMessage)

            #UPDATE UI AFTER EDITING A MESSAGE
            sentMessages = db.getSentMessagesByUserId(db.userid)
            messages = db.getIncomingMessagesByUserId(db.userid)

            return render_template('messages.html',
                                   messages=messages,
                                   sendMessageForm=sendMessageForm,
                                   updateMessageForm=updateMessageForm,
                                   sentMessages=sentMessages)

        else:
            deletedMessageId = int(request.form['btn'])
            #print('DELETED MESSAGE ID is {}'.format(deletedMessageId))
            db.deleteMessageById(deletedMessageId)

            messages = db.getIncomingMessagesByUserId(db.userid)

            return render_template('messages.html',
                                   messages=messages,
                                   sendMessageForm=sendMessageForm,
                                   updateMessageForm=updateMessageForm,
                                   sentMessages=sentMessages)

    return render_template('messages.html',
                           messages=messages,
                           sendMessageForm=sendMessageForm,
                           updateMessageForm=updateMessageForm,
                           sentMessages=sentMessages)