Skip to content

Add files via upload #14

Add files via upload

Add files via upload #14

Workflow file for this run

name: Telegram File Upload with Translation
on:
push:
branches:
- main
paths:
- '*.md'
jobs:
notify:
runs-on: ubuntu-latest
steps:
# Step 1: Checkout code
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
# Step 2: Get changed Markdown files
- name: Get Changed Files
id: changed-files
uses: tj-actions/changed-files@v45
# Step 3: Translate Markdown Files using Google Translate API
- name: Translate Markdown Files
if: ${{ steps.changed-files.outputs.added_files != '' }}
env:
GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
run: |
mkdir translated_files
for FILE in ${{ steps.changed-files.outputs.added_files }}; do
if [[ "$FILE" == *.md ]]; then
TRANSLATED_CONTENT=$(curl -s -X POST "https://translation.googleapis.com/language/translate/v2?key=${GOOGLE_API_KEY}" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"q": "'"$(cat $FILE | sed 's/\n/<br>/g' | sed 's/"/\\"/g' | jq -R -s .)"'",
"source": "zh-CN",
"target": "en",
"format": "html"
}' | jq -r '.data.translations[0].translatedText' | sed 's/<br>/\n/g')
echo "$TRANSLATED_CONTENT" > translated_files/$FILE
fi
done
# Step 4: Upload Translated Files to Telegram
- name: Upload Translated Files to Telegram
if: success()
env:
TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_API_KEY }}
TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }}
run: |
for FILE in translated_files/*; do
curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendDocument" \
-F chat_id="${TELEGRAM_CHAT_ID}" \
-F document=@"$FILE" \
-F caption="📢 *New Translated Markdown File Added!*\n\nFilename: \`$(basename $FILE)\`" \
-F parse_mode="Markdown"
done