def get(self): user = users.get_current_user() if not user: template_values = { 'login_url': users.create_login_url(self.request.uri) } template = JINJA_ENVIRONMENT.get_template('views/login.html') self.response.headers['Content-Type'] = 'text/html; charset=utf-8' self.response.write(template.render(template_values)) else: owned_streams = ( Stream.query(Stream.owner == user.email().lower()) .order(-Stream.name).fetch() ) subscribed_streams = ( Stream.query(Stream.subscribers == user.email().lower()) .order(-Stream.name).fetch() ) template_values = { 'owned_streams': owned_streams, 'subscribed_streams': subscribed_streams } template = JINJA_ENVIRONMENT.get_template('views/manage.html') self.response.headers['Content-Type'] = 'text/html; charset=utf-8' self.response.write(template.render(template_values))
def get(self): stream_name = self.request.get('stream_name') if stream_name: key = ndb.Key('Stream', stream_name) stream = key.get() else: stream = None if stream: increment = self.request.get('increment') if increment: stream.views += int(increment) stream.recent_views.append(datetime.datetime.now()) stream.put() cursor = self.request.get('cursor') cursor = int(cursor) if cursor else 0 upload_url = blobstore.create_upload_url('/upload_photo') template_values = { 'stream': stream, 'cursor': cursor, 'upload_url': upload_url } template = JINJA_ENVIRONMENT.get_template('views/view-stream.html') self.response.headers['Content-Type'] = 'text/html; charset=utf-8' self.response.write(template.render(template_values)) else: streams = Stream.query().order(Stream.date).fetch() template_values = { 'streams': streams, } template = JINJA_ENVIRONMENT.get_template( 'views/view-streams.html') self.response.headers['Content-Type'] = 'text/html; charset=utf-8' self.response.write(template.render(template_values))
def get(self): stream_name = self.request.get('stream_name') if stream_name: key = ndb.Key('Stream', stream_name) stream = key.get() else: stream = None if stream: increment = self.request.get('increment') if increment: stream.views += int(increment) stream.recent_views.append(datetime.datetime.now()) stream.put() cursor = self.request.get('cursor') cursor = int(cursor) if cursor else 0 upload_url = blobstore.create_upload_url('/upload_photo') template_values = { 'stream': stream, 'cursor': cursor, 'upload_url': upload_url } template = JINJA_ENVIRONMENT.get_template('views/view-stream.html') self.response.headers['Content-Type'] = 'text/html; charset=utf-8' self.response.write(template.render(template_values)) else: streams = Stream.query().order(Stream.date).fetch() template_values = { 'streams': streams, } template = JINJA_ENVIRONMENT.get_template('views/view-streams.html') self.response.headers['Content-Type'] = 'text/html; charset=utf-8' self.response.write(template.render(template_values))
def get(self): MINUTES_PER_TICK = 5 TICKS_PER_HOUR = 60 / MINUTES_PER_TICK TICKS_PER_DAY = 24 * TICKS_PER_HOUR config = TrendingEmailConfig.query().fetch(1)[0] if config: if config.mode == "none": config.ticks = 0 elif config.mode == "minutes": config.ticks = 0 elif config.mode == "hourly": config.ticks += 1 config.ticks = config.ticks % TICKS_PER_HOUR elif config.mode == "daily": config.ticks += 1 config.ticks = config.ticks % TICKS_PER_DAY if config.mode != "none" and config.ticks == 0: sender_address = 'Matthew Halpern <*****@*****.**>' subject = '[mh33338-conexus] Trending' streams = Stream.query().fetch() sorted_streams = sorted(streams, key=lambda s: len(s.recent_views), reverse=True) body = "Trending Streams:\n\n" for idx, stream in enumerate(sorted_streams[:3]): body += "%d. %s %s" % (idx + 1, stream.name, "http://mh33338-connexus.appspot" + ".com/view?stream_name=%s" % stream.name + "&increment=1\n") mail.send_mail(sender_address, "*****@*****.**", subject, body)
def get(self): tags = set() for stream in Stream.query().fetch(): tags.update(stream.tags) tags.add(stream.key.id()) meta = Meta.get_meta() meta.cached_tags = list(tags) meta.put()
def get(self): streams = Stream.query().fetch() logging.info("STREAMS %d" % len(streams)) now = datetime.datetime.now() for stream in streams: stream.recent_views = filter(lambda rv: (now - rv).seconds < SECS_PER_HOUR, stream.recent_views) stream.put()
def get(self): user = users.get_current_user() if not user: template_values = { 'login_url': users.create_login_url(self.request.uri) } template = JINJA_ENVIRONMENT.get_template('views/login.html') self.response.headers['Content-Type'] = 'text/html; charset=utf-8' self.response.write(template.render(template_values)) else: owned_streams = (Stream.query(Stream.owner == user.email().lower() ).order(-Stream.name).fetch()) subscribed_streams = (Stream.query( Stream.subscribers == user.email().lower()).order( -Stream.name).fetch()) template_values = { 'owned_streams': owned_streams, 'subscribed_streams': subscribed_streams } template = JINJA_ENVIRONMENT.get_template('views/manage.html') self.response.headers['Content-Type'] = 'text/html; charset=utf-8' self.response.write(template.render(template_values))
def get(self): query = self.request.get('query') if query: streams = Stream.query().order(Stream.date).fetch() matches = filter(lambda s: query in s.name or query in s.tags, streams)[:5] else: query = '' matches = [] template_values = {'query': query, 'matches': matches} template = JINJA_ENVIRONMENT.get_template('views/search.html') self.response.headers['Content-Type'] = 'text/html; charset=utf-8' self.response.write(template.render(template_values))
def get(self): streams = Stream.query().fetch() sorted_streams = sorted(streams, key=lambda s: len(s.recent_views), reverse=True) config = TrendingEmailConfig.query().fetch(1)[0] if not config: config = TrendingEmailConfig() template_values = { 'streams': sorted_streams[:3], 'email_mode': config.mode } template = JINJA_ENVIRONMENT.get_template('views/trending.html') self.response.headers['Content-Type'] = 'text/html; charset=utf-8' self.response.write(template.render(template_values))
def post(self): user = users.get_current_user() if user: stream_names = self.request.POST.getall('stream') if stream_names: streams = Stream.query(Stream.name.IN(stream_names)).fetch() ndb.delete_multi(map(lambda s: s.key, streams)) self.redirect('/manage') else: template_values = {'error': 'Error: user not logged in.'} template = JINJA_ENVIRONMENT.get_template('views/error.html') self.response.headers['Content-Type'] = \ 'text/html; charset=utf-8' self.response.write(template.render(template_values))
def get(self): query = self.request.get('query') if query: streams = Stream.query().order(Stream.date).fetch() matches = filter(lambda s: query in s.name or query in s.tags, streams)[:5] else: query = '' matches = [] template_values = { 'query': query, 'matches': matches } template = JINJA_ENVIRONMENT.get_template('views/search.html') self.response.headers['Content-Type'] = 'text/html; charset=utf-8' self.response.write(template.render(template_values))
def post(self): user = users.get_current_user() if user: stream_names = self.request.POST.getall('stream') if stream_names: streams = Stream.query(Stream.name.IN(stream_names)).fetch() ndb.delete_multi(map(lambda s: s.key, streams)) self.redirect('/manage') else: template_values = { 'error': 'Error: user not logged in.' } template = JINJA_ENVIRONMENT.get_template('views/error.html') self.response.headers['Content-Type'] = \ 'text/html; charset=utf-8' self.response.write(template.render(template_values))
def post(self): user = users.get_current_user() if user: stream_names = self.request.POST.getall('stream') if stream_names: streams = Stream.query(Stream.name.IN(stream_names)).fetch() for stream in streams: stream.subscribers.append(user.email().lower()) stream.put() self.redirect('/view?stream_name=%s' % stream_names[0]) else: template_values = {'error': 'Error: user not logged in.'} template = JINJA_ENVIRONMENT.get_template('views/error.html') self.response.headers['Content-Type'] = \ 'text/html; charset=utf-8' self.response.write(template.render(template_values))
def post(self): user = users.get_current_user() if user: stream_names = self.request.POST.getall('stream') if stream_names: streams = Stream.query(Stream.name.IN(stream_names)).fetch() for stream in streams: stream.subscribers.append(user.email().lower()) stream.put() self.redirect('/view?stream_name=%s' % stream_names[0]) else: template_values = { 'error': 'Error: user not logged in.' } template = JINJA_ENVIRONMENT.get_template('views/error.html') self.response.headers['Content-Type'] = \ 'text/html; charset=utf-8' self.response.write(template.render(template_values))
def get(self): query = self.request.get('query') stream_list = [] if query: for stream in Stream.query().fetch(): if query in stream.key.id() or stream.check_tags(query): stream_dict = stream.to_dict() stream_list.append(stream_dict) data = populate_user() data['results'] = stream_list[:SEARCH_COUNT] data['results_count'] = len(stream_list) data['query'] = query if self.request.get('raw'): print data self.response.headers['Content-Type'] = 'application/json' for stream in data['results']: stream.pop('image_ids', None); stream.pop('date') print data return self.response.out.write(json.dumps(data)) template = JINJA_ENVIRONMENT.get_template('search.html') self.response.write(template.render(data))
def post(self): stream_token = self.request.get("stream_token") stream = Stream.query(Stream.streamSecret == stream_token).get() stream.key.delete() self.response.write("Disconnected") vars.stream_manager.message_room(stream.lecture_id,{'cmd': "removeUser", 'id': users.get_current_user().user_id()});
def get(self): streams = Stream.query().order(Stream.date).fetch() for stream in streams: self.update_term(stream.name, stream.name) for tag in stream.tags: self.update_term(tag, stream.name)
def show_all_streams(self): if self.request.get('trending') == 'true': return self.show_trending() streams = Stream.query().order(Stream.date).fetch() streams = [x.to_dict() for x in streams] return self.response.out.write(json.dumps(streams, cls=MyEncoder))