From a4aa3cfc1010e6b8768062a8e0aa25c14b1f1356 Mon Sep 17 00:00:00 2001 From: pompurin404 Date: Sun, 13 Oct 2024 16:28:13 +0800 Subject: [PATCH] try to send file --- .github/workflows/build.yml | 23 ++++++++++ package.json | 2 + pnpm-lock.yaml | 13 +++--- scripts/artifact.mjs | 88 +++++++++++++++++++++++++++++++++++++ 4 files changed, 121 insertions(+), 5 deletions(-) create mode 100644 scripts/artifact.mjs diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1775ae33..1324a7ee 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -220,6 +220,29 @@ jobs: body_path: changelog.md token: ${{ secrets.GITHUB_TOKEN }} + artifact: + if: startsWith(github.ref, 'refs/heads/') + needs: [windows, macos, linux, windows7] + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup pnpm + run: npm install -g pnpm + - name: Install Dependencies + run: pnpm install + - name: Download Artifacts + uses: actions/download-artifact@v4 + - name: Telegram Bot Server + uses: zjns/telegram-bot-server@v1 + with: + api_id: ${{ secrets.TELEGRAM_BOT_API_ID }} + api_hash: ${{ secrets.TELEGRAM_BOT_API_HASH }} + - name: Upload Artifacts + env: + TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }} + run: pnpm artifact + updater: if: startsWith(github.ref, 'refs/tags/v') needs: [windows, macos, windows7] diff --git a/package.json b/package.json index 44772059..01c1026b 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "updater": "node scripts/updater.mjs", "checksum": "node scripts/checksum.mjs", "telegram": "node scripts/telegram.mjs", + "artifact": "node scripts/artifact.mjs", "dev": "electron-vite dev", "postinstall": "electron-builder install-app-deps", "build:win": "electron-vite build && electron-builder --publish never --win", @@ -59,6 +60,7 @@ "electron-window-state": "^5.0.3", "eslint": "^8.57.1", "eslint-plugin-react": "^7.37.1", + "form-data": "^4.0.1", "framer-motion": "^11.9.0", "lodash": "^4.17.21", "meta-json-schema": "^1.18.9", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 09b3401c..1cc85d8e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -114,6 +114,9 @@ importers: eslint-plugin-react: specifier: ^7.37.1 version: 7.37.1(eslint@8.57.1) + form-data: + specifier: ^4.0.1 + version: 4.0.1 framer-motion: specifier: ^11.9.0 version: 11.9.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -3193,8 +3196,8 @@ packages: resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} - form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + form-data@4.0.1: + resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} engines: {node: '>= 6'} formdata-polyfill@4.0.10: @@ -8260,7 +8263,7 @@ snapshots: ejs: 3.1.10 electron-builder-squirrel-windows: 25.0.4(dmg-builder@25.0.4) electron-publish: 25.0.3 - form-data: 4.0.0 + form-data: 4.0.1 fs-extra: 10.1.0 hosted-git-info: 4.1.0 is-ci: 3.0.1 @@ -8416,7 +8419,7 @@ snapshots: axios@1.7.7: dependencies: follow-redirects: 1.15.9 - form-data: 4.0.0 + form-data: 4.0.1 proxy-from-env: 1.1.0 transitivePeerDependencies: - debug @@ -9445,7 +9448,7 @@ snapshots: cross-spawn: 7.0.3 signal-exit: 4.1.0 - form-data@4.0.0: + form-data@4.0.1: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 diff --git a/scripts/artifact.mjs b/scripts/artifact.mjs new file mode 100644 index 00000000..e1c2d021 --- /dev/null +++ b/scripts/artifact.mjs @@ -0,0 +1,88 @@ +import fs from 'fs' +import axios from 'axios' +import path from 'path' +import FormData from 'form-data' +import { fileURLToPath } from 'url' + +const CHAT_ID = '@mihomo_party_group' +const __filename = fileURLToPath(import.meta.url) +const __dirname = path.dirname(__filename) +const pkg = fs.readFileSync('package.json', 'utf-8') +const { version } = JSON.parse(pkg) + +const files = [ + path.join( + __dirname, + `../mihomo-party-linux-${version}-aarch64.rpm +` + ), + path.join( + __dirname, + `../mihomo-party-linux-${version}-arm64.deb +` + ), + path.join( + __dirname, + `../mihomo-party-linux-${version}-x86_64.rpm +` + ), + path.join( + __dirname, + `../mihomo-party-linux-${version}-amd64.deb +` + ), + path.join( + __dirname, + `../mihomo-party-macos-${version}-arm64.dmg +` + ), + path.join( + __dirname, + `../mihomo-party-macos-${version}-x64.dmg +` + ), + path.join( + __dirname, + `../mihomo-party-windows-${version}-x64-setup.exe +` + ), + path.join( + __dirname, + `../mihomo-party-windows-${version}-x64-portable.7z +` + ), + path.join( + __dirname, + `../mihomo-party-win7-${version}-x64-setup.exe +` + ), + path.join( + __dirname, + `../mihomo-party-win7-${version}-x64-portable.7z +` + ) +] + +const media = files.map((_, index) => ({ + type: 'document', + media: `attach://file${index}` +})) + +const form = new FormData() +form.append('chat_id', CHAT_ID) +form.append('media', JSON.stringify(media)) + +files.forEach((file, index) => { + form.append(`file${index}`, fs.createReadStream(file)) +}) + +axios + .post(`http://127.0.0.1:8088/bot${process.env.TELEGRAM_BOT_TOKEN}/sendMediaGroup`, form, { + headers: form.getHeaders() + }) + .then((response) => { + console.log('Success:', response.data) + }) + .catch((error) => { + console.error('Error:', error.response ? error.response.data : error.message) + })