2021-12-15 21:21:39 +08:00
|
|
|
#!/usr/bin/env python3
|
|
|
|
|
# -- coding:utf-8 --
|
|
|
|
|
# @Author: markushammered@gmail.com
|
|
|
|
|
# @Development Tool: PyCharm
|
|
|
|
|
# @Create Time: 2021/12/15
|
2021-12-15 22:08:57 +08:00
|
|
|
# @File Name: qweather.py
|
|
|
|
|
|
2021-12-16 22:22:45 +08:00
|
|
|
|
|
|
|
|
import sys
|
|
|
|
|
import time
|
|
|
|
|
import argparse
|
2021-12-18 21:40:48 +08:00
|
|
|
from concurrent.futures import ProcessPoolExecutor
|
2021-12-15 22:08:57 +08:00
|
|
|
from core.logger import Logger
|
|
|
|
|
from core.language import Language
|
2021-12-16 22:22:45 +08:00
|
|
|
from core.settings import change_settings
|
2021-12-18 21:40:48 +08:00
|
|
|
from tests import webserver
|
2021-12-15 22:08:57 +08:00
|
|
|
from core import read_config
|
2021-12-16 22:22:45 +08:00
|
|
|
from core.sendmail import Mail
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def check_time():
|
|
|
|
|
"""
|
|
|
|
|
if the local time is the time in config, send a mail
|
|
|
|
|
:return:
|
|
|
|
|
"""
|
|
|
|
|
mode = settings[1]['mode']
|
|
|
|
|
time_list = settings[2]['send-times']
|
|
|
|
|
match mode:
|
|
|
|
|
case 'dev':
|
|
|
|
|
while True:
|
|
|
|
|
local_time = time.strftime("%H:%M", time.localtime())
|
|
|
|
|
time.sleep(1)
|
|
|
|
|
if local_time in time_list:
|
|
|
|
|
Mail().dev_version()
|
|
|
|
|
Logger.info(f'{language["mail_succeed"]}')
|
|
|
|
|
Logger.info(f'{language["wait_seconds"]}')
|
|
|
|
|
time.sleep(60)
|
|
|
|
|
case 'free':
|
|
|
|
|
while True:
|
|
|
|
|
local_time = time.strftime("%H:%M", time.localtime())
|
|
|
|
|
time.sleep(1)
|
|
|
|
|
if local_time in time_list:
|
|
|
|
|
Mail().free_version()
|
|
|
|
|
Logger.info(f'{language["mail_succeed"]}')
|
|
|
|
|
Logger.info(f'{language["wait_seconds"]}')
|
|
|
|
|
time.sleep(60)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def main():
|
|
|
|
|
parser = argparse.ArgumentParser()
|
|
|
|
|
arg_keywords = ['free', 'dev', 'warning', 'setting']
|
|
|
|
|
parser.add_argument('-t',
|
|
|
|
|
'--test',
|
|
|
|
|
help='Some operations for test.',
|
|
|
|
|
choices=arg_keywords)
|
|
|
|
|
startup_arg = parser.parse_args().test
|
|
|
|
|
|
|
|
|
|
match startup_arg:
|
|
|
|
|
case 'free':
|
|
|
|
|
Mail().free_version()
|
|
|
|
|
Logger.debug(f'{language["debug_done"]}')
|
|
|
|
|
sys.exit(0)
|
|
|
|
|
case 'dev':
|
|
|
|
|
Mail().dev_version()
|
|
|
|
|
Logger.debug(f'{language["debug_done"]}')
|
|
|
|
|
sys.exit(0)
|
|
|
|
|
case 'warning':
|
|
|
|
|
Mail().warning_()
|
|
|
|
|
Logger.debug(f'{language["debug_done"]}')
|
|
|
|
|
sys.exit(0)
|
|
|
|
|
case 'setting':
|
|
|
|
|
change_settings(False)
|
|
|
|
|
Logger.debug(f'{language["debug_done"]}')
|
|
|
|
|
case _:
|
|
|
|
|
pass
|
2021-12-18 21:40:48 +08:00
|
|
|
processes.submit(check_time)
|
|
|
|
|
if settings[2]['webserver']:
|
|
|
|
|
processes.submit(webserver.process_request())
|
2021-12-16 22:22:45 +08:00
|
|
|
|
|
|
|
|
time_count = 0
|
|
|
|
|
while True:
|
|
|
|
|
time_count += 1
|
|
|
|
|
time.sleep(1)
|
|
|
|
|
if time_count == 600:
|
|
|
|
|
Mail().warning_()
|
|
|
|
|
time_count = 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ != '__main__':
|
|
|
|
|
language = Language()
|
|
|
|
|
settings = read_config()
|
2021-12-18 21:40:48 +08:00
|
|
|
processes = ProcessPoolExecutor(max_workers=3)
|
2021-12-15 22:08:57 +08:00
|
|
|
|
2021-12-16 22:22:45 +08:00
|
|
|
Logger.info(f'{language["statement_1"]}')
|
|
|
|
|
Logger.info(f'{language["statement_2"]}')
|
|
|
|
|
Logger.info(f'{language["statement_3"]}')
|
|
|
|
|
Logger.info(f'{language["statement_4"]}')
|