Coverage for src / lstautorta / Server_RTA_Multiple_Images.py: 0%
43 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-08-10 11:56 +0000
« prev ^ index » next coverage.py v7.13.5, created at 2026-08-10 11:56 +0000
1#!/usr/bin/env python
3import argparse
4import os
5from http.server import BaseHTTPRequestHandler, HTTPServer
6from io import BytesIO
8parser = argparse.ArgumentParser()
9parser.add_argument("directory", type=str, help="directory path containing the images")
10args = parser.parse_args()
13class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
14 def do_GET(self):
15 try:
16 if self.path == "/":
17 file_paths = self.get_image_paths()
18 page_content = self.generate_html_page(file_paths)
19 self.send_response(200)
20 self.send_header("Content-type", "text/html")
21 self.send_header("Content-length", len(page_content))
22 self.end_headers()
23 self.wfile.write(page_content.encode())
24 else:
25 file_path = os.path.join(args.directory, os.path.basename(self.path))
26 if os.path.isfile(file_path):
27 image = open(file_path, "rb").read()
28 self.send_response(200)
29 self.send_header("Content-type", "image/jpeg")
30 self.send_header("Content-length", len(image))
31 self.end_headers()
32 self.wfile.write(BytesIO(image).getvalue())
33 else:
34 self.send_error(404, "File Not Found: %s" % self.path)
35 except Exception as e:
36 self.send_error(500, "Internal Server Error: %s" % str(e))
38 def get_image_paths(self):
39 image_paths = []
40 for filename in sorted(os.listdir(args.directory)):
41 if filename.lower().endswith((".jpg", ".jpeg", ".png", ".gif")):
42 image_paths.append(filename)
43 return image_paths
45 def generate_html_page(self, image_paths):
46 html = """
47 <!DOCTYPE html>
48 <html>
49 <head>
50 <title>RTA engineering GUI</title>
51 <style>
52 .image {
53 width: 1200px; /* Adjust the width as desired */
54 height: auto; /* Keeps the aspect ratio */
55 }
56 </style>
57 </head>
58 <body>
59 <h1>RTA engineering GUI</h1>
60 """
62 for image_path in image_paths:
63 html += f'<img src="/{image_path}" alt="{image_path}" class="image"><br>'
65 html += """
66 </body>
67 </html>
68 """
70 return html
73httpd = HTTPServer(("0.0.0.0", 38100), SimpleHTTPRequestHandler)
74httpd.serve_forever()