Files
cs2-easy-translate-tool/decompile.py
T
2026-09-07 19:07:40 +03:00

77 lines
2.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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()