def _guide(request, subscription, template="guide.html", public=False, extra_context=None): subscription.is_public = public sub_settings = subscription.get_settings() now = datetime.datetime.now() the_shows = subscription.get_shows() episodes = Episode.get_for_shows(the_shows, order="date") twentyfour_hours_ago = now - datetime.timedelta(hours=24) recently = [] last_week = [] upcoming = [] for episode in episodes: if episode.date < twentyfour_hours_ago: last_week.append(episode) elif episode.date <= now: recently.append(episode) else: upcoming.append(episode) context = {"subscription":subscription, "recently": recently, "upcoming": upcoming, "last_week": last_week} if extra_context is not None: context.update(extra_context) response = render_to_response(template, RequestContext(request, context)) if not public: response.set_cookie("subkey", subscription.subkey) try: if subscription.check_beacon_status(now): subscription.put() # this put is not highly relevant except Exception, e: logging.warning(e)
def get_icalendar(self, public): """Nice hints from here: http://blog.thescoop.org/archives/2007/07/31/django-ical-and-vobject/""" the_shows = self.get_shows() # two_weeks_ago = now - datetime.timedelta(days=7) # five_hours = datetime.timedelta(hours=5) sub_settings = self.get_settings() episodes = Episode.get_for_shows(the_shows, order="date") cal = vobject.iCalendar() cal.add('method').value = 'PUBLISH' # IE/Outlook needs this for episode in episodes: vevent = episode.create_event_details(cal) return cal.serialize()
def _feed(request, subscription, template, public=False): now = datetime.datetime.now() sub_settings = subscription.get_settings() subscription.updated = now.strftime('%Y-%m-%dT%H:%M:%SZ') subscription.expires = (now + datetime.timedelta(days=1)).strftime('%Y-%m-%dT%H:%M:%SZ') the_shows = subscription.get_shows() wait_time = datetime.timedelta(hours=6) episodes = Episode.get_for_shows(the_shows, before=now, order="-date") items = [] for episode in episodes: if now > episode.date + wait_time: pub_date = episode.date_local episode.pub_date = pub_date items.append(episode) return render_to_string(template, RequestContext(request, {"subscription":subscription, "items": items}))
def get_message_context(self): the_shows = self.get_shows() now = datetime.datetime.now() twentyfour_hours_ago = now - datetime.timedelta(hours=24) episodes = Episode.get_for_shows(the_shows, after=twentyfour_hours_ago, order="date") if not len(episodes): return None context = {"subscription": self, "items": []} for episode in episodes: if episode.date > now: self.next_airtime = episode.date.date() break context["items"].append(episode) if not context["items"]: return None return context
def _feed(request, subscription, template, public=False): now = datetime.datetime.now() sub_settings = subscription.get_settings() subscription.updated = now.strftime('%Y-%m-%dT%H:%M:%SZ') subscription.expires = ( now + datetime.timedelta(days=1)).strftime('%Y-%m-%dT%H:%M:%SZ') the_shows = subscription.get_shows() wait_time = datetime.timedelta(hours=6) episodes = Episode.get_for_shows(the_shows, before=now, order="-date") items = [] for episode in episodes: if now > episode.date + wait_time: pub_date = episode.date_local episode.pub_date = pub_date items.append(episode) return render_to_string( template, RequestContext(request, { "subscription": subscription, "items": items }))
def _guide(request, subscription, template="guide.html", public=False, extra_context=None): subscription.is_public = public sub_settings = subscription.get_settings() now = datetime.datetime.now() the_shows = subscription.get_shows() episodes = Episode.get_for_shows(the_shows, order="date") twentyfour_hours_ago = now - datetime.timedelta(hours=24) recently = [] last_week = [] upcoming = [] for episode in episodes: if episode.date < twentyfour_hours_ago: last_week.append(episode) elif episode.date <= now: recently.append(episode) else: upcoming.append(episode) context = { "subscription": subscription, "recently": recently, "upcoming": upcoming, "last_week": last_week } if extra_context is not None: context.update(extra_context) response = render_to_response(template, RequestContext(request, context)) if not public: response.set_cookie("subkey", subscription.subkey) try: if subscription.check_beacon_status(now): subscription.put() # this put is not highly relevant except Exception, e: logging.warning(e)