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()