diff --git a/core/qweather.py b/core/qweather.py index cbcd510..d6ccaf5 100644 --- a/core/qweather.py +++ b/core/qweather.py @@ -106,17 +106,18 @@ def main(): Logger.debug(f'{language["debug_done"]}') sys.exit(0) case 'setting': + change_settings() + Logger.debug(f'{language["debug_done"]}') + case _: if check_config(): setting() else: change_settings() - Logger.debug(f'{language["debug_done"]}') - case _: - pass + processes.submit(check_time) if settings[2]['webservice']: + Logger.info(f'{language["webservice_ip"]}:{get_host_ip()}:7898') processes.submit(webservice.process_request()) - Logger.info(f'{language["webservice_ip"]}:{get_host_ip()}:7898') time_count = 0 while True: diff --git a/lib/webservice.py b/lib/webservice.py index 77ed574..df5688d 100644 --- a/lib/webservice.py +++ b/lib/webservice.py @@ -11,14 +11,21 @@ import sys from core.logger import Logger from core.read_config import read_config from core.information import WeatherInfo +from core.language import Language 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.bind(('localhost', 7898)) server.listen(5) +language = Language() + def build_html(): + """ + 构建html主体 + :return: + """ settings = read_config() city = settings[3]['city-name'] mode = settings[1]['mode'] @@ -289,16 +296,20 @@ def build_html(): def process_request(): + """ + 处理请求 + :return: + """ try: while True: c, a = server.accept() data = str(c.recv(1024)).split(':')[0][6:][:-17] html = build_html() - if data == '/': + if data == '/': # 判断用户请求的目标是否为根目录, 如果是则返回html; 如果不是则继续判断 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: + else: # 继续判断用户请求的文件是否存在 try: with open(f'.{data}', 'rb') as f: c.send('HTTP1.1/ 200 OK\r\n\r\n'.encode('utf-8')) @@ -308,8 +319,8 @@ def process_request(): c.send(f'HTTP1.1/ 404 Not Found\r\n\r\n{html}'.encode('utf-8')) c.close() except BrokenPipeError: - Logger.critical('Link speed was too fast! Subprocess:webserver exited') + Logger.critical(f'{language["connection_speed_too_fast"]}') sys.exit(1) except IOError: - Logger.critical('An IO Error') + Logger.critical(f'{language["an_io_error"]}') sys.exit(1)