diff --git a/common/check.py b/common/check.py index 75612bc..44af418 100644 --- a/common/check.py +++ b/common/check.py @@ -16,18 +16,18 @@ async def check_github_api_rate_limit(headers, session): reset_time = rate_limit.get('reset', 0) reset_time_formatted = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(reset_time)) - log.info(f'🔄 剩余请求次数: {remaining_requests}') + log.info(f'剩余请求次数: {remaining_requests}') if remaining_requests == 0: - log.warning(f'⚠ GitHub API 请求数已用尽, 将在 {reset_time_formatted} 重置,建议生成一个填在配置文件里') + log.warning(f'GitHub API 请求数已用尽, 将在 {reset_time_formatted} 重置,建议生成一个填在配置文件里') else: - log.error('⚠ Github请求数检查失败, 网络错误') + log.error('Github请求数检查失败, 网络错误') except KeyboardInterrupt: - log.info("\n👋 程序已退出") + log.info("程序已退出") except ClientError as e: - log.error(f'⚠ 检查Github API 请求数失败,{stack_error(e)}') + log.error(f'检查Github API 请求数失败,{stack_error(e)}') except ConnectionTimeoutError as e: - log.error(f'⚠ 检查Github API 请求数超时: {stack_error(e)}') + log.error(f'检查Github API 请求数超时: {stack_error(e)}') except Exception as e: - log.error(f'⚠ 发生错误: {stack_error(e)}') + log.error(f'发生错误: {stack_error(e)}') diff --git a/common/checkcn.py b/common/checkcn.py index 546fbe8..8feab52 100644 --- a/common/checkcn.py +++ b/common/checkcn.py @@ -10,7 +10,7 @@ def checkcn(): body = req.json() scn = bool(body['flag']) if not scn: - log.info(f"❌ 您在非中国大陆地区({body['country']})上使用了项目, 已自动切换回Github官方下载CDN") + log.info(f"您在非中国大陆地区({body['country']})上使用了项目, 已自动切换回Github官方下载CDN") os.environ['IS_CN'] = 'no' return False else: @@ -18,9 +18,9 @@ def checkcn(): return True except KeyboardInterrupt: - log.info("\n👋 程序已退出") + log.info("程序已退出") except requests.RequestException as e: os.environ['IS_CN'] = 'yes' - log.warning('❗ 检查服务器位置失败,已忽略,自动认为你在中国大陆') + log.warning('检查服务器位置失败,已忽略,自动认为你在中国大陆') log.warning(stack_error(e)) return False diff --git a/common/config.py b/common/config.py index 67b38b5..b7c0436 100644 --- a/common/config.py +++ b/common/config.py @@ -20,9 +20,9 @@ async def gen_config_file(): log.info('🖱️ 程序可能为第一次启动或配置重置,请填写配置文件后重新启动程序') except KeyboardInterrupt: - log.info("\n👋 程序已退出") + log.info("程序已退出") except Exception as e: - log.error(f'❌ 配置文件生成失败,{stack_error(e)}') + log.error(f'配置文件生成失败,{stack_error(e)}') async def load_config(): if not os.path.exists('./config.json'): @@ -35,7 +35,7 @@ async def load_config(): config = json.loads(await f.read()) return config except KeyboardInterrupt: - log.info("\n👋 程序已退出") + log.info("程序已退出") except Exception as e: log.error(f"配置文件加载失败,原因: {stack_error(e)},重置配置文件中...") os.remove("./config.json") diff --git a/common/dkey_merge.py b/common/dkey_merge.py index eddc8c1..e3ed544 100644 --- a/common/dkey_merge.py +++ b/common/dkey_merge.py @@ -9,7 +9,7 @@ lock = asyncio.Lock() async def depotkey_merge(config_path: Path, depots_config: dict) -> bool: if not config_path.exists(): async with lock: - log.error('👋 Steam默认配置不存在, 可能是没有登录账号') + log.error('Steam默认配置不存在, 可能是没有登录账号') return False try: @@ -21,7 +21,7 @@ async def depotkey_merge(config_path: Path, depots_config: dict) -> bool: config.get('InstallConfigStore', {}).get('Software', {}).get('valve') if steam is None: - log.error('⚠ 找不到Steam配置, 请检查配置文件') + log.error('找不到Steam配置, 请检查配置文件') return False depots = steam.setdefault('depots', {}) @@ -31,12 +31,12 @@ async def depotkey_merge(config_path: Path, depots_config: dict) -> bool: new_context = vdf.dumps(config, pretty=True) await f.write(new_context) - log.info('✅ 成功合并') + log.info('成功合并') return True except KeyboardInterrupt: - log.info("\n👋 程序已退出") + log.info("程序已退出") except Exception as e: async with lock: - log.error(f'❌ 合并失败, 原因: {e}') + log.error(f'合并失败, 原因: {e}') return False diff --git a/common/get_manifest_info.py b/common/get_manifest_info.py index 7708f85..5baa5af 100644 --- a/common/get_manifest_info.py +++ b/common/get_manifest_info.py @@ -17,18 +17,18 @@ async def get_manifest(sha: str, path: str, steam_path: Path, repo: str, session if path.endswith('.manifest'): save_path = depot_cache_path / path if save_path.exists(): - log.warning(f'👋 已存在清单: {save_path}') + log.warning(f'已存在清单: {save_path}') return collected_depots content = await get(sha, path, repo, session) - log.info(f'🔄 清单下载成功: {path}') + log.info(f'清单下载成功: {path}') async with aiofiles.open(save_path, 'wb') as f: await f.write(content) elif path == 'Key.vdf': content = await get(sha, path, repo, session) - log.info(f'🔄 密钥下载成功: {path}') + log.info(f'密钥下载成功: {path}') depots_config = vdf.loads(content.decode('utf-8')) collected_depots = [ @@ -37,9 +37,9 @@ async def get_manifest(sha: str, path: str, steam_path: Path, repo: str, session ] except KeyboardInterrupt: - log.info("\n👋 程序已退出") + log.info("程序已退出") except Exception as e: - log.error(f'❌ 处理失败: {path} - {stack_error(e)}') + log.error(f'处理失败: {path} - {stack_error(e)}') raise return collected_depots diff --git a/common/get_steam_path.py b/common/get_steam_path.py index 9271421..82dc101 100644 --- a/common/get_steam_path.py +++ b/common/get_steam_path.py @@ -13,9 +13,9 @@ def get_steam_path() -> Path: custom_steam_path = config.get("Custom_Steam_Path", "").strip() return Path(custom_steam_path) if custom_steam_path else steam_path except KeyboardInterrupt: - log.info("👋 程序已退出") + log.info("程序已退出") except Exception as e: - log.error(f'❌ Steam路径获取失败, {stack_error(e)}, 请检查是否正确安装Steam') + log.error(f'Steam路径获取失败, {stack_error(e)}, 请检查是否正确安装Steam') os.system('pause') return Path() diff --git a/common/gl_unlock.py b/common/gl_unlock.py index 43d0362..8dd7fab 100644 --- a/common/gl_unlock.py +++ b/common/gl_unlock.py @@ -28,5 +28,5 @@ async def greenluma_add(depot_id_list: list) -> bool: return True except Exception as e: - print(f'❌ 处理时出错: {e}') + print(f'处理时出错: {e}') return False diff --git a/common/main_func.py b/common/main_func.py index fa6dba4..f98d411 100644 --- a/common/main_func.py +++ b/common/main_func.py @@ -21,12 +21,12 @@ async def fetch_branch_info(session, url, headers): async with session.get(url, headers=headers, ssl=False) as response: return await response.json() except KeyboardInterrupt: - log.info("\n👋 程序已退出") + log.info("程序已退出") except Exception as e: - log.error(f'⚠ 获取信息失败: {stack_error(e)}') + log.error(f'获取信息失败: {stack_error(e)}') return None except ConnectionTimeoutError as e: - log.error(f'⚠ 获取信息时超时: {stack_error(e)}') + log.error(f'获取信息时超时: {stack_error(e)}') return None async def get_latest_repo_info(session, repos, app_id, headers): @@ -47,7 +47,7 @@ async def get_latest_repo_info(session, repos, app_id, headers): async def main(app_id: str, repos: list) -> bool: app_id_list = list(filter(str.isdecimal, app_id.strip().split('-'))) if not app_id_list: - log.error(f'⚠ App ID无效') + log.error(f'App ID无效') return False app_id = app_id_list[0] @@ -61,7 +61,7 @@ async def main(app_id: str, repos: list) -> bool: selected_repo, latest_date = await get_latest_repo_info(session, repos, app_id, headers) if selected_repo: - log.info(f'🔄 选择清单仓库:{selected_repo}') + log.info(f'选择清单仓库:{selected_repo}') url = f'https://api.github.com/repos/{selected_repo}/branches/{app_id}' r_json = await fetch_branch_info(session, url, headers) @@ -80,7 +80,7 @@ async def main(app_id: str, repos: list) -> bool: if isSteamTools: await migrate(st_use=True, session=session) await stool_add(collected_depots, app_id) - log.info('✅ 找到SteamTools,已添加解锁文件') + log.info('找到SteamTools,已添加解锁文件') if isGreenLuma: await migrate(st_use=False, session=session) @@ -88,13 +88,13 @@ async def main(app_id: str, repos: list) -> bool: depot_config = {'depots': {depot_id: {'DecryptionKey': depot_key} for depot_id, depot_key in collected_depots}} await depotkey_merge(steam_path / 'config' / 'config.vdf', depot_config) if await greenluma_add([int(i) for i in depot_config['depots'] if i.isdecimal()]): - log.info('✅ 找到GreenLuma,已添加解锁文件') + log.info('找到GreenLuma,已添加解锁文件') - log.info(f'✅ 清单最后更新时间:{latest_date}') - log.info(f'✅ 入库成功: {app_id}') + log.info(f'清单最后更新时间:{latest_date}') + log.info(f'入库成功: {app_id}') os.system('pause') return True - log.error(f'⚠ 清单下载或生成失败: {app_id}') + log.error(f'清单下载或生成失败: {app_id}') os.system('pause') return False diff --git a/common/manifest_down.py b/common/manifest_down.py index 2b60795..a599861 100644 --- a/common/manifest_down.py +++ b/common/manifest_down.py @@ -26,23 +26,23 @@ async def get(sha: str, path: str, repo: str, session, chunk_size: int = 1024) - total_size = int(response.headers.get('Content-Length', 0)) content = bytearray() - with tqdm_asyncio(total=total_size, unit='B', unit_scale=True, desc=f'🔄 下载 {path}', colour='#ffadad') as pbar: + with tqdm_asyncio(total=total_size, unit='B', unit_scale=True, desc=f'下载 {path}', colour='#ffadad') as pbar: async for chunk in response.content.iter_chunked(chunk_size): content.extend(chunk) pbar.update(len(chunk)) return content else: - log.error(f'🔄 获取失败: {path} - 状态码: {response.status}') + log.error(f'获取失败: {path} - 状态码: {response.status}') except KeyboardInterrupt: - log.info("\n👋 程序已退出") + log.info("程序已退出") except ClientError as e: - log.error(f'🔄 获取失败: {path} - 连接错误: {str(e)}') + log.error(f'获取失败: {path} - 连接错误: {str(e)}') except ConnectionTimeoutError as e: - log.error(f'🔄 连接超时: {url} - 错误: {str(e)}') + log.error(f'连接超时: {url} - 错误: {str(e)}') retry -= 1 - log.warning(f'🔄 重试剩余次数: {retry} - {path}') + log.warning(f'重试剩余次数: {retry} - {path}') - log.error(f'🔄 超过最大重试次数: {path}') - raise Exception(f'🔄 无法下载: {path}') + log.error(f'超过最大重试次数: {path}') + raise Exception(f'无法下载: {path}') diff --git a/common/migration.py b/common/migration.py index cf1fb81..652534b 100644 --- a/common/migration.py +++ b/common/migration.py @@ -12,7 +12,7 @@ setup_url = 'https://steamtools.net/res/SteamtoolsSetup.exe' setup_file = temp_path / 'SteamtoolsSetup.exe' async def download_setup_file(session) -> None: - log.info('🔄 开始下载 SteamTools 安装程序...') + log.info('开始下载 SteamTools 安装程序...') try: async with session.get(setup_url, stream=True) as r: if r.status == 200: @@ -26,19 +26,19 @@ async def download_setup_file(session) -> None: progress.update(len(chunk)) progress.close() - log.info('✅ 安装程序下载完成') + log.info('安装程序下载完成') else: - log.error('⚠ 网络错误,无法下载安装程序') + log.error('网络错误,无法下载安装程序') except KeyboardInterrupt: - log.info("\n👋 程序已退出") + log.info("程序已退出") except Exception as e: - log.error(f'⚠ 下载失败: {e}') + log.error(f'下载失败: {e}') except ConnectionTimeoutError as e: - log.error(f'⚠ 下载时超时: {e}') + log.error(f'下载时超时: {e}') async def migrate(st_use: bool, session) -> None: if st_use: - log.info('🔄 检测到你正在使用 SteamTools,尝试迁移旧文件') + log.info('检测到你正在使用 SteamTools,尝试迁移旧文件') if directory.exists(): for file in directory.iterdir(): @@ -49,9 +49,9 @@ async def migrate(st_use: bool, session) -> None: file.rename(directory / new_filename) log.info(f'Renamed: {file.name} -> {new_filename}') except Exception as e: - log.error(f'⚠ 重命名失败 {file.name} -> {new_filename}: {e}') + log.error(f'重命名失败 {file.name} -> {new_filename}: {e}') else: - log.error('⚠ 故障,正在重新安装 SteamTools') + log.error('故障,正在重新安装 SteamTools') temp_path.mkdir(parents=True, exist_ok=True) await download_setup_file(session) @@ -61,4 +61,4 @@ async def migrate(st_use: bool, session) -> None: file.unlink() temp_path.rmdir() else: - log.info('✅ 未使用 SteamTools,停止迁移') + log.info('未使用 SteamTools,停止迁移') diff --git a/common/st_unlock.py b/common/st_unlock.py index 5238a90..c56878b 100644 --- a/common/st_unlock.py +++ b/common/st_unlock.py @@ -13,7 +13,7 @@ async def stool_add(depot_data: list, app_id: str) -> bool: lua_filepath = steam_path / "config" / "stplug-in" / lua_filename async with lock: - log.info(f'✅ SteamTools 解锁文件生成: {lua_filepath}') + log.info(f'SteamTools 解锁文件生成: {lua_filepath}') try: async with aiofiles.open(lua_filepath, mode="w", encoding="utf-8") as lua_file: await lua_file.write(f'addappid({app_id}, 1, "None")\n') @@ -21,21 +21,21 @@ async def stool_add(depot_data: list, app_id: str) -> bool: await lua_file.write(f'addappid({depot_id}, 1, "{depot_key}")\n') luapacka_path = steam_path / "config" / "stplug-in" / "luapacka.exe" - log.info(f'🔄 正在处理文件: {lua_filepath}') + log.info(f'正在处理文件: {lua_filepath}') result = subprocess.run( [str(luapacka_path), str(lua_filepath)], capture_output=True ) if result.returncode != 0: - log.error(f'⚠ 调用失败: {result.stderr.decode()}') + log.error(f'调用失败: {result.stderr.decode()}') return False - log.info('✅ 处理完成') + log.info('处理完成') except KeyboardInterrupt: - log.info("\n👋 程序已退出") + log.info("程序已退出") except Exception as e: - log.error(f'❌ 处理过程出现错误: {e}') + log.error(f'处理过程出现错误: {e}') return False finally: if lua_filepath.exists(): diff --git a/main.py b/main.py index 9a79ecb..6641240 100644 --- a/main.py +++ b/main.py @@ -22,11 +22,11 @@ repos = [ def prompt_app_id(): while True: - app_id = input(f"{Fore.CYAN}{Back.BLACK}{Style.BRIGHT}🤔 请输入游戏AppID: {Style.RESET_ALL}").strip() + app_id = input(f"{Fore.CYAN}{Back.BLACK}{Style.BRIGHT}请输入游戏AppID: {Style.RESET_ALL}").strip() if re.match(r'^\d+$', app_id): return app_id else: - print(f"{Fore.RED}⚠ 无效的AppID, 请输入数字!{Style.RESET_ALL}") + print(f"{Fore.RED}无效的AppID, 请输入数字!{Style.RESET_ALL}") async def main_loop(): while True: @@ -34,24 +34,24 @@ async def main_loop(): app_id = prompt_app_id() await main(app_id, repos) except KeyboardInterrupt: - log.info("\n👋 程序已退出") + log.info("程序已退出") except EOFError: break async def run(): try: - log.info('❗ App ID可以在SteamDB或Steam商店链接页面查看') + log.info('App ID可以在SteamDB或Steam商店链接页面查看') await main_loop() except KeyboardInterrupt: - log.info("\n👋 程序已退出") + log.info("程序已退出") except Exception as e: - log.error(f'⚠ 发生错误: {stack_error(e)}, 将在5秒后退出') + log.error(f'发生错误: {stack_error(e)}, 将在5秒后退出') await asyncio.sleep(5) if __name__ == '__main__': try: asyncio.run(run()) except KeyboardInterrupt: - log.info("\n👋 程序已退出") + log.info("程序已退出") except SystemExit: sys.exit()