Пример #1
0
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")
Пример #2
0
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)
Пример #3
0
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")
Пример #4
0
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":
Пример #5
0
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)