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 post(self): config = TrendingEmailConfig.query().fetch(1)[0] if not config: config = TrendingEmailConfig() if self.request.get("none"): config.mode = "none" elif self.request.get("minutes"): config.mode = "minutes" elif self.request.get("hourly"): config.mode = "hourly" elif self.request.get("daily"): config.mode = "daily" config.put() self.redirect('/trending')
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))