From 675a5b84e7db97d207cc05eb35b13d22128715dd Mon Sep 17 00:00:00 2001 From: Roman Bazalevsky Date: Mon, 2 Nov 2015 15:33:20 +0300 Subject: [PATCH] =?utf8?q?=D0=9A=D0=BE=D1=80=D1=80=D0=B5=D0=BA=D1=82=D0=BD?= =?utf8?q?=D0=B0=D1=8F=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA?= =?utf8?q?=D0=B0=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BE=D0=BA=20=D0=BF=D1=80?= =?utf8?q?=D0=B8=20=D0=BD=D0=B5=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=D1=8C?= =?utf8?q?=D0=BD=D0=BE=D0=BC=20=D0=B8=D0=BC=D0=B5=D0=BD=D0=B8=20=D0=BA?= =?utf8?q?=D0=B0=D0=BD=D0=B0=D0=BB=D0=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- plugins/m3u_plugin.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/plugins/m3u_plugin.py b/plugins/m3u_plugin.py index 1bb6483..4d806fa 100644 --- a/plugins/m3u_plugin.py +++ b/plugins/m3u_plugin.py @@ -45,6 +45,7 @@ class M3u(VPProxyPlugin): def handle(self, connection): + logger = logging.getLogger('plugin_m3u') hostport = connection.headers['Host'] self.splitted_path=connection.path.split('/') @@ -61,6 +62,7 @@ class M3u(VPProxyPlugin): None else: connection.dieWithError(404) + return if len(self.splitted_path)>3 and self.splitted_path[1]!="play": connection.dieWithError() @@ -108,6 +110,10 @@ class M3u(VPProxyPlugin): connection.end_headers() elif self.splitted_path[1]=="play": channel=self.splitted_path[len(self.splitted_path)-1] + logger.debug('channel requestes= "%s"' % channel) + if not channel: + connection.dieWithError(404) + return channel=urllib.unquote(channel).decode('utf-8') if len(self.splitted_path)<=4: prefix="get" @@ -115,10 +121,13 @@ class M3u(VPProxyPlugin): prefix=self.splitted_path[len(self.splitted_path)-2] if prefix not in ('get','mp4','webm'): connection.dieWithError() + return else: connection.dieWithError() + return url=None for record in playlist: + if record.title: if record.title.decode('utf-8').replace('/','')==channel: url=record.path.decode('utf-8') if url: @@ -127,7 +136,9 @@ class M3u(VPProxyPlugin): connection.send_header('Location', redirect) connection.end_headers() else: + logger.debug('Nothing found!') connection.dieWithError(404) + return else: connection.send_response(200) @@ -144,10 +155,10 @@ class M3u(VPProxyPlugin): connection.dieWithError() return + exported = "" + if self.splitted_path[1]=="list": - exported = "" - for record in playlist: if record.title: exported = exported + "" + record.title.decode('utf-8').replace('/','') + "\n" @@ -182,9 +193,9 @@ class M3u(VPProxyPlugin): exported = playlistgen.exportm3u(hostport,prefix) - exported = exported.encode('utf-8') - - connection.wfile.write(exported) + if exported: + exported = exported.encode('utf-8') + connection.wfile.write(exported) def getparam(self, key): if key in self.params: -- 2.34.1