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