def post(self): # We set the same parent key on the 'Greeting' to ensure each # Greeting is in the same entity group. Queries across the # single entity group will be consistent. However, the write # rate to a single entity group should be limited to # ~1/second. name = self.request.get('name') stream = Stream(name=name, created_by_user_id=users.get_current_user().user_id()) stream.put() self.response.out.write("ok")
def post(self): user = users.get_current_user() if not user: self.login_page() else: name = self.request.get('name') message = self.request.get('message') key = ndb.Key('Stream', name) stream = key.get() if stream: self.template( 'views/error.html', error='Error: you tried to create a new stream ' + 'whose name is the same as an existing ' + 'stream; operation did not complete') else: subscribers = filter( lambda s: s != '', map( unicode.lower, map(unicode.strip, self.request.get('subscribers').split(',')))) message = self.request.get('message') tags = filter( lambda t: t != '', map(unicode.strip, self.request.get('tags').split(','))) cover_image_url = self.request.get('cover_image_url') cover_image_url = cover_image_url if cover_image_url \ else 'http://placehold.it/190x190.png' stream = Stream(id=name, name=name, owner=user.email().lower(), subscribers=subscribers, tags=tags, cover_image_url=cover_image_url, images=[]) body = ('You are now subscribed to the %s stream:\n' + 'http://mh33338-connexus.appspot.com/view?' + 'stream_name=%s&increment=1\n%s' % (name, message)) sender_address = 'Matthew Halpern <*****@*****.**>' subject = '[mh33338-conexus] Subscription to %s Stream' % name stream.put() for subscriber in subscribers: mail.send_mail(sender_address, subscriber, subject, body) self.redirect('/manage')
def create_stream(pigeon_id, name, cover_url, sub_list, tag_list): pigeon_key = ndb.Key(Pigeon, pigeon_id) stream = Stream() stream.key = ndb.Key(Stream, name, parent=pigeon_key) stream.name = name stream.cover_url = cover_url stream.tags = tag_list stream.put() for pid in sub_list: if pid != pigeon_id: if not pigeon_exists(pid): create_pigeon(pid) suber_key = ndb.Key(Pigeon, pid) sub = Subscription() sub.Pigeon_key = suber_key sub.Stream_key = stream.key sub.put() return
def post(self): user = users.get_current_user() if not user: self.login_page() else: name = self.request.get('name') message = self.request.get('message') key = ndb.Key('Stream', name) stream = key.get() if stream: self.template('views/error.html', error='Error: you tried to create a new stream ' + 'whose name is the same as an existing ' + 'stream; operation did not complete') else: subscribers = filter(lambda s: s != '', map(unicode.lower, map(unicode.strip, self.request.get('subscribers').split(',')) )) message = self.request.get('message') tags = filter(lambda t: t != '', map(unicode.strip, self.request.get('tags').split(','))) cover_image_url = self.request.get('cover_image_url') cover_image_url = cover_image_url if cover_image_url \ else 'http://placehold.it/190x190.png' stream = Stream(id=name, name=name, owner=user.email().lower(), subscribers=subscribers, tags=tags, cover_image_url=cover_image_url, images=[]) body = ('You are now subscribed to the %s stream:\n' + 'http://mh33338-connexus.appspot.com/view?' + 'stream_name=%s&increment=1\n%s' % (name, message)) sender_address = 'Matthew Halpern <*****@*****.**>' subject = '[mh33338-conexus] Subscription to %s Stream' % name stream.put() for subscriber in subscribers: mail.send_mail(sender_address, subscriber, subject, body) self.redirect('/manage')