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"]}')
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']:
processes.submit(webservice.process_request())
Logger.info(f'{language["webservice_ip"]}:{get_host_ip()}:7898')
processes.submit(webservice.process_request())
time_count = 0
while True:

View File

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