Skip to content

Commit

Permalink
use js plugin system
Browse files Browse the repository at this point in the history
  • Loading branch information
Pylogmon committed Jun 23, 2024
1 parent 0cad553 commit 250a291
Show file tree
Hide file tree
Showing 7 changed files with 40 additions and 387 deletions.
61 changes: 15 additions & 46 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,74 +1,43 @@
name: Build
on: push
permissions: write-all

jobs:
check:
build:
runs-on: ubuntu-latest
outputs:
name: ${{ steps.getname.outputs.NAME }}
icon: ${{ steps.getname.outputs.ICON }}
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Install zip
run: sudo apt-get install -y zip jq
- name: Install jq
run: sudo apt-get install -y jq
- id: getname
run: |
echo "NAME=$(cat info.json | jq '.id' | tr -d '"')" >> "$GITHUB_OUTPUT"
echo "ICON=$(cat info.json | jq '.icon' | tr -d '"')" >> "$GITHUB_OUTPUT"
build-for-windows:
needs: check
strategy:
fail-fast: false
matrix:
platform: [windows-latest]
target: [x86_64-pc-windows-msvc]
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 1
echo "NAME=$(cat info.json | jq '.id' | tr -d '"')" >> "$GITHUB_ENV"
echo "ICON=$(cat info.json | jq '.icon' | tr -d '"')" >> "$GITHUB_ENV"
- name: Download PaddleOCR-json
run: |
powershell -c "invoke-webrequest -uri https://github.com/hiroi-sora/PaddleOCR-json/releases/download/v1.3.0/PaddleOCR-json_v.1.3.0.7z -outfile PaddleOCR-json_v.1.3.0.7z"
powershell -c "invoke-webrequest -uri https://github.com/hiroi-sora/PaddleOCR-json/releases/download/v1.3.1/PaddleOCR-json_v.1.3.1.7z -outfile PaddleOCR-json_v.1.3.1.7z"
mkdir PPOCR
- name: extract-7z-action
uses: DuckSoft/extract-7z-action@v1.0
with:
pathSource: PaddleOCR-json_v.1.3.0.7z
pathSource: PaddleOCR-json_v.1.3.1.7z
pathTarget: PPOCR
- name: Install Rust Stable
uses: dtolnay/rust-toolchain@stable
- name: install toolchain
run: |
rustup target add ${{ matrix.target }}
rustup toolchain install --force-non-host stable-${{ matrix.target }}
- name: Build
run: cargo build --release --target ${{ matrix.target }}
- name: Rename
run: move target/${{ matrix.target }}/release/plugin.dll ./plugin.dll
- uses: vimtor/action-zip@v1
with:
files: info.json ${{needs.check.outputs.icon}} plugin.dll PPOCR
dest: ${{needs.check.outputs.name}}.potext
files: info.json ${{ env.ICON }} main.js PPOCR
dest: ${{ env.NAME }}.potext
- name: Upload Artifacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.target }}
path: "*.potext"
if-no-files-found: error
- name: Wrap
if: startsWith(github.ref, 'refs/tags')
uses: vimtor/action-zip@v1
with:
files: ${{needs.check.outputs.name}}.potext
dest: ${{ matrix.target }}.zip
- name: Upload Release
if: startsWith(github.ref, 'refs/tags')
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v2
with:
token: ${{ secrets.TOKEN }}
files: ${{ matrix.target }}.zip
token: ${{ secrets.GITHUB_TOKEN }}
files: "*.potext"
1 change: 0 additions & 1 deletion .gitignore

This file was deleted.

257 changes: 0 additions & 257 deletions Cargo.lock

This file was deleted.

12 changes: 0 additions & 12 deletions Cargo.toml

This file was deleted.

2 changes: 1 addition & 1 deletion info.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"id": "[plugin].com.pot-app.paddle",
"id": "plugin.com.pot-app.paddle",
"plugin_type": "recognize",
"icon": "paddle.png",
"display": "Paddle OCR",
Expand Down
24 changes: 24 additions & 0 deletions main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
async function recognize(_base64, lang, options) {
const { utils } = options;
const { run, cacheDir, pluginDir } = utils;

let result = await run(`${pluginDir}/PaddleOCR-json_v.1.3.1/PaddleOCR-json.exe`, [
"use_angle_cls=true",
"cls=true",
`--image_path=${cacheDir}/pot_screenshot_cut.png`,
`--config_path=PaddleOCR-json_v.1.3.1/models/config_${lang}.txt`,
]);
if (result.status === 0) {
let out = result.stdout;
out = out.split("OCR init completed.");
out = out[1].trim();
let json = JSON.parse(out);
let target = "";
for (let line of json.data) {
target += `${line.text}\n`;
}
return target.trim();
} else {
throw Error(result.stderr);
}
}
Loading

0 comments on commit 250a291

Please sign in to comment.