def post(self): if users.get_current_user() is None: self.redirect('/') new_phone = Phone() new_phone.user = users.get_current_user() new_phone.name = self.request.get('phone_name', 'Phone') new_phone.verified = False number = self.request.get('phone_number', '') if not Phone.is_valid_number(number): template_data = { 'logout_url': users.create_logout_url('/'), 'phones': Phone.all().filter('user = '******'message': "Phone number invalid.", 'nickname': new_phone.name, 'number': number } self.response.headers['Content-Type'] = 'text/html' self.response.out.write(template.render(s.template_path('phone.html'), template_data)) else: new_phone.number = Phone.normalize_number(number) new_phone.put() self.redirect('/phone/')
def post(self): user = users.get_current_user() if not user: self.redirect("/") okUser = ImokUser.all().filter('account =', user).get() p = Post(user=user, message='test message', lat=37., lon=-122.) p.unique_id = Post.gen_unique_key() p.put() registeredEmailQuery = RegisteredEmail.all().filter('userName ='******'emailAddress') addresses = [] for registeredEmail in registeredEmailQuery: addresses.append(registeredEmail.emailAddress) templateData = { 'post': p.message, 'link': p.permalink(self.request.host_url), 'user': okUser } emailBody = template.render(settings.template_path('email.txt'), templateData) if (len(addresses) > 0): mail.send_mail(sender=users.get_current_user().email(), to=users.get_current_user().email(), bcc=addresses, subject="I'm OK", body=emailBody) self.response.headers['Content-Type'] = 'text/plain' self.response.out.write(emailBody) return self.redirect('/home')
def get(self): kml = """ <?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://earth.google.com/kml/2.2"> <Document> """.lstrip() kml += KML_STYLES posts = Post.all().fetch(1000) for post in posts: if post.hasLocation(): user = post.user profile = ImokUser.all().filter('account =', post.user).fetch(1)[0] dateTime = formatLocalFromUtc(post.datetime, profile.tz) desc = template.render( settings.template_path('messageInfo.html'), self.getContext(locals())) kml += """ <Placemark> <name>%s</name> <description><![CDATA[%s]]></description> <styleUrl>#msn_red-circle</styleUrl> <Point> <coordinates>%f,%f,0</coordinates> </Point> </Placemark> """ % (profile.getShortName(), desc, post.lon, post.lat) kml += """ </Document> </kml> """ self.writeResponse(kml, contentType='application/vnd.google-earth.kml+xml')
def post(self): self.response.headers['Content-Type'] = 'text/json' phone = Phone.normalize_number(self.request.get('phone')) message = self.request.get('message') if not (message and phone): result = { 'result': 'error', 'message': 'missing phone and/or message' } self.response.out.write(json.dumps(result)) return sms_message = SmsMessage(phone_number=phone, message=message, direction='incoming', status='unclaimed') objects = [ sms_message ] phone_entity = Phone.all().filter('number =', phone).get() if not phone_entity: db.put(objects) self.response.out.write(json.dumps({'result': 'ok'})) return post = Post.fromText(message) post.unique_id = Post.gen_unique_key() post.user = phone_entity.user objects.append(post) sms_message.status = 'queued' db.put(objects) imok_user = ImokUser.all().filter('account =', phone_entity.user).get() email_query = RegisteredEmail.all().filter('userName ='******'emailAddress') for email in email_query: template_data = { 'message': post.message, 'link': post.permalink(self.request.host_url), 'unsubscribe_link': email.permalink(self.request.host_url), 'user': imok_user } body = template.render(s.template_path('email.txt'), template_data) mail.send_mail(sender='*****@*****.**', to=email.emailAddress, subject="I'm OK", body=body) sms_message.status = 'processed' response_sms = SmsMessage(phone_number=phone, message="I'm OK: Message received. %d contact(s) notified." % email_query.count(), direction="outgoing", status="queued") db.put([ response_sms, sms_message ]) #self.response.out.write(message) self.response.out.write(json.dumps({'result': 'ok'}))
def post(self): user = users.get_current_user() okUser = ImokUser.all().filter('account =', user).get() p = Post(user=user, message='test message', lat=37., lon=-122.) p.unique_id = Post.gen_unique_key() p.put() registeredEmailQuery = RegisteredEmail.all().filter('userName ='******'emailAddress') debug_output = [] for registeredEmail in registeredEmailQuery: templateData = { 'message': p.message, 'link': p.permalink(self.request.host_url), 'user': okUser, 'unsubscribe_link': registeredEmail.permalink(self.request.host_url) } emailBody = template.render(settings.template_path('email.txt'), templateData) mail.send_mail(sender='*****@*****.**', to=registeredEmail.emailAddress, subject="I'm OK", body=emailBody) debug_output.append(emailBody) if debug_output: self.response.headers['Content-Type'] = 'text/plain' self.response.out.write("\n\n".join(debug_output)) return self.redirect('/home')
def get(self, message=""): template_data = { 'logout_url': users.create_logout_url('/'), 'phones': Phone.all().filter('user = '******'Content-Type'] = 'text/html' self.response.out.write(template.render(s.template_path('phone.html'), template_data))
def get(self): posts = Post.all() #.gql() template_data = { 'posts' : posts, } template_path = s.template_path('incoming.html') self.response.headers['Content-Type'] = 'text/html' self.response.out.write(template.render(template_path, template_data))
def get(self): key = self.request.get('id', '') if key == '': self.error(400) try: phone = Phone.all().filter('user ='******'__key__ =', db.Key(key)).get() template_data = { 'logout_url': users.create_logout_url('/'), 'phone': phone, 'id': key } if self.request.get('message', ''): template_data['message'] = self.request.get('message') self.response.headers['Content-Type'] = 'text/html' self.response.out.write(template.render(s.template_path('phone_verify.html'), template_data)) except db.BadKeyError: self.error(400)
def post(self): self.response.headers['Content-Type'] = 'text/json' phone = Phone.normalize_number(self.request.get('phone')) message = self.request.get('message') if not (message and phone): result = { 'result': 'error', 'message': 'missing phone and/or message' } self.response.out.write(json.dumps(result)) return sms_message = SmsMessage(phone_number=phone, message=message, direction='incoming', status='unclaimed') objects = [ sms_message ] phone_entity = Phone.all().filter('number =', phone).get() if not phone_entity: db.put(objects) self.response.out.write(json.dumps({'result': 'ok'})) return post = Post.fromText(message) post.unique_id = Post.gen_unique_key() post.user = phone_entity.user objects.append(post) sms_message.status = 'queued' db.put(objects) imok_user = ImokUser.all().filter('account =', phone_entity.user).get() email_query = RegisteredEmail.all().filter('userName ='******'emailAddress') for email in email_query: template_data = { 'message': post.message, 'link': post.permalink(self.request.host_url), 'unsubscribe_link': email.permalink(self.request.host_url), 'user': imok_user } body = template.render(s.template_path('email.txt'), template_data) mail.send_mail(sender=s.MAILER_EMAIL, to=email.emailAddress, subject="IMOk status", body=body) sms_message.status = 'processed' # Response_sms = SmsMessage(phone_number=phone, # message="IMOk: Message received, %d contact(s) notified." % email_query.count(), # direction="outgoing", # status="queued") sendSms(phone=phone_entity, message="IMOk: Message received, %d contact(s) notified." % email_query.count()) # db.put([ response_sms, sms_message ]) db.put([sms_message]) #self.response.out.write(message) self.response.out.write(json.dumps({'result': 'ok'}))
def render(self, tmplName, tmplValues, contentType='text/html'): self.response.headers['Content-Type'] = contentType self.response.out.write(template.render(settings.template_path(tmplName), tmplValues))
def render(self, tmplName, tmplValues, contentType='text/html'): self.writeResponse( template.render(settings.template_path(tmplName), tmplValues))
def savePostAndPush(self, text, phoneNumber, user, smsMessage=None, bogusTimestamp=None): post = Post.fromText(text) if bogusTimestamp != None: post.datetime = bogusTimestamp post.unique_id = Post.gen_unique_key() post.user = user objects = [post] if smsMessage != None: smsMessage.status = 'queued' objects.append(smsMessage) db.put(objects) ###################################################################### # send email # FIX: this block of code does not belong in sms_twilio imok_user = ImokUser.getProfileForUser(user) email_query = RegisteredEmail.all().filter('userName ='******'emailAddress') debugOutput = [] for email in email_query: template_data = { 'message': post.message, 'link': post.permalink(self.request.host_url), 'unsubscribe_link': email.permalink(self.request.host_url), 'user': imok_user } body = template.render(s.template_path('email.txt'), template_data) debugOutput.append(body) mail.send_mail(sender=s.MAILER_EMAIL, to=email.emailAddress, subject="IMOk status", body=body) twitter_post(imok_user, post.message) ###################################################################### # post to person finder if 0: debugText = personFinder.postToPersonFinder(post) debugOutput.append(debugText) ###################################################################### # send confirmation SMS if smsMessage != None: smsMessage.status = 'processed' smsMessage.put() response_sms = SmsMessage( phone_number=phoneNumber, message="I'm OK: Message received, %d contact(s) notified." % email_query.count(), direction="outgoing", status="queued") #response_sms.put() sendSms(response_sms) #self.response.out.write(message) #self.response.out.write(json.dumps({'result': 'ok'})) return debugOutput