29 lines
738 B
Python
29 lines
738 B
Python
import tornado.gen
|
|
import tornado.web
|
|
|
|
from common.web import requestsManager
|
|
from common.sentry import sentry
|
|
|
|
MODULE_NAME = "direct_download"
|
|
class handler(requestsManager.asyncRequestHandler):
|
|
"""
|
|
Handler for /d/
|
|
"""
|
|
@tornado.web.asynchronous
|
|
@tornado.gen.engine
|
|
@sentry.captureTornado
|
|
def asyncGet(self, bid):
|
|
try:
|
|
noVideo = bid.endswith("n")
|
|
if noVideo:
|
|
bid = bid[:-1]
|
|
bid = int(bid)
|
|
|
|
self.set_status(302, "Moved Temporarily")
|
|
url = "https://bm6.ppy.sh/d/{}{}".format(bid, "?novideo" if noVideo else "")
|
|
self.add_header("Location", url)
|
|
self.add_header("Cache-Control", "no-cache")
|
|
self.add_header("Pragma", "no-cache")
|
|
except ValueError:
|
|
self.set_status(400)
|
|
self.write("Invalid set id") |