Exemple #1
0
def run(cfg):
    _show_head_line("开始核心逻辑")

    user_buy_info = get_user_buy_info(cfg)
    show_buy_info(user_buy_info)

    for idx, account_config in enumerate(cfg.account_configs):
        idx += 1
        if not account_config.is_enabled():
            logger.info(f"第{idx}个账号({account_config.name})未启用,将跳过")
            continue

        _show_head_line(f"开始处理第{idx}个账户({account_config.name})")

        start_time = datetime.datetime.now()

        djcHelper = DjcHelper(account_config, cfg.common)
        djcHelper.run(user_buy_info)

        used_time = datetime.datetime.now() - start_time
        _show_head_line(f"处理第{idx}个账户({account_config.name}) 共耗时 {used_time}")

        if cfg.common._debug_run_first_only:
            logger.warning("调试开关打开,不再处理后续账户")
            break
Exemple #2
0
def do_run(idx: int, account_config: AccountConfig, common_config: CommonConfig, user_buy_info: BuyInfo):
    _show_head_line(f"开始处理第{idx}个账户({account_config.name})")

    start_time = datetime.datetime.now()

    djcHelper = DjcHelper(account_config, common_config)
    djcHelper.run(user_buy_info)

    used_time = datetime.datetime.now() - start_time
    _show_head_line(f"处理第{idx}个账户({account_config.name}) 共耗时 {used_time}")
Exemple #3
0
def run(cfg):
    _show_head_line("开始核心逻辑")

    user_buy_info = get_user_buy_info(cfg)

    # 购买过dlc的用户可以获得两个月免费使用付费功能的时长
    if has_buy_auto_updater_dlc(cfg):
        max_present_times = datetime.timedelta(days=2 * 31)

        free_start_time = parse_time("2021-02-07 00:00:00")

        now = datetime.datetime.now()
        since_start_time = now - free_start_time
        not_paied_time = max(
            since_start_time -
            datetime.timedelta(days=user_buy_info.total_buy_month * 31),
            datetime.timedelta())

        present_times = datetime.timedelta()
        if not_paied_time < max_present_times:
            # 如果当前到2.7号的未付费时长少于两个月,则补齐差值到过期时间
            present_times = max_present_times - not_paied_time

        user_buy_info.expire_at = format_time(
            parse_time(user_buy_info.expire_at) + present_times)
        user_buy_info.buy_records.insert(
            0,
            BuyRecord().auto_update_config({
                "buy_month": 2,
                "buy_at": free_start_time
            }))
        logger.info(
            color("bold_green") +
            f"当前运行的qq中已有某个qq购买过自动更新dlc,自{free_start_time}开始将累积可免费使用付费功能两个月,目前累积未付费时长为{not_paied_time},故而补偿{present_times}"
        )

    show_buy_info(user_buy_info)

    for idx, account_config in enumerate(cfg.account_configs):
        idx += 1
        if not account_config.is_enabled():
            logger.info(f"第{idx}个账号({account_config.name})未启用,将跳过")
            continue

        _show_head_line(f"开始处理第{idx}个账户({account_config.name})")

        djcHelper = DjcHelper(account_config, cfg.common)
        djcHelper.run(user_buy_info)

        if cfg.common._debug_run_first_only:
            logger.warning("调试开关打开,不再处理后续账户")
            break
Exemple #4
0
def run(cfg):
    _show_head_line("开始核心逻辑")

    for idx, account_config in enumerate(cfg.account_configs):
        idx += 1
        if not account_config.enable:
            logger.info("第{}个账号({})未启用,将跳过".format(idx, account_config.name))
            continue

        _show_head_line("开始处理第{}个账户({})".format(idx, account_config.name))

        djcHelper = DjcHelper(account_config, cfg.common)
        djcHelper.run()

        if cfg.common._debug_run_first_only:
            logger.warning("调试开关打开,不再处理后续账户")
            break
Exemple #5
0
        djcHelper = DjcHelper(account_config, cfg.common)
        djcHelper.check_skey_expired()
        # 尝试加入固定心悦队伍
        djcHelper.try_join_fixed_xinyue_team()

    # 正式进行流程
    for idx, account_config in enumerate(cfg.account_configs):
        idx += 1
        if not account_config.enable:
            logger.info("第{}个账号({})未启用,将跳过".format(idx, account_config.name))
            continue

        logger.info("------------开始处理第{}个账户({})------------\n".format(idx, account_config.name))

        djcHelper = DjcHelper(account_config, cfg.common)
        djcHelper.run()

        if cfg.common._debug_run_first_only:
            logger.warning("调试开关打开,不再处理后续账户")
            break

    # 检查是否需要更新,放到末尾,避免在启动时因网络不能访问github而卡住-。-这个时机就算卡住也没啥大问题了
    logger.info((
        "\n"
        "++++++++++++++++++++++++++++++++++++++++\n"
        "全部账号操作已经成功完成\n"
        "现在准备访问github仓库相关页面来检查是否有新版本\n"
        "由于国内网络问题,访问可能会比较慢,请不要立即关闭,可以选择最小化或切换到其他窗口0-0\n"
        "若有新版本会自动弹窗提示~\n"
        "++++++++++++++++++++++++++++++++++++++++\n"
    ))