feat: update gui insert

This commit is contained in:
RTAkland
2022-01-14 18:22:06 +08:00
parent b41be502f2
commit f6f97a0785
5 changed files with 65 additions and 1 deletions

View File

@@ -6,6 +6,7 @@
# @File Name: qweather.py
import os
import sys
import time
import argparse
@@ -16,10 +17,16 @@ from core.settings import change_settings
from core.read_config import read_config
from core.sendmail import Mail
from lib.webservice import accept_requests
from lib.buildGUIClass import InsertLog
language = Language()
settings = read_config()
processes = ProcessPoolExecutor(max_workers=3)
gui_log = InsertLog()
def get_pid():
return os.getpid()
def check_time():
@@ -38,7 +45,10 @@ def check_time():
if local_time in time_list:
Mail().dev_version()
Logger.info(f'{language["mail_succeed"]}')
gui_log.insert(f'{language["wait_seconds"]}')
Logger.info(f'{language["wait_seconds"]}')
gui_log.insert(f'{language["mail_succeed"]}')
time.sleep(60)
case 'free':
while True:
@@ -47,7 +57,9 @@ def check_time():
if local_time in time_list:
Mail().free_version()
Logger.info(f'{language["mail_succeed"]}')
gui_log.insert(f'{language["wait_seconds"]}')
Logger.info(f'{language["wait_seconds"]}')
gui_log.insert(f'{language["mail_succeed"]}')
time.sleep(60)
@@ -89,9 +101,13 @@ def main():
"""
Logger.info(f'{language["statement_1"]}')
gui_log.insert(f'{language["statement_1"]}')
Logger.info(f'{language["statement_2"]}')
gui_log.insert(f'{language["statement_2"]}')
Logger.info(f'{language["statement_3"]}')
gui_log.insert(f'{language["statement_3"]}')
Logger.info(f'{language["statement_4"]}')
gui_log.insert(f'{language["statement_4"]}')
parser = argparse.ArgumentParser()
arg_keywords = ['free', 'dev', 'warning', 'setting']
@@ -105,18 +121,22 @@ def main():
case 'free':
Mail().free_version()
Logger.debug(f'{language["debug_done"]}')
gui_log.insert(f'{language["debug_done"]}')
sys.exit(0)
case 'dev':
Mail().dev_version()
Logger.debug(f'{language["debug_done"]}')
gui_log.insert(f'{language["debug_done"]}')
sys.exit(0)
case 'warning':
Mail().warning_()
Logger.debug(f'{language["debug_done"]}')
gui_log.insert(f'{language["debug_done"]}')
sys.exit(0)
case 'setting':
change_settings()
Logger.debug(f'{language["debug_done"]}')
gui_log.insert(f'{language["debug_done"]}')
case _:
if check_config():
setting()
@@ -126,7 +146,8 @@ def main():
processes.submit(check_time)
if settings[2]['webservice']:
Logger.info(f'{language["webservice_ip"]}:127.0.0.1:7898')
processes.submit(accept_requests())
gui_log.insert(f'{language["webservice_ip"]}:127.0.0.1:7898')
processes.submit(accept_requests)
time_count = 0
while True:

View File

@@ -8,6 +8,9 @@
import pandas
from core.logger import Logger
from core.language import Language
from lib.buildGUIClass import InsertLog
gui_log = InsertLog()
def read_excel(kw: str):
@@ -21,12 +24,14 @@ def read_excel(kw: str):
index_count = 0
city_list = []
Logger.info(f'[Search]{language["reading_the_file"]}')
gui_log.insert(f'[Search]{language["reading_the_file"]}')
df = pandas.read_excel(f'./res/china_city_list.xlsx')
pandas.set_option('max_rows', None) # 读取xlsx文件不折叠
data_records = df.to_dict(orient='split')
for i in data_records['data']:
if kw in str(i):
Logger.info(f' {index_count} | {i[2]}-{i[4]}-{i[6]}')
gui_log.insert(f' {index_count} | {i[2]}-{i[4]}-{i[6]}')
city = [index_count, i[0], i[1], i[2], i[3], i[4], i[5], i[6], i[7], i[8], i[9]]
index_count += 1
city_list.append(city)

View File

@@ -17,6 +17,9 @@ from core.language import Language
from core.information import WeatherInfo
from core.read_config import read_config
from lib.hitokoto import hitokoto
from lib.buildGUIClass import InsertLog
gui_log = InsertLog()
class Mail:
@@ -209,8 +212,10 @@ class Mail:
self.smtp.login(self.sender, self.password) # 登录
self.smtp.sendmail(self.sender, self.receiver, self.message.as_string()) # 发送
Logger.info(f'{self.language["mail_succeed"]}')
gui_log.insert(f'{self.language["mail_succeed"]}')
except smtplib.SMTPException as e: # 处理错误
Logger.critical(f'{self.language["mail_error"]}: {e}')
gui_log.insert(f'{self.language["mail_error"]}: {e}')
sys.exit(1)
def free_version(self):
@@ -356,8 +361,10 @@ class Mail:
self.smtp.login(self.sender, self.password) # 登录
self.smtp.sendmail(self.sender, self.receiver, self.message.as_string()) # 发送
Logger.info(f'{self.language["mail_succeed"]}')
Logger.info(f'{self.language["mail_succeed"]}')
except smtplib.SMTPException as e: # 处理错误
Logger.critical(f'{self.language["mail_error"]}: {e}')
gui_log.insert(f'{self.language["mail_error"]}: {e}')
sys.exit(1)
def warning_(self):
@@ -379,11 +386,14 @@ class Mail:
case 'update':
status = '预警更新'
Logger.info(f'{self.language["new_warning"]}')
gui_log.insert(f'{self.language["new_warning"]}')
case 'active':
status = '已有灾害'
Logger.info(f'{self.language["warning_updated"]}')
gui_log.insert(f'{self.language["warning_updated"]}')
case 'cancel':
Logger.info(f'{self.language["warning_canceled"]}')
gui_log.insert(f'{self.language["warning_canceled"]}')
mail_html = f"""
<!DOCTYPE html>
@@ -434,6 +444,8 @@ class Mail:
self.smtp.login(self.sender, self.password) # 登录
self.smtp.sendmail(self.sender, self.receiver, self.message.as_string()) # 发送
Logger.info(f'{self.language["mail_succeed"]}')
gui_log.insert(f'{self.language["mail_succeed"]}')
except smtplib.SMTPException as e: # 处理错误
Logger.critical(f'{self.language["mail_error"]}: {e}')
gui_log.insert(f'{self.language["mail_error"]}: {e}')
sys.exit(1)

View File

@@ -11,7 +11,13 @@ import getpass
from core.logger import Logger
from core.language import Language
from core.read_excel import read_excel
from core.read_config import read_config
from ruamel.yaml import YAML
from lib.buildGUIClass import InsertLog
from lib.buildGUIClass import var_command
gui_log = InsertLog()
gui = read_config()[2]['enable-GUI']
def change_settings():
@@ -22,8 +28,11 @@ def change_settings():
language = Language()
Logger.info(f'[Modify]{language["change_setting"]}')
gui_log.insert(f'[Modify]{language["change_setting"]}')
Logger.info(f'[Modify]{language["fill_the_config"]}')
gui_log.insert(f'[Modify]{language["fill_the_config"]}')
Logger.info(f'[Modify]{language["input_a_city_name"]}')
gui_log.insert(f'[Modify]{language["input_a_city_name"]}')
while True:
time.sleep(0.3)
city_name = input('-->')
@@ -38,17 +47,24 @@ def change_settings():
break
searched_city = read_excel(city_name)
Logger.info(f'[Modify]{language["user_input"]}:[{city_name}]')
gui_log.insert(f'[Modify]{language["user_input"]}:[{city_name}]')
Logger.info(f'[Modify]{language["select_a_index"]}')
gui_log.insert(f'[Modify]{language["select_a_index"]}')
if not searched_city:
Logger.error(f'[Modify]{language["no_result"]}')
gui_log.insert(f'[Modify]{language["no_result"]}')
sys.exit(1)
time.sleep(0.3)
while True:
try:
time.sleep(0.3)
# if not gui:
user_input = input('-->')
# else:
# user_input = var_command.get()
if user_input == 'q':
Logger.info(f'[Exit]{language["exit"]}')
gui_log.insert(f'[Exit]{language["exit"]}')
sys.exit(1)
index = searched_city[int(user_input)]
with open('./config.yml', 'r', encoding='utf-8') as of:
@@ -60,11 +76,15 @@ def change_settings():
with open('./config.yml', 'w', encoding='utf-8') as wf:
YAML().dump(data, wf)
Logger.info(f'[Write]{language["write_successfully"]}:config.yml')
gui_log.insert(f'[Write]{language["write_successfully"]}:config.yml')
break
except (IndexError, ValueError) as e:
Logger.info(e)
gui_log.insert(e)
Logger.error(f'[Write]{language["input_type_error"]}')
gui_log.insert(f'[Write]{language["input_type_error"]}')
continue
finally:
Logger.info(f'[Exit]{language["exit"]}')
gui_log.insert(f'[Exit]{language["exit"]}')
sys.exit(0)

6
lib/buildGUIClass.py Normal file
View File

@@ -0,0 +1,6 @@
#!/usr/bin/env python3
# -- coding:utf-8 --
# @Author: markushammered@gmail.com
# @Development Tool: PyCharm
# @Create Time: 2022/1/9
# @File Name: GUI.py