def podcast_new_ep(req, podcast_slug): pod = get_podcast(req, podcast_slug) tz_delta = UserSettings.get_from_user(req.user).get_tz_delta() latest_episode = pod.get_most_recent_episode() ctx = { 'podcast': pod, 'latest_ep': latest_episode, } if not req.POST: base_default = EmptyStringDefaultDict() base_default['publish'] = datetime.datetime.strftime( datetime.datetime.now() + tz_delta, '%Y-%m-%dT%H:%M' # 2015-07-09T12:00 ) ctx['default'] = base_default return _pmrender(req, 'dashboard/episode/page_new.html', ctx) try: publish_parsed = datetime.datetime.strptime(req.POST.get('publish').split('.')[0], ISO_FORMAT) image_url = req.POST.get('image-url') ep = PodcastEpisode( podcast=pod, title=req.POST.get('title'), subtitle=req.POST.get('subtitle'), publish=publish_parsed, description=req.POST.get('description'), duration=int(req.POST.get('duration-hours')) * 3600 + int(req.POST.get('duration-minutes')) * 60 + int(req.POST.get('duration-seconds')), audio_url=signer.unsign(req.POST.get('audio-url')), audio_size=int(req.POST.get('audio-url-size')), audio_type=req.POST.get('audio-url-type'), image_url=signer.unsign(image_url) if image_url else pod.cover_image, copyright=req.POST.get('copyright'), license=req.POST.get('license'), explicit_override=req.POST.get('explicit_override')) ep.set_flair(req.POST, no_save=True) ep.save() if req.POST.get('feedback_prompt'): prompt = EpisodeFeedbackPrompt(episode=ep, prompt=req.POST.get('feedback_prompt')) prompt.save() except Exception as e: raise e ctx['error'] = True ctx['default'] = req.POST return _pmrender(req, 'dashboard/episode/page_new.html', ctx) return redirect('podcast_dashboard', podcast_slug=pod.slug)
def podcast_new_ep(req, podcast_slug): pod = get_podcast(req, podcast_slug) tz_delta = UserSettings.get_from_user(req.user).get_tz_delta() latest_episode = pod.get_most_recent_episode() ctx = { 'podcast': pod, 'latest_ep': latest_episode, } if not req.POST: base_default = EmptyStringDefaultDict() base_default['publish'] = datetime.datetime.strftime( datetime.datetime.now() + tz_delta, '%Y-%m-%dT%H:%M' # 2015-07-09T12:00 ) ctx['default'] = base_default return _pmrender(req, 'dashboard/episode/page_new.html', ctx) try: publish_parsed = datetime.datetime.strptime(req.POST.get('publish').split('.')[0], ISO_FORMAT) image_url = req.POST.get('image-url') ep = PodcastEpisode( podcast=pod, title=req.POST.get('title'), subtitle=req.POST.get('subtitle'), publish=publish_parsed, description=req.POST.get('description'), duration=int(req.POST.get('duration-hours') or 0) * 3600 + int(req.POST.get('duration-minutes') or 0) * 60 + int(req.POST.get('duration-seconds') or 0), audio_url=signer.unsign(req.POST.get('audio-url')), audio_size=int(req.POST.get('audio-url-size')), audio_type=req.POST.get('audio-url-type'), image_url=signer.unsign(image_url) if image_url else pod.cover_image, copyright=req.POST.get('copyright'), license=req.POST.get('license'), explicit_override=req.POST.get('explicit_override')) ep.set_flair(req.POST, no_save=True) ep.save() if req.POST.get('feedback_prompt'): prompt = EpisodeFeedbackPrompt(episode=ep, prompt=req.POST.get('feedback_prompt')) prompt.save() except Exception as e: rollbar.report_exc_info(sys.exc_info(), req) ctx['error'] = True ctx['default'] = req.POST return _pmrender(req, 'dashboard/episode/page_new.html', ctx) return redirect('podcast_dashboard', podcast_slug=pod.slug)
def edit_podcast_episode(req, podcast_slug, episode_id): pod = get_podcast(req, podcast_slug) ep = get_object_or_404(PodcastEpisode, id=episode_id, podcast=pod) ctx = { 'podcast': pod, 'episode': ep, } if not req.POST: return _pmrender(req, 'dashboard/episode/page_edit.html', ctx) try: naive_publish = datetime.datetime.strptime(req.POST.get('publish'), '%Y-%m-%dT%H:%M') # 2015-07-09T12:00 adjusted_publish = naive_publish - UserSettings.get_from_user(req.user).get_tz_delta() ep.title = req.POST.get('title') ep.subtitle = req.POST.get('subtitle') ep.publish = adjusted_publish ep.description = req.POST.get('description') ep.duration = int(req.POST.get('duration-hours')) * 3600 + int(req.POST.get('duration-minutes')) * 60 + int(req.POST.get('duration-seconds')) ep.audio_url = signer.unsign(req.POST.get('audio-url')) ep.audio_size = int(req.POST.get('audio-url-size')) ep.audio_type = req.POST.get('audio-url-type') ep.image_url = signer.unsign(req.POST.get('image-url')) ep.copyright = req.POST.get('copyright') ep.license = req.POST.get('license') ep.explicit_override = req.POST.get('explicit_override') ep.set_flair(req.POST, no_save=True) ep.save() ep.delete_feedback_prompt() if req.POST.get('feedback_prompt'): prompt = EpisodeFeedbackPrompt(episode=ep, prompt=req.POST.get('feedback_prompt')) prompt.save() except Exception as e: print e ctx['default'] = req.POST ctx['error'] = True return _pmrender(req, 'dashboard/episode/page_edit.html', ctx) return redirect('podcast_episode', podcast_slug=pod.slug, episode_id=str(ep.id))
def edit_podcast_episode(req, podcast_slug, episode_id): pod = get_podcast(req, podcast_slug) ep = get_object_or_404(PodcastEpisode, id=episode_id, podcast=pod) try: publish_parsed = datetime.datetime.strptime(req.POST.get('publish').split('.')[0], ISO_FORMAT) ep.title = req.POST.get('title') ep.subtitle = req.POST.get('subtitle') ep.publish = publish_parsed ep.description = req.POST.get('description') ep.duration = int(req.POST.get('duration-hours')) * 3600 + int(req.POST.get('duration-minutes')) * 60 + int(req.POST.get('duration-seconds')) ep.audio_url = signer.unsign(req.POST.get('audio-url')) ep.audio_size = int(req.POST.get('audio-url-size')) ep.audio_type = req.POST.get('audio-url-type') image_url = req.POST.get('image-url') if image_url: ep.image_url = signer.unsign(req.POST.get('image-url')) else: ep.image_url = pod.cover_image ep.copyright = req.POST.get('copyright') ep.license = req.POST.get('license') ep.explicit_override = req.POST.get('explicit_override') ep.set_flair(req.POST, no_save=True) ep.save() ep.delete_feedback_prompt() if req.POST.get('feedback_prompt'): prompt = EpisodeFeedbackPrompt(episode=ep, prompt=req.POST.get('feedback_prompt')) prompt.save() except Exception as e: return redirect(reverse('podcast_episode', podcast_slug=pod.slug, episode_id=str(ep.id)) + '?error=true#edit') return redirect('podcast_episode', podcast_slug=pod.slug, episode_id=str(ep.id))
def edit_podcast_episode(req, podcast_slug, episode_id): pod = get_podcast(req, podcast_slug) ep = get_object_or_404(PodcastEpisode, id=episode_id, podcast=pod) try: publish_parsed = datetime.datetime.strptime(req.POST.get('publish').split('.')[0], ISO_FORMAT) ep.title = req.POST.get('title') ep.subtitle = req.POST.get('subtitle') ep.publish = publish_parsed ep.description = req.POST.get('description') ep.duration = int(req.POST.get('duration-hours') or 0) * 3600 + int(req.POST.get('duration-minutes') or 0) * 60 + int(req.POST.get('duration-seconds') or 0) ep.audio_url = signer.unsign(req.POST.get('audio-url')) ep.audio_size = int(req.POST.get('audio-url-size')) ep.audio_type = req.POST.get('audio-url-type') image_url = req.POST.get('image-url') if image_url: ep.image_url = signer.unsign(req.POST.get('image-url')) else: ep.image_url = pod.cover_image ep.copyright = req.POST.get('copyright') ep.license = req.POST.get('license') ep.explicit_override = req.POST.get('explicit_override') ep.set_flair(req.POST, no_save=True) ep.save() ep.delete_feedback_prompt() if req.POST.get('feedback_prompt'): prompt = EpisodeFeedbackPrompt(episode=ep, prompt=req.POST.get('feedback_prompt')) prompt.save() except Exception as e: return redirect(reverse('podcast_episode', podcast_slug=pod.slug, episode_id=str(ep.id)) + '?error=true#edit') return redirect('podcast_episode', podcast_slug=pod.slug, episode_id=str(ep.id))