Пример #1
0
def messages():
    if not session.get("logged_in"):
        return login()

    conversation = Conversation.get_by_id(int(request.form["conversation"]))
    conversation.put()
    recipient = conversation.user1
    if session["user_id"] == recipient:
        recipient = conversation.user2
    print "popopo"
    notification = Notification(user=conversation.user1,
                                body="New Message",
                                ntype="new-message",
                                item=conversation.item,
                                item_category="",
                                noticed=False,
                                link="/view_conversations/" +
                                str(conversation.key.id()))
    notification.put()
    print "pop-" + notification.body + "-pop"

    message = Message(sender=session["user_id"],
                      recipient=recipient,
                      body=request.form["message_body"],
                      conversation=conversation.key.id())
    message.put()

    return "success"
Пример #2
0
    def post(self):
        msg = self.request.body
        self.response.headers['Content-Type'] = 'text/html; charset=utf-8'
        self.response.write('<p>Message posted:</p>\n')
        self.response.write('<p>' + escape(msg) + '</p>\n')

        raw = RawMessage()
        raw.content = base64.standard_b64decode(msg)
        raw.put()
        self.response.write('<p>Saved raw message in datastore.</p>\n')
        
        msg_version = unpack(">I", raw.content[0:4])[0]
        self.response.write('<p>Message version is ' + str(msg_version) + '</p>\n')
        
        if msg_version == 1:
            message = Message()
            #message.raw_key     = raw.key
            message.version     = msg_version
            message.sender      = base64.standard_b64encode(raw.content[4:4+32])
            message.recipient   = base64.standard_b64encode(raw.content[36:36+32])
            #message.iv          = raw.content[68:68+16]
            #message.secretkey   = raw.content[84:84+32]
            #message.content_length = raw.content[116:116+4]
            message.content     = raw.content
            #message.contentType = 'TEXT'
            message.created     = datetime.today()
            msg_key = message.put()
            
            self.response.write('<p>Datastore key: ' + str(msg_key) + '</p>\n')
            self.response.write('<p>Datastore key_urlsafe: ' + str(msg_key.urlsafe()) + '</p>\n')
            self.response.write('<p>Datastore key_integer: ' + str(msg_key.integer_id()) + '</p>\n')
            taskqueue.add(queue_name='notifications', 
                          url='/task/msg', 
                          params={
                              'key':msg_key.urlsafe(),
                              'id':msg_key.integer_id()
                          })
        else:
            self.error(404)