From a7fe15b99d64904855ba2bd3649b1a3642824a75 Mon Sep 17 00:00:00 2001 From: Tom van der Lee Date: Sun, 11 Oct 2015 17:54:06 +0200 Subject: Can actually be installed with setup.py now --- youtube_podcaster/podcastfeeder.py | 43 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 youtube_podcaster/podcastfeeder.py (limited to 'youtube_podcaster/podcastfeeder.py') diff --git a/youtube_podcaster/podcastfeeder.py b/youtube_podcaster/podcastfeeder.py new file mode 100644 index 0000000..3f752d2 --- /dev/null +++ b/youtube_podcaster/podcastfeeder.py @@ -0,0 +1,43 @@ +from http.server import BaseHTTPRequestHandler + +from .podcastupdater import ( + PodcastUpdater +) + + +def create_feeder(youtube_config, podcast_config): + class PodcastFeeder(BaseHTTPRequestHandler): + def __init__(self, request, client_address, server): + self.updater = PodcastUpdater(youtube_config, podcast_config) + super(PodcastFeeder, self).__init__(request, client_address, server) + + def do_GET(self): + path = self.path.split('/') + + if len(path) == 3: + channel = path[1] + playlist = path[2] + else: + return self.return_error(404) + + xml = self.updater.get_xml(channel, playlist) + + if not xml: + return self.return_error(404) + else: + self.send_response(200) + self.send_header("Content-type", "text/xml") + self.end_headers() + self.wfile.write(bytes(xml, 'UTF-8')) + + def return_error(self, code): + self.send_response(code) + self.send_header("Content-type", "text/html") + self.end_headers() + + reponse = "Error: %s" % (code) + self.wfile.write(bytes(reponse, 'UTF-8')) + + return PodcastFeeder + +# vim: set ts=8 sw=4 tw=0 et : -- cgit v1.2.3