Skip to content

Instantly share code, notes, and snippets.

@Demindiro
Created June 25, 2022 19:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Demindiro/b73312cf3a6ad1b9910e583b257100aa to your computer and use it in GitHub Desktop.
Save Demindiro/b73312cf3a6ad1b9910e583b257100aa to your computer and use it in GitHub Desktop.
Simple HTTP server for extension-less images. CC0 so do whatever you want.
#!/usr/bin/env python3
from http.server import HTTPServer, BaseHTTPRequestHandler
import magic, os
class MediaHandler(BaseHTTPRequestHandler):
def do_GET(self):
if '..' in self.path:
self.send_response(403)
self.end_headers()
self.wfile.write(b'Fuck off')
elif '/media/' == self.path:
self.send_response(200)
self.send_header('Content-Type', 'text/html')
self.end_headers()
for f in os.listdir('db/media'):
self.wfile.write(('<p><a href="' + f + '">' + f + '</a></p>').encode('utf-8'))
else:
p = 'db' + self.path
try:
mime = magic.from_file(p, mime=True)
self.send_response(200)
self.send_header('Content-Type', mime)
self.end_headers()
with open(p, 'rb') as f:
while True:
data = f.read(1 << 16)
if len(data) == 0:
break
self.wfile.write(data)
except FileNotFoundError:
self.send_response(200)
self.send_header('Content-Type', magic.from_file())
self.end_headers()
self.wfile.write(b'Does not exist BAKA')
HTTPServer(('127.0.0.1', 56766), MediaHandler).serve_forever()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment