From b97e52f7a12ad3bc2c0732a114432fa8a03437bf Mon Sep 17 00:00:00 2001 From: RTAkland Date: Thu, 16 Dec 2021 22:22:45 +0800 Subject: [PATCH] feat: start --- core/qweather.py | 86 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 83 insertions(+), 3 deletions(-) diff --git a/core/qweather.py b/core/qweather.py index 8d94c6b..2172d45 100644 --- a/core/qweather.py +++ b/core/qweather.py @@ -5,10 +5,90 @@ # @Create Time: 2021/12/15 # @File Name: qweather.py + +import sys +import time +import argparse from core.logger import Logger from core.language import Language -from core import settings -from core import read_excel +from core.settings import change_settings from core import read_config -from core import information +from core.sendmail import Mail +from multiprocessing import Process + +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 + + Process(target=check_time).run() + + 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() + + Logger.info(f'{language["statement_1"]}') + Logger.info(f'{language["statement_2"]}') + Logger.info(f'{language["statement_3"]}') + Logger.info(f'{language["statement_4"]}')