feat: fixed a bug

This commit is contained in:
RTAkland
2021-12-21 21:36:29 +08:00
parent df1d5a13b4
commit 1b96caf719
2 changed files with 21 additions and 9 deletions

View File

@@ -106,17 +106,18 @@ def main():
Logger.debug(f'{language["debug_done"]}') Logger.debug(f'{language["debug_done"]}')
sys.exit(0) sys.exit(0)
case 'setting': case 'setting':
change_settings()
Logger.debug(f'{language["debug_done"]}')
case _:
if check_config(): if check_config():
setting() setting()
else: else:
change_settings() change_settings()
Logger.debug(f'{language["debug_done"]}')
case _:
pass
processes.submit(check_time) processes.submit(check_time)
if settings[2]['webservice']: if settings[2]['webservice']:
Logger.info(f'{language["webservice_ip"]}:{get_host_ip()}:7898')
processes.submit(webservice.process_request()) processes.submit(webservice.process_request())
Logger.info(f'{language["webservice_ip"]}:{get_host_ip()}:7898')
time_count = 0 time_count = 0
while True: while True:

View File

@@ -11,14 +11,21 @@ import sys
from core.logger import Logger from core.logger import Logger
from core.read_config import read_config from core.read_config import read_config
from core.information import WeatherInfo from core.information import WeatherInfo
from core.language import Language
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server.bind(('127.0.0.1', 7898)) server.bind(('localhost', 7898))
server.listen(5) server.listen(5)
language = Language()
def build_html(): def build_html():
"""
构建html主体
:return:
"""
settings = read_config() settings = read_config()
city = settings[3]['city-name'] city = settings[3]['city-name']
mode = settings[1]['mode'] mode = settings[1]['mode']
@@ -289,16 +296,20 @@ def build_html():
def process_request(): def process_request():
"""
处理请求
:return:
"""
try: try:
while True: while True:
c, a = server.accept() c, a = server.accept()
data = str(c.recv(1024)).split(':')[0][6:][:-17] data = str(c.recv(1024)).split(':')[0][6:][:-17]
html = build_html() html = build_html()
if data == '/': if data == '/': # 判断用户请求的目标是否为根目录, 如果是则返回html; 如果不是则继续判断
c.send('HTTP1.1/ 200 OK\r\n\r\n'.encode('utf-8')) c.send('HTTP1.1/ 200 OK\r\n\r\n'.encode('utf-8'))
c.send(html.encode('utf-8')) c.send(html.encode('utf-8'))
Logger.info(f'{a}: Get {data} --by browser') Logger.info(f'{a}: Get {data} --by browser')
else: else: # 继续判断用户请求的文件是否存在
try: try:
with open(f'.{data}', 'rb') as f: with open(f'.{data}', 'rb') as f:
c.send('HTTP1.1/ 200 OK\r\n\r\n'.encode('utf-8')) 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.send(f'HTTP1.1/ 404 Not Found\r\n\r\n{html}'.encode('utf-8'))
c.close() c.close()
except BrokenPipeError: except BrokenPipeError:
Logger.critical('Link speed was too fast! Subprocess:webserver exited') Logger.critical(f'{language["connection_speed_too_fast"]}')
sys.exit(1) sys.exit(1)
except IOError: except IOError:
Logger.critical('An IO Error') Logger.critical(f'{language["an_io_error"]}')
sys.exit(1) sys.exit(1)