telegram-invite-automation/scripts/build-converter.sh
2026-01-15 03:32:24 +04:00

46 lines
1.3 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
OUT_DIR="$ROOT_DIR/resources/converter/mac"
WORK_DIR="$ROOT_DIR/scripts/.converter-venv"
PYTHON_BIN=""
for candidate in python3.11 python3.10 python3; do
if command -v "$candidate" >/dev/null 2>&1; then
PYTHON_BIN="$candidate"
break
fi
done
if [ -z "$PYTHON_BIN" ]; then
echo "Python 3.10+ is required. Install python3.11 and retry."
exit 1
fi
PYTHON_VERSION=$("$PYTHON_BIN" -c "import sys; print(f\"{sys.version_info.major}.{sys.version_info.minor}\")")
if [ "$PYTHON_VERSION" = "3.13" ]; then
echo "Python 3.13 is not supported by opentele/TGConvertor. Install python3.11 and retry."
exit 1
fi
"$PYTHON_BIN" -m venv "$WORK_DIR"
source "$WORK_DIR/bin/activate"
pip install --upgrade pip
pip install "TGConvertor[tdata]==0.1.4" telethon pyinstaller
pyinstaller --onefile "$ROOT_DIR/scripts/tdata_converter.py" \
--name tgconvertor \
--distpath "$ROOT_DIR/dist/tdata_converter" \
--collect-all TGConvertor \
--collect-all opentele \
--collect-all telethon
mkdir -p "$OUT_DIR"
cp -f "$ROOT_DIR/dist/tdata_converter/tgconvertor" "$OUT_DIR/tgconvertor"
rm -rf "$ROOT_DIR/dist/tdata_converter" "$ROOT_DIR/build" "$ROOT_DIR/tdata_converter.spec"
echo "Converter built: $OUT_DIR/tgconvertor"