Spaces:
Sleeping
Sleeping
| 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""" | |
| <h2>Wikidata Downloader</h2> | |
| <a href='/start'>Start Download</a><br> | |
| <a href='/status'>View Status</a> | |
| """) | |
| 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() | |