def post(self): url = self.request.get('url') try: start_date = datetime.datetime.strptime( self.request.get('start-date'), '%Y-%m-%d') except ValueError: start_date = datetime.datetime(1970, 1, 1) frequency = self.request.get('frequency') subscription = data.create_subscription( url, start_date, frequency) feed_info = data.get_feed_info_from_feed_url(url) feed_title = feed_info.title subscription_html_url = '%s/feed-playback/subscription/%s' % ( CONSTANTS.APP_URL, subscription.id) subscription.create_reader_stream( intro_html_url=subscription_html_url, intro_title='Feed playback for "%s" has begun' % feed_title, intro_body=self._render_template( 'feedplayback/intro-body.snippet', { 'subscription_html_url': subscription_html_url, 'feed_url': url, 'feed_title': feed_title, 'item_count': len(feed_info.item_ids) - subscription.position, 'frequency': _FREQUENCY_DISPLAY_NAMES[frequency], })) self._write_json(subscription.as_json_dict())
def get(self, subscription_id): subscription = data.get_subscription_by_id(subscription_id) if not subscription: self._write_not_found() return feed_info = data.get_feed_info_from_feed_url(subscription.feed_url) self._write_template('feedplayback/subscription.html', { 'feed_title': feed_info.title, 'feed_url': subscription.feed_url, 'subscription_id': subscription_id, 'subscription_feed_url': subscription.get_subscription_feed_url(), 'subscription_reader_url': subscription.get_subscription_reader_url(), 'position': subscription.position + 1, 'item_count': len(feed_info.item_ids), 'frequency': _FREQUENCY_DISPLAY_NAMES[subscription.frequency] })