def check_update_on_start(config: CommonConfig): try: if not config.check_update_on_start and not config.auto_update_on_start: logger.warning("启动时检查更新被禁用,若需启用请在config.toml中设置") return ui = get_update_info(config) if config.check_update_on_start: try_manaual_update(ui) if config.auto_update_on_start: show_update_info_on_first_run(ui) except Exception as err: logger.error(f"检查版本更新失败,大概率是访问不了github导致的,可自行前往网盘查看是否有更新, 错误为{err}") # 如果一直连不上github,则尝试判断距离上次更新的时间是否已经很长 time_since_last_update = datetime.now() - datetime.strptime( ver_time, "%Y-%m-%d") if time_since_last_update.days >= 7: msg = f"无法访问github确认是否有新版本,而当前版本更新于{ver_time},距今已有{time_since_last_update},很可能已经有新的版本,建议打开目录中的[网盘链接]看看是否有新版本,或者购买自动更新DLC省去手动更新的操作" logger.info(color("bold_green") + msg) if is_first_run( f"notify_manual_update_if_can_not_connect_github_v{now_version}" ): win32api.MessageBox(0, msg, "更新提示", win32con.MB_ICONINFORMATION) webbrowser.open("https://fzls.lanzous.com/s/djc-helper")
def show_update_info_on_first_run(ui: UpdateInfo): if now_version == ui.latest_version and is_first_run( f"update_version_v{ui.latest_version}") and not use_by_myself(): message = ( f"新版本v{ui.latest_version}已更新完毕,并成功完成首次运行。本次具体更新内容展示如下,以供参考:\n" f"{ui.update_message}") def cb(): win32api.MessageBox(0, message, "更新", win32con.MB_OK) async_call(cb)
def check_update_on_start(config: CommonConfig): try: if is_run_in_github_action(): logger.info("当前在github action环境下运行,无需检查更新") return if not config.check_update_on_start and not config.auto_update_on_start: logger.warning("启动时检查更新被禁用,若需启用请在config.toml中设置") return ui = get_update_info(config) if config.check_update_on_start: try_manaual_update(ui) if config.auto_update_on_start: show_update_info_on_first_run(ui) except Exception as err: try: # 到这里一般是无法访问github,这时候试试gitee的方案 if config.check_update_on_start: latest_version = get_version_from_gitee() ui = UpdateInfo() ui.latest_version = latest_version ui.netdisk_link = "https://fzls.lanzous.com/s/djc-helper" ui.netdisk_passcode = "fzls" ui.update_message = "当前无法访问github,暂时无法获取更新内容,若欲知更新内容,请浏览gitee主页进行查看哦~\n\nhttps://gitee.com/fzls/djc_helper/blob/master/CHANGELOG.MD" try_manaual_update(ui) except Exception as err: logger.error( f"手动检查版本更新失败(这个跟自动更新没有任何关系),大概率是访问不了github和gitee导致的,可自行前往网盘查看是否有更新, 错误为{err}" + color("bold_green") + f"\n(无法理解上面这段话的话,就当没看见这段话,对正常功能没有任何影响)") # 如果一直连不上github,则尝试判断距离上次更新的时间是否已经很长 time_since_last_update = datetime.now() - datetime.strptime( ver_time, "%Y.%m.%d") if time_since_last_update.days >= 7: msg = f"无法访问github确认是否有新版本,而当前版本更新于{ver_time},距今已有{time_since_last_update},很可能已经有新的版本,建议打开目录中的[网盘链接]看看是否有新版本,或者购买自动更新DLC省去手动更新的操作\n\n(如果已购买自动更新DLC,就无视这句话)" logger.info(color("bold_green") + msg) if is_first_run( f"notify_manual_update_if_can_not_connect_github_v{now_version}" ): win32api.MessageBox(0, msg, "更新提示", win32con.MB_ICONINFORMATION) webbrowser.open("https://fzls.lanzous.com/s/djc-helper")
import time import os from shelters import * if __name__ == "__main__": logger = logging.getLogger('adoptions') logger.setLevel(logging.DEBUG) handler = logging.FileHandler( "%s.log" % os.path.splitext(os.path.abspath(__file__))[0]) formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s') handler.setFormatter(formatter) logger.addHandler(handler) is_first_run = util.is_first_run() logger.debug("is first run: %s" % is_first_run) prec_values = util.get_prec_values() new_dict = {} for shelter, previous_value in prec_values.items(): try: url = util.get_shelter_url(shelter) if shelter == "animadoption": present_value = check_animadoption(url) elif shelter == "aubergezen": present_value = check_aubergezen(url) elif shelter == "bergerblanclaval" or shelter == "bergerblancmontreal":
def show_update_info_on_first_run(ui: UpdateInfo): if now_version == ui.latest_version and is_first_run( "update_version_v{}".format(ui.latest_version)): message = ("新版本v{}已更新完毕,并成功完成首次运行。本次具体更新内容展示如下,以供参考:\n" "{}").format(ui.latest_version, ui.update_message) win32api.MessageBox(0, message, "更新", win32con.MB_OK)