Skip to content

Commit

Permalink
feat: |Actions| Tag build add worker-with-wasm-mail-parser.zip (#590)
Browse files Browse the repository at this point in the history
  • Loading branch information
dreamhunter2333 authored Feb 22, 2025
1 parent 3a542a8 commit c3987d3
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 8 deletions.
16 changes: 15 additions & 1 deletion .github/workflows/tag_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,24 @@ jobs:
- name: Build Backend
run: cd worker && pnpm install --no-frozen-lockfile && pnpm build

- name: Move worker.js
run: cd worker/dist && mv worker.js ../

- name: Build Worker with wasm mail parser
run: |
cd worker
echo "Using mail-parser-wasm-worker"
pnpm add mail-parser-wasm-worker
git apply ../.github/config/mail-parser-wasm-worker.patch
echo "Applied mail-parser-wasm-worker patch"
pnpm build
zip -r worker-with-wasm-mail-parser.zip dist/worker.js dist/*.wasm
- name: Upload to Release
uses: softprops/action-gh-release@v2
with:
files: |
frontend/frontend.zip
frontend/telegram-frontend.zip
worker/dist/worker.js
worker/worker.js
worker/worker-with-wasm-mail-parser.zip
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

- feat: | Worker | 支持多语言
- feat: | Worker | `NO_LIMIT_SEND_ROLE` 配置支持多角色, 逗号分割
- feat: | Actions | build 里增加 `worker-with-wasm-mail-parser.zip` 支持 UI 部署带 `wasm` 的 worker

## v0.8.7

Expand Down
22 changes: 20 additions & 2 deletions vitepress-docs/docs/zh/guide/feature/mail_parser_wasm_worker.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,25 @@
> [!NOTE]
> 如果你使用了 webhook 转发,或者 telegram bot 接受邮件,但是邮件内容是乱码,或者无法解析,你对解析的需要更高的要求,可以使用这个功能。
## 修改代码
## UI 部署

1. 下载 [worker-with-wasm-mail-parser.zip](https://github.com/dreamhunter2333/cloudflare_temp_email/releases/latest/download/worker-with-wasm-mail-parser.zip)

2. 回到 `Overview`,找到刚刚创建的 worker,点击 `Edit Code`, 删除原来的文件,上传 `worker.js``wasm` 后缀的文件, 点击 `Deploy`

> [!NOTE]
> 上传需要先点击左侧菜单的 Explorer,
> 在文件列表的窗口里点击鼠标右键,在右键菜单里找到 `Upload`,
> 请参考下面的截图
>
> 参考: [issues156](https://github.com/dreamhunter2333/cloudflare_temp_email/issues/156#issuecomment-2079453822)
![worker2](/ui_install/worker-2.png)
![worker-upload](/ui_install/worker-upload.png)

## CLI 部署

### 修改代码

```bash
cd worker
Expand Down Expand Up @@ -56,7 +74,7 @@ export const commonParseMail = async (raw_mail: string | undefined | null): Prom
}
```

## 部署
### 部署

```bash
cd worker
Expand Down
10 changes: 5 additions & 5 deletions worker/src/common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -339,26 +339,26 @@ export const getAllowDomains = async (c: Context<HonoCustomType>): Promise<strin
return user_role?.domains || getDefaultDomains(c);;
}

export async function sendWebhook(settings: WebhookSettings, formatMap: WebhookMail): Promise<{ success: boolean, message?: string }> {
export async function sendWebhook(
settings: WebhookSettings, formatMap: WebhookMail
): Promise<{ success: boolean, message?: string }> {
// send webhook
let body = settings.body;
for (const key of Object.keys(formatMap)) {
/* eslint-disable no-useless-escape */
body = body.replace(
new RegExp(`\\$\\{${key}\\}`, "g"),
JSON.stringify(
formatMap[key as keyof WebhookMail]
).replace(/^"(.*)"$/, '\$1')
).replace(/^"(.*)"$/, '$1')
);
/* eslint-enable no-useless-escape */
}
console.log("send webhook", settings.url, settings.method, settings.headers, body);
const response = await fetch(settings.url, {
method: settings.method,
headers: JSON.parse(settings.headers),
body: body
});
if (!response.ok) {
console.log("send webhook error", settings.url, settings.method, settings.headers, body);
console.log("send webhook error", response.status, response.statusText);
return { success: false, message: `send webhook error: ${response.status} ${response.statusText}` };
}
Expand Down

0 comments on commit c3987d3

Please sign in to comment.