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

1#!/usr/bin/env python 

2 

3import argparse 

4import os 

5from http.server import BaseHTTPRequestHandler, HTTPServer 

6from io import BytesIO 

7 

8parser = argparse.ArgumentParser() 

9parser.add_argument("directory", type=str, help="directory path containing the images") 

10args = parser.parse_args() 

11 

12 

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

37 

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 

44 

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 """ 

61 

62 for image_path in image_paths: 

63 html += f'<img src="/{image_path}" alt="{image_path}" class="image"><br>' 

64 

65 html += """ 

66 </body> 

67 </html> 

68 """ 

69 

70 return html 

71 

72 

73httpd = HTTPServer(("0.0.0.0", 38100), SimpleHTTPRequestHandler) 

74httpd.serve_forever()