2022-10-30T13:00:47Z
import os
import json
from enum import Enum
from datetime import datetime, timedelta
from api import open_success
current_mode = '2'
current_setting_dic = {}
button_list = []
TimeButtonList = []
kind_time_list = []
time_str_list = ['男生时间', '女生时间', '休息时间']
times = 3
class RunMode:
mode_type = 2
male_time = 90
female_time = 100
rest_time = 150
def __init__(self, **kwargs):
for k, v in kwargs.items():
setattr(self, k, v)
def default_config():
t_current_setting_dic = {'current_mode': str(2),
'confirm':'0',
'first_open_time': datetime.now().strftime("%Y-%m-%d_%H_%M"),
'0': class2dict(RunMode(mode_type=0, female_time=0)),
'1': class2dict(RunMode(mode_type=1, male_time=0)),
'2': class2dict(RunMode())
}
global current_setting_dic
current_setting_dic = t_current_setting_dic
save_config()
def save_config():
resource_dir = os.path.join('resources')
if not os.path.exists(resource_dir):
os.makedirs(resource_dir)
fp = open(os.path.join('resources', 'config.json'), 'w')
fp.write(json.dumps(current_setting_dic))
fp.close()
def load_config_by_file():
fp = open(os.path.join('resources', 'config.json'), 'r')
# print(fp.read())
setting_json = json.loads(fp.read())
fp.close()
if setting_json.get('current_mode') is None:
default_config()
global current_setting_dic, current_mode
current_setting_dic = setting_json
current_mode = setting_json.get('current_mode')
def class2dict(f):
return dict((name, getattr(f, name)) for name in dir(f) if not name.startswith('__'))
def get_current_setting_dic():
return current_setting_dic
def confirm_success():
current_setting_dic['confirm'] = 'run_confirm'
save_config()
def confirm_fail():
current_setting_dic['confirm'] = '0'
save_config()
def load_config():
try:
load_config_by_file()
except:
# print('首次运行,初始化配置')
default_config()
if open_success(0) == True:
confirm_success()
else:
confirm_fail()
load_config()
class ModType(Enum):
male = 0
female = 1
male_and_female = 2
def modify_mode_fuc(new_mode):
global current_mode
current_setting_dic['current_mode'] = str(new_mode)
current_mode = current_setting_dic['current_mode']
def get_mode():
return current_mode
def get_kind_time_fuc(loop_index):
if loop_index == 0:
return current_setting_dic[current_mode]['male_time']
if loop_index == 1:
return current_setting_dic[current_mode]['female_time']
if loop_index == 2:
return current_setting_dic[current_mode]['rest_time']
def set_kind_time_fuc(loop_index, new_time):
if loop_index == 0:
current_setting_dic[current_mode]['male_time'] = new_time
if loop_index == 1:
current_setting_dic[current_mode]['female_time'] = new_time
if loop_index == 2:
current_setting_dic[current_mode]['rest_time'] = new_time
def get_format_kind_time_fuc(loop_index):
kind_time = get_kind_time_fuc(loop_index)
return f'{kind_time // 60}:{kind_time % 60}'
def get_time_list_fuc():
time_list = []
time_status_list = []
# print(current_setting_dic[current_mode])
if current_setting_dic[current_mode]['male_time']:
time_list.extend([10, current_setting_dic[current_mode]['male_time'], current_setting_dic[current_mode]['rest_time']])
time_status_list.extend(['倒计时', '男生', '休息'])
if current_setting_dic[current_mode]['female_time']:
time_list.extend([10, current_setting_dic[current_mode]['female_time'], current_setting_dic[current_mode]['rest_time']])
time_status_list.extend(['倒计时', '女生', '休息'])
return time_list, time_status_list
def get_confirm_info():
return current_setting_dic.get('confirm')
def is_confirm():
return get_confirm_info() == 'run_confirm'
def is_confirm_in_time():
first_open_time_str = current_setting_dic.get('first_open_time')
if first_open_time_str is None:
current_setting_dic['first_open_time'] = datetime.now().strftime("%Y-%m-%d_%H_%M")
save_config()
return True
first_open_time = datetime.strptime(first_open_time_str, "%Y-%m-%d_%H_%M")
return is_confirm() or datetime.now() < first_open_time + timedelta(days=7)
def is_first_open():
if not os.path.exists(os.path.join('resources', 'config.json')):
return True
load_config_by_file()
first_open_time_str = current_setting_dic.get('first_open_time')
return datetime.now() < first_open_time + timedelta(years=1)