ModernOSWeather/src/server.py

29 lines
961 B
Python
Raw Normal View History

2024-09-09 11:14:32 +03:00
from datetime import datetime
2024-09-09 10:01:44 +03:00
from http.server import BaseHTTPRequestHandler, HTTPServer
2024-09-09 11:23:33 +03:00
import os
from weather import weather_handler
2024-09-09 10:46:04 +03:00
2024-09-09 10:01:44 +03:00
2024-09-23 12:17:02 +03:00
def weather_run(server_class=HTTPServer, handler_class=BaseHTTPRequestHandler):
2024-09-09 11:23:33 +03:00
server_address = ("", int(os.getenv("PORT", "8000")))
2024-09-09 10:01:44 +03:00
httpd = server_class(server_address, WeatherHandler)
httpd.serve_forever()
2024-09-09 10:46:04 +03:00
2024-09-09 10:01:44 +03:00
class WeatherHandler(BaseHTTPRequestHandler):
def do_GET(self):
2024-09-09 11:14:32 +03:00
return self.data_output()
def data_output(self):
date = datetime.today().strftime("%Y-%m-%d %H")
raw_data = weather_handler(date)
2024-09-09 10:46:04 +03:00
return self.render(200, raw_data)
def render(self, response_code: int, response_body: dict | None = None):
self.send_response(response_code)
if response_body is not None:
self.send_header("Content-type", "application/json")
self.end_headers()
if response_body is not None:
self.wfile.write(response_body)