From f820601f6a36a9566bd3971aa66ca43ea2177935 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Fri, 12 Sep 2025 00:49:20 +0000 Subject: [PATCH 1/6] chore(release): 1.0.0-alpha.9 # [1.0.0-alpha.9](https://github.com/mkdir700/EchoPlayer/compare/v1.0.0-alpha.8...v1.0.0-alpha.9) (2025-09-12) ### Bug Fixes * **homepage:** Fix UI desynchronization issue after deleting video records + i18n support ([#120](https://github.com/mkdir700/EchoPlayer/issues/120)) ([7879ef4](https://github.com/mkdir700/EchoPlayer/commit/7879ef442b888d6956a74739c3c0c1c54bb87387)) * **player:** Fix subtitle navigation when activeCueIndex is -1 ([#119](https://github.com/mkdir700/EchoPlayer/issues/119)) ([b4ad16f](https://github.com/mkdir700/EchoPlayer/commit/b4ad16f2115d324aabd34b08b2a05ca98a3de101)) * **player:** Fix subtitle overlay dragging to bottom and improve responsive design ([#122](https://github.com/mkdir700/EchoPlayer/issues/122)) ([d563c92](https://github.com/mkdir700/EchoPlayer/commit/d563c924c9471caeeab45a3d2ddd6dda5520fcac)) * **player:** Prevent subtitle overlay interactions from triggering video play/pause ([#128](https://github.com/mkdir700/EchoPlayer/issues/128)) ([9730ba1](https://github.com/mkdir700/EchoPlayer/commit/9730ba1184cffe2012dd30e9207a562e88eec140)) * **ui:** Remove white border shadow from modal buttons in dark mode ([#124](https://github.com/mkdir700/EchoPlayer/issues/124)) ([29f70f6](https://github.com/mkdir700/EchoPlayer/commit/29f70f66806f3dc0e3e473a9b3b27867cf67ac0d)) ### Features * **performance:** implement video import performance optimization with parallel processing and warmup strategies ([#121](https://github.com/mkdir700/EchoPlayer/issues/121)) ([2c65f5a](https://github.com/mkdir700/EchoPlayer/commit/2c65f5ae92460391302c24f3fb291f386043e7cd)) * **player:** Implement fullscreen toggle functionality with keyboard shortcuts ([#127](https://github.com/mkdir700/EchoPlayer/issues/127)) ([78d3629](https://github.com/mkdir700/EchoPlayer/commit/78d3629c7d5a14e8bc378967a7f161135c5b5042)) * **scripts:** optimize FFmpeg download progress display ([#125](https://github.com/mkdir700/EchoPlayer/issues/125)) ([be33316](https://github.com/mkdir700/EchoPlayer/commit/be33316f0a66f7b5b2de64d275d7166f12f50379)) --- CHANGELOG.md | 16 ++++++++++++++++ package.json | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 100e8ff4..5aa32ed0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,19 @@ +# [1.0.0-alpha.9](https://github.com/mkdir700/EchoPlayer/compare/v1.0.0-alpha.8...v1.0.0-alpha.9) (2025-09-12) + +### Bug Fixes + +- **homepage:** Fix UI desynchronization issue after deleting video records + i18n support ([#120](https://github.com/mkdir700/EchoPlayer/issues/120)) ([7879ef4](https://github.com/mkdir700/EchoPlayer/commit/7879ef442b888d6956a74739c3c0c1c54bb87387)) +- **player:** Fix subtitle navigation when activeCueIndex is -1 ([#119](https://github.com/mkdir700/EchoPlayer/issues/119)) ([b4ad16f](https://github.com/mkdir700/EchoPlayer/commit/b4ad16f2115d324aabd34b08b2a05ca98a3de101)) +- **player:** Fix subtitle overlay dragging to bottom and improve responsive design ([#122](https://github.com/mkdir700/EchoPlayer/issues/122)) ([d563c92](https://github.com/mkdir700/EchoPlayer/commit/d563c924c9471caeeab45a3d2ddd6dda5520fcac)) +- **player:** Prevent subtitle overlay interactions from triggering video play/pause ([#128](https://github.com/mkdir700/EchoPlayer/issues/128)) ([9730ba1](https://github.com/mkdir700/EchoPlayer/commit/9730ba1184cffe2012dd30e9207a562e88eec140)) +- **ui:** Remove white border shadow from modal buttons in dark mode ([#124](https://github.com/mkdir700/EchoPlayer/issues/124)) ([29f70f6](https://github.com/mkdir700/EchoPlayer/commit/29f70f66806f3dc0e3e473a9b3b27867cf67ac0d)) + +### Features + +- **performance:** implement video import performance optimization with parallel processing and warmup strategies ([#121](https://github.com/mkdir700/EchoPlayer/issues/121)) ([2c65f5a](https://github.com/mkdir700/EchoPlayer/commit/2c65f5ae92460391302c24f3fb291f386043e7cd)) +- **player:** Implement fullscreen toggle functionality with keyboard shortcuts ([#127](https://github.com/mkdir700/EchoPlayer/issues/127)) ([78d3629](https://github.com/mkdir700/EchoPlayer/commit/78d3629c7d5a14e8bc378967a7f161135c5b5042)) +- **scripts:** optimize FFmpeg download progress display ([#125](https://github.com/mkdir700/EchoPlayer/issues/125)) ([be33316](https://github.com/mkdir700/EchoPlayer/commit/be33316f0a66f7b5b2de64d275d7166f12f50379)) + # [1.0.0-alpha.8](https://github.com/mkdir700/EchoPlayer/compare/v1.0.0-alpha.7...v1.0.0-alpha.8) (2025-09-10) ### Features diff --git a/package.json b/package.json index ba9cec76..92a27f60 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "echoplayer", - "version": "1.0.0-alpha.8", + "version": "1.0.0-alpha.9", "description": "EchoPlayer is a video player designed for language learners, helping users learn foreign languages efficiently through sentence-by-sentence intensive listening.", "main": "./out/main/index.js", "author": "echoplayer.cc", From 82923ad22523236e742f23793f81ffcd57738894 Mon Sep 17 00:00:00 2001 From: mkdir700 Date: Mon, 8 Sep 2025 20:43:14 +0800 Subject: [PATCH 2/6] Update README.md --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 496826a4..e50518f1 100644 --- a/README.md +++ b/README.md @@ -156,7 +156,10 @@ pnpm test:ui ## 🙏 致谢 -- [Cherry Studio](https://github.com/CherryHQ/cherry-studio) - 一款为创造而生的 AI 助手 +| 项目名 | 简介 | +| --- | --- | +| [Cherry Studio](https://github.com/CherryHQ/cherry-studio) | 一款为创造而生的 AI 助手 | +| [DashPlayer](https://github.com/solidSpoon/DashPlayer) | 为英语学习者量身打造的视频播放器 | --- From 3eb0d799809fdc0a0256557914b3632cad29a256 Mon Sep 17 00:00:00 2001 From: mkdir700 Date: Fri, 12 Sep 2025 10:49:38 +0800 Subject: [PATCH 3/6] ci(sync): add workflow to sync main to beta (#132) --- .github/workflows/sync-main-to-beta.yml | 37 +++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 .github/workflows/sync-main-to-beta.yml diff --git a/.github/workflows/sync-main-to-beta.yml b/.github/workflows/sync-main-to-beta.yml new file mode 100644 index 00000000..3785b4e6 --- /dev/null +++ b/.github/workflows/sync-main-to-beta.yml @@ -0,0 +1,37 @@ +name: Sync main -> beta + +on: + push: + branches: [main] + +permissions: + contents: write + pull-requests: write + +jobs: + sync: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Create sync branch + run: | + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + git fetch origin beta + git checkout -b chore/sync-main-to-beta origin/beta + # 线性历史优先:尝试 fast-forward 或 rebase + git merge --ff-only origin/main || git rebase origin/main + git push -u origin chore/sync-main-to-beta + + - name: Open PR main -> beta + uses: peter-evans/create-pull-request@v6 + with: + title: 'chore(sync): main -> beta' + body: 'Auto sync main into beta after a merge to main.' + base: beta + branch: chore/sync-main-to-beta + labels: sync, automated + draft: false From 71b4efc1d34d86ae93b353b18fadb5581227f1e6 Mon Sep 17 00:00:00 2001 From: mkdir700 Date: Fri, 12 Sep 2025 10:52:35 +0800 Subject: [PATCH 4/6] ci: add dev release workflow (#131) --- .github/workflows/dev-release.yml | 85 +++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 .github/workflows/dev-release.yml diff --git a/.github/workflows/dev-release.yml b/.github/workflows/dev-release.yml new file mode 100644 index 00000000..ac75ca01 --- /dev/null +++ b/.github/workflows/dev-release.yml @@ -0,0 +1,85 @@ +name: Dev Release + +run-name: '🚀 Dev Release' + +on: + workflow_dispatch: + inputs: + version: + description: 'Version for dev release (optional)' + required: false + default: '' + platform: + description: 'Target platform for dev release' + required: true + default: macos + type: choice + options: + - macos + - linux + - windows + +permissions: + contents: write + pull-requests: read + +jobs: + dev-release: + runs-on: ${{ matrix.os }} + strategy: + matrix: + include: + - platform: macos + os: macos-latest + target: --mac + - platform: linux + os: ubuntu-latest + target: --linux + - platform: windows + os: windows-latest + target: --win + if: matrix.platform == github.event.inputs.platform + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Setup pnpm + uses: pnpm/action-setup@v3 + with: + version: 8 + + - name: Install dependencies + run: pnpm install + + - name: Set version + if: ${{ github.event.inputs.version != '' }} + run: | + node -e "const fs=require('fs');const pkg=JSON.parse(fs.readFileSync('package.json','utf8'));pkg.version='${{ github.event.inputs.version }}';fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2)+'\n');" + + - name: Build dev package + run: | + pnpm build + pnpm exec electron-builder ${{ matrix.target }} --publish never + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + ELECTRON_BUILDER_CHANNEL: dev + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.platform }}-dev-artifacts + path: | + dist/*.exe + dist/*.dmg + dist/*.zip + dist/*.AppImage + dist/*.deb + dist/*.yml + dist/*.yaml + dist/*.blockmap + retention-days: 30 From 657927c3d5bde328c82149ea94db2465f170370c Mon Sep 17 00:00:00 2001 From: mkdir700 Date: Fri, 12 Sep 2025 11:36:58 +0800 Subject: [PATCH 5/6] ci: Update dev-release.yml --- .github/workflows/dev-release.yml | 219 +++++++++++++++++++++++++----- 1 file changed, 185 insertions(+), 34 deletions(-) diff --git a/.github/workflows/dev-release.yml b/.github/workflows/dev-release.yml index ac75ca01..88c35215 100644 --- a/.github/workflows/dev-release.yml +++ b/.github/workflows/dev-release.yml @@ -1,44 +1,26 @@ -name: Dev Release - -run-name: '🚀 Dev Release' +name: Dev Release Build on: workflow_dispatch: inputs: - version: - description: 'Version for dev release (optional)' - required: false - default: '' platform: - description: 'Target platform for dev release' + description: 'Target platform' required: true - default: macos type: choice options: - macos - linux - windows - -permissions: - contents: write - pull-requests: read + version: + description: 'Version to set (optional)' + required: false + type: string jobs: - dev-release: - runs-on: ${{ matrix.os }} - strategy: - matrix: - include: - - platform: macos - os: macos-latest - target: --mac - - platform: linux - os: ubuntu-latest - target: --linux - - platform: windows - os: windows-latest - target: --win - if: matrix.platform == github.event.inputs.platform + build-macos: + runs-on: macos-latest + if: ${{ inputs.platform == 'macos' }} + steps: - name: Checkout repository uses: actions/checkout@v4 @@ -52,34 +34,203 @@ jobs: uses: pnpm/action-setup@v3 with: version: 8 + run_install: false + + - name: Get pnpm store directory + shell: bash + run: echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV + + - name: Setup pnpm cache + uses: actions/cache@v3 + with: + path: ${{ env.STORE_PATH }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- - name: Install dependencies run: pnpm install - name: Set version - if: ${{ github.event.inputs.version != '' }} + if: ${{ inputs.version != '' }} + shell: bash run: | - node -e "const fs=require('fs');const pkg=JSON.parse(fs.readFileSync('package.json','utf8'));pkg.version='${{ github.event.inputs.version }}';fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2)+'\n');" + node -e " + const fs = require('fs'); + const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8')); + pkg.version = '${{ inputs.version }}'; + fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n'); + console.log(\`Version set to \${pkg.version}\`); + " - - name: Build dev package + - name: Build macOS package run: | pnpm build - pnpm exec electron-builder ${{ matrix.target }} --publish never + pnpm exec electron-builder --mac --publish never env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} ELECTRON_BUILDER_CHANNEL: dev + - name: List build artifacts + shell: bash + run: | + echo "Build artifacts:" + find dist -type f -name "*" | head -20 + - name: Upload artifacts uses: actions/upload-artifact@v4 with: - name: ${{ matrix.platform }}-dev-artifacts + name: macos-dev-artifacts path: | - dist/*.exe dist/*.dmg dist/*.zip + dist/*.yml + dist/*.yaml + dist/*.blockmap + retention-days: 30 + if-no-files-found: warn + + build-linux: + runs-on: ubuntu-latest + if: ${{ inputs.platform == 'linux' }} + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Setup pnpm + uses: pnpm/action-setup@v3 + with: + version: 8 + run_install: false + + - name: Get pnpm store directory + shell: bash + run: echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV + + - name: Setup pnpm cache + uses: actions/cache@v3 + with: + path: ${{ env.STORE_PATH }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + + - name: Install dependencies + run: pnpm install + + - name: Set version + if: ${{ inputs.version != '' }} + shell: bash + run: | + node -e " + const fs = require('fs'); + const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8')); + pkg.version = '${{ inputs.version }}'; + fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n'); + console.log(\`Version set to \${pkg.version}\`); + " + + - name: Build Linux package + run: | + pnpm build + pnpm exec electron-builder --linux --publish never + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + ELECTRON_BUILDER_CHANNEL: dev + + - name: List build artifacts + shell: bash + run: | + echo "Build artifacts:" + find dist -type f -name "*" | head -20 + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: linux-dev-artifacts + path: | dist/*.AppImage dist/*.deb dist/*.yml dist/*.yaml dist/*.blockmap retention-days: 30 + if-no-files-found: warn + + build-windows: + runs-on: windows-latest + if: ${{ inputs.platform == 'windows' }} + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Setup pnpm + uses: pnpm/action-setup@v3 + with: + version: 8 + run_install: false + + - name: Get pnpm store directory + shell: bash + run: echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV + + - name: Setup pnpm cache + uses: actions/cache@v3 + with: + path: ${{ env.STORE_PATH }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + + - name: Install dependencies + run: pnpm install + + - name: Set version + if: ${{ inputs.version != '' }} + shell: bash + run: | + node -e " + const fs = require('fs'); + const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8')); + pkg.version = '${{ inputs.version }}'; + fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n'); + console.log(\`Version set to \${pkg.version}\`); + " + + - name: Build Windows package + run: | + pnpm build + pnpm exec electron-builder --win --publish never + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + ELECTRON_BUILDER_CHANNEL: dev + + - name: List build artifacts + shell: bash + run: | + echo "Build artifacts:" + find dist -type f -name "*" | head -20 + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: windows-dev-artifacts + path: | + dist/*.exe + dist/*.yml + dist/*.yaml + dist/*.blockmap + retention-days: 30 + if-no-files-found: warn From cc718db75960c8c161e71f8c764378c0014a6469 Mon Sep 17 00:00:00 2001 From: mkdir700 Date: Fri, 12 Sep 2025 12:14:54 +0800 Subject: [PATCH 6/6] Revert "ci(sync): add workflow to sync main to beta (#132)" This reverts commit b75ffc9033ad1079204847246e71573dccd5d7a6. --- .github/workflows/sync-main-to-beta.yml | 37 ------------------------- 1 file changed, 37 deletions(-) delete mode 100644 .github/workflows/sync-main-to-beta.yml diff --git a/.github/workflows/sync-main-to-beta.yml b/.github/workflows/sync-main-to-beta.yml deleted file mode 100644 index 3785b4e6..00000000 --- a/.github/workflows/sync-main-to-beta.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: Sync main -> beta - -on: - push: - branches: [main] - -permissions: - contents: write - pull-requests: write - -jobs: - sync: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Create sync branch - run: | - git config user.name "github-actions[bot]" - git config user.email "41898282+github-actions[bot]@users.noreply.github.com" - git fetch origin beta - git checkout -b chore/sync-main-to-beta origin/beta - # 线性历史优先:尝试 fast-forward 或 rebase - git merge --ff-only origin/main || git rebase origin/main - git push -u origin chore/sync-main-to-beta - - - name: Open PR main -> beta - uses: peter-evans/create-pull-request@v6 - with: - title: 'chore(sync): main -> beta' - body: 'Auto sync main into beta after a merge to main.' - base: beta - branch: chore/sync-main-to-beta - labels: sync, automated - draft: false