#!/usr/bin/env python3 """ Скрипт декомпиляции .cst файлов. Запускать из папки translate_util. Спрашивает, в какой папке лежат .cst файлы (по умолчанию update00/text), и декомпилирует все .cst файлы из неё в папку txt с помощью tool\\cs2_decompile.exe. """ import subprocess import sys from pathlib import Path # Корень translate_util — папка, откуда запущен скрипт BASE_DIR = Path(__file__).resolve().parent TOOL_EXE = BASE_DIR / "tool" / "cs2_decompile.exe" TXT_DIR = BASE_DIR / "txt" def main(): if not TOOL_EXE.exists(): print(f"Ошибка: не найден {TOOL_EXE}") sys.exit(1) src_input = input("В какой папке лежат .cst файлы? [update00/text]: ").strip() src_dir_name = src_input if src_input else "update00/text" src_dir = BASE_DIR / src_dir_name if not src_dir.is_dir(): print(f"Ошибка: папка не найдена: {src_dir}") sys.exit(1) TXT_DIR.mkdir(exist_ok=True) cst_files = sorted(src_dir.glob("*.cst")) if not cst_files: print(f"В папке {src_dir} не найдено .cst файлов.") sys.exit(0) print(f"Найдено файлов: {len(cst_files)}") print(f"Источник: {src_dir}") print(f"Результат будет в: {TXT_DIR}\n") ok_count = 0 fail_count = 0 for cst_file in cst_files: print(f"-> {cst_file.name}") try: result = subprocess.run( [str(TOOL_EXE), str(cst_file)], cwd=str(TXT_DIR), capture_output=True, text=True, ) if result.stdout: print(result.stdout.strip()) if result.stderr: print(result.stderr.strip()) if result.returncode == 0: ok_count += 1 else: fail_count += 1 print(f" [!] Код возврата: {result.returncode}") except Exception as e: fail_count += 1 print(f" [!] Ошибка запуска: {e}") print(f"\nГотово. Успешно: {ok_count}, с ошибками: {fail_count}") if __name__ == "__main__": main()