S21 Phone
Webzine/ Scripts/ tg.sh · Telegram
Scripts · lakme-audio

tg.sh · Telegram

Source viewer · scripts/tg.sh

Source · scripts/tg.sh Kind · code S21 Phone Editorial
scripts/tg.sh
#!/bin/bash
# Telegram 보고 스크립트 (+ 음성 읽기)
# 사용법:
#   bash tg.sh "메시지"              # 텍스트만
#   bash tg.sh --voice "메시지"      # 텍스트 + 음성 읽기
#   bash tg.sh --speak "메시지"      # 음성만
# 환경변수: TG_TOKEN, TG_CHAT

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
TTS_SCRIPT="$SCRIPT_DIR/tts-speak.py"

TOKEN="${TG_TOKEN:-}"
CHAT="${TG_CHAT:-}"

if [ -z "$TOKEN" ] || [ -z "$CHAT" ]; then
  echo "❌ TG_TOKEN 또는 TG_CHAT 환경변수가 설정되지 않았습니다." >&2
  exit 1
fi

MODE="text"
if [ "$1" = "--voice" ] || [ "$1" = "-v" ]; then
  MODE="both"
  shift
elif [ "$1" = "--speak" ] || [ "$1" = "-s" ]; then
  MODE="voice"
  shift
fi

MESSAGE="$*"
if [ -z "$MESSAGE" ]; then
  echo "❌ 메시지를 입력하세요. 사용법: bash tg.sh [--voice] '메시지'" >&2
  exit 1
fi

# ── 텍스트 전송 ──────────────────────────────────
if [ "$MODE" = "text" ] || [ "$MODE" = "both" ]; then
  RESPONSE=$(curl -s -X POST "https://api.telegram.org/bot${TOKEN}/sendMessage" \
    -d chat_id="$CHAT" \
    -d text="$MESSAGE" \
    -d parse_mode="HTML" \
    -w "\n%{http_code}")

  HTTP_CODE=$(echo "$RESPONSE" | tail -1)
  BODY=$(echo "$RESPONSE" | sed '$d')

  if [ "$HTTP_CODE" = "200" ]; then
    echo "✅ 텍스트 전송 성공"
  else
    echo "❌ 실패 (HTTP $HTTP_CODE)"
    echo "$BODY"
    exit 1
  fi
fi

# ── 음성 전송 ────────────────────────────────────
if [ "$MODE" = "voice" ] || [ "$MODE" = "both" ]; then
  if [ -f "$TTS_SCRIPT" ]; then
    # HTML 태그 제거한 순수 텍스트로 TTS
    CLEAN=$(echo "$MESSAGE" | sed 's/<[^>]*>//g')
    TTS_MP3=$(python3 "$TTS_SCRIPT" --output /tmp/tg_voice_$$.mp3 "$CLEAN" 2>&1 | grep "✅ 저장:" | awk '{print $NF}' || echo "/tmp/tg_voice_$$.mp3")
    MP3_FILE="/tmp/tg_voice_$$.mp3"

    if [ -f "$MP3_FILE" ] && [ -s "$MP3_FILE" ]; then
      curl -s -X POST "https://api.telegram.org/bot${TOKEN}/sendVoice" \
        -F "chat_id=$CHAT" \
        -F "voice=@$MP3_FILE" \
        -F "caption=🔊 음성 읽기" > /dev/null
      rm -f "$MP3_FILE"
      echo "✅ 음성 전송 성공"
    else
      echo "⚠️ TTS 변환 실패 — 텍스트만 전송됨"
    fi
  else
    echo "⚠️ tts-speak.py 없음 — pip install edge-tts 필요"
  fi
fi

원본 파일: scripts/tg.sh · Webzine code viewer (no execution)