Add files via upload #14
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |