You've already forked QWeatherReporter
feat: update gui insert
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
6
lib/buildGUIClass.py
Normal 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
|
||||
Reference in New Issue
Block a user