no redirect on head
This commit is contained in:
		
							
								
								
									
										19
									
								
								stream.py
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								stream.py
									
									
									
									
									
								
							@@ -260,13 +260,13 @@ def rewrite(current, provider, proxy):
 | 
				
			|||||||
                ndata += "\n"
 | 
					                ndata += "\n"
 | 
				
			||||||
        return ndata
 | 
					        return ndata
 | 
				
			||||||
class MainHandler(tornado.web.RequestHandler):
 | 
					class MainHandler(tornado.web.RequestHandler):
 | 
				
			||||||
    async def handle_any(self):
 | 
					    async def handle_any(self, redir):
 | 
				
			||||||
        handler = UpstreamHandler()
 | 
					        handler = UpstreamHandler()
 | 
				
			||||||
        await handler.setup(self)
 | 
					        await handler.setup(self)
 | 
				
			||||||
        if handler.render:
 | 
					        if handler.render:
 | 
				
			||||||
            await self.handle_render(handler)
 | 
					            await self.handle_render(handler)
 | 
				
			||||||
        elif handler.stream:
 | 
					        elif handler.stream:
 | 
				
			||||||
            await self.handle_stream(handler)
 | 
					            await self.handle_stream(handler, redir)
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            logger.info(f'provider missing {self.request.uri}')
 | 
					            logger.info(f'provider missing {self.request.uri}')
 | 
				
			||||||
            self.set_status(404)
 | 
					            self.set_status(404)
 | 
				
			||||||
@@ -290,7 +290,7 @@ class MainHandler(tornado.web.RequestHandler):
 | 
				
			|||||||
            self.set_status(404)
 | 
					            self.set_status(404)
 | 
				
			||||||
            self.write("HTML template missing.")
 | 
					            self.write("HTML template missing.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    async def handle_stream(self, handler):
 | 
					    async def handle_stream(self, handler, redir):
 | 
				
			||||||
        upstream = None
 | 
					        upstream = None
 | 
				
			||||||
        if handler.proxy is not None:
 | 
					        if handler.proxy is not None:
 | 
				
			||||||
            try:
 | 
					            try:
 | 
				
			||||||
@@ -319,6 +319,9 @@ class MainHandler(tornado.web.RequestHandler):
 | 
				
			|||||||
            data = None
 | 
					            data = None
 | 
				
			||||||
            if "mpegurl" in ctype.lower():
 | 
					            if "mpegurl" in ctype.lower():
 | 
				
			||||||
                data = rewrite(upstream, provider, proxy)
 | 
					                data = rewrite(upstream, provider, proxy)
 | 
				
			||||||
 | 
					                self.set_header("Content-Type", "application/vnd.apple.mpegurl")
 | 
				
			||||||
 | 
					            else:
 | 
				
			||||||
 | 
					                self.set_header("Content-Type", ctype)
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                ldata = {}
 | 
					                ldata = {}
 | 
				
			||||||
                ldata["upstream"] = upstream
 | 
					                ldata["upstream"] = upstream
 | 
				
			||||||
@@ -335,15 +338,15 @@ class MainHandler(tornado.web.RequestHandler):
 | 
				
			|||||||
                    except Exception as e:
 | 
					                    except Exception as e:
 | 
				
			||||||
                        logger.info(e)
 | 
					                        logger.info(e)
 | 
				
			||||||
            if data is None:
 | 
					            if data is None:
 | 
				
			||||||
                upstream = await handler.proxy.proxy_url(upstream, None)
 | 
					                if redir:
 | 
				
			||||||
                self.redirect(upstream, status=303)
 | 
					                    upstream = await handler.proxy.proxy_url(upstream, None)
 | 
				
			||||||
 | 
					                    self.redirect(upstream, status=303)
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                self.set_header("Content-Type", "application/vnd.apple.mpegurl")
 | 
					 | 
				
			||||||
                self.write(data)
 | 
					                self.write(data)
 | 
				
			||||||
    async def get(self):
 | 
					    async def get(self):
 | 
				
			||||||
        await self.handle_any()
 | 
					        await self.handle_any(True)
 | 
				
			||||||
    async def head(self):
 | 
					    async def head(self):
 | 
				
			||||||
        await self.handle_any()
 | 
					        await self.handle_any(False)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class FileHandler(tornado.web.RequestHandler):
 | 
					class FileHandler(tornado.web.RequestHandler):
 | 
				
			||||||
    def get(self):
 | 
					    def get(self):
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user