import subprocess
from http.server import BaseHTTPRequestHandler, HTTPServer
class Handler(BaseHTTPRequestHandler):
def do_GET(self):
if self.path == "/":
self.send_response(200)
self.send_header("Content-type","text/html")
self.end_headers()
self.wfile.write(b"""
Wikidata Downloader
Start Download
View Status
""")
elif self.path == "/start":
subprocess.Popen(
"aria2c -x 16 -s 16 -k 1M https://dumps.wikimedia.org/wikidatawiki/entities/latest-all.json.bz2",
shell=True
)
self.send_response(200)
self.end_headers()
self.wfile.write(b"Download started")
elif self.path == "/status":
try:
with open("aria2.log") as f:
data = f.read()[-5000:]
except:
data = "No download yet"
self.send_response(200)
self.end_headers()
self.wfile.write(data.encode())
else:
self.send_error(404)
HTTPServer(("0.0.0.0", 7860), Handler).serve_forever()