diff --git a/res/basic-resources/sunrise.png b/res/basic-resources/sunrise.png index 5cbe9f7..12f419a 100644 Binary files a/res/basic-resources/sunrise.png and b/res/basic-resources/sunrise.png differ diff --git a/res/basic-resources/sunset.png b/res/basic-resources/sunset.png index 2e8a73d..874f204 100644 Binary files a/res/basic-resources/sunset.png and b/res/basic-resources/sunset.png differ diff --git a/test.py b/test.py new file mode 100644 index 0000000..292bd1a --- /dev/null +++ b/test.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python3 +# -- coding:utf-8 -- +# @Author: markushammered@gmail.com +# @Development Tool: PyCharm +# @Create Time: 2021/12/18 +# @File Name: test.py \ No newline at end of file diff --git a/tests/webserver.py b/tests/webserver.py new file mode 100644 index 0000000..00c0420 --- /dev/null +++ b/tests/webserver.py @@ -0,0 +1,301 @@ +#!/usr/bin/env python3 +# -- coding:utf-8 -- +# @Author: markushammered@gmail.com +# @Development Tool: PyCharm +# @Create Time: 2021/12/18 +# @File Name: web_weather.py + +import socket +from core.logger import Logger +from core.read_config import read_config +from core.information import WeatherInfo + +server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) +server.bind(('127.0.0.1', 7898)) +server.listen(5) + + +def build_html(): + settings = read_config() + city = settings[3]['city-name'] + mode = settings[1]['mode'] + match mode: + case 'dev': + dev_weather = WeatherInfo().dev_version() + dates = dev_weather[0] + day_weathers = dev_weather[1] + night_weathers = dev_weather[2] + highest_temps = dev_weather[3] + lowest_temps = dev_weather[4] + icons = dev_weather[5] + sunset = dev_weather[6] + sunrise = dev_weather[7] + humidity = dev_weather[8] + wind_speed = dev_weather[9] + wind_scale = dev_weather[10] + wind_dir = dev_weather[11] + uv_index = dev_weather[12] + cloud = dev_weather[13] + pressure = dev_weather[14] + vis = dev_weather[15] + + html = f""" + + + + + Title + +

地区:{city}

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| 日期  | 天气  | 最低温度  | 最高温度  
今天{day_weathers[0]}/{night_weathers[0]} + {lowest_temps[0]}℃{highest_temps[0]}℃
{dates[1]}{day_weathers[1]}/{night_weathers[1]} + {lowest_temps[1]}℃{highest_temps[1]}℃
{dates[2]}{day_weathers[2]}/{night_weathers[2]} + {lowest_temps[2]}℃{highest_temps[2]}℃
{dates[3]}{day_weathers[3]}/{night_weathers[3]} + {lowest_temps[3]}℃{highest_temps[3]}℃
{dates[4]}{day_weathers[4]}/{night_weathers[4]} + {lowest_temps[4]}℃{highest_temps[4]}℃
{dates[5]}{day_weathers[5]}/{night_weathers[5]} + {lowest_temps[5]}℃{highest_temps[5]}℃
{dates[6]}{day_weathers[6]}/{night_weathers[6]} + {lowest_temps[6]}℃{highest_temps[6]}℃
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
 
风速/风级/风向相对湿度紫外线
{wind_speed}m/s  {wind_scale}  {wind_dir} {humidity}% {uv_index} 
 
能见度大气压强相对云量
{vis}km {pressure}hPa {cloud}% 
+ + + + + + + + + + + + + + +
 
Sunrise Sunset
 {sunrise} --------------- {sunset} 
+
+
+
+
+ + + QWeather +  ·  + Github Repo + + +
""" + return html + case 'free': + dev_weather = WeatherInfo().free_version() + dates = dev_weather[0] + day_weathers = dev_weather[1] + night_weathers = dev_weather[2] + highest_temps = dev_weather[3] + lowest_temps = dev_weather[4] + icons = dev_weather[5] + sunset = dev_weather[6] + sunrise = dev_weather[7] + humidity = dev_weather[8] + wind_speed = dev_weather[9] + wind_scale = dev_weather[10] + wind_dir = dev_weather[11] + uv_index = dev_weather[12] + cloud = dev_weather[13] + pressure = dev_weather[14] + vis = dev_weather[15] + + html = f""" + + + + + Title + +

地区:{city}

+
+ + + + + + + + + + + + + + + + + + + + + + +
| 日期  | 天气  | 最低温度  | 最高温度  
今天{day_weathers[0]}/{night_weathers[0]} + {lowest_temps[0]}℃{highest_temps[0]}℃
{dates[1]}{day_weathers[1]}/{night_weathers[1]} + {lowest_temps[1]}℃{highest_temps[1]}℃
{dates[2]}{day_weathers[2]}/{night_weathers[2]} + {lowest_temps[2]}℃{highest_temps[2]}℃
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
 
风速/风级/风向相对湿度紫外线
{wind_speed}m/s  {wind_scale}  {wind_dir} {humidity}% {uv_index} 
 
能见度大气压强相对云量
{vis}km {pressure}hPa {cloud}% 
+ + + + + + + + + + + + + + +
 
Sunrise Sunset
 {sunrise} --------------- {sunset} 
+
+
+
+
+ + + QWeather +  ·  + Github Repo + + +
""" + return html + case _: + return "You hadn't selected a mode" + + +def process_request(): + while True: + c, a = server.accept() + data = str(c.recv(1024)).split(':')[0][6:][:-17] + html = build_html() + if data == '/': + c.send('HTTP1.1/ 200 OK\r\n\r\n'.encode('utf-8')) + c.send(html.encode('utf-8')) + Logger.info(f'{a}: Get {data} --by browser') + else: + print(data) + try: + with open(f'.{data}', 'rb') as f: + c.send('HTTP1.1/ 200 OK\r\n\r\n'.encode('utf-8')) + c.send(f.read()) + Logger.info(f'{a}: Get {data} --by browser') + except FileNotFoundError: + c.send(f'HTTP1.1/ 404 Not Found\r\n\r\n{html}'.encode('utf-8')) + c.close()