Skip to content

Commit 18f9ad3

Browse files
committed
feat: 新增发布微信小程序的逻辑
1 parent c192ff2 commit 18f9ad3

File tree

2 files changed

+35
-1
lines changed

2 files changed

+35
-1
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@ package-lock.json
44

55
cache/*.png
66
login-qr.png
7+
release.png
78

89
.eslintcache

src/weixin/index.ts

+34-1
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,40 @@ export async function toSubmitAudit() {
147147
* 去发布
148148
*/
149149
export async function toRelease() {
150-
console.log('正在开发中...')
150+
const statusEle = await page.waitForSelector('#js_container_box > div.col_main > div > div:nth-child(2) > div.main_bd > span > div.code_mod.mod_default_box.code_version_test > div.mod_default_bd.default_box.test_version > div > div > div.code_version_log_hd > div > div > span > p > span')
151+
// 检查审核状态
152+
const statusText = await page.evaluate((el) => {
153+
return el?.innerHTML
154+
}, statusEle)
155+
if (statusText !== '审核通过待发布')
156+
throw new Error(statusText)
157+
const submitBtn = await page.waitForSelector('#js_container_box > div.col_main > div > div:nth-child(2) > div.main_bd > span > div.code_mod.mod_default_box.code_version_test > div.mod_default_bd.default_box.test_version > div > div > div.code_version_log_ft > div > div.weui-desktop-popover__wrp > span > div > button')
158+
// 点击提交审核
159+
await submitBtn?.click()
160+
const submitConfirm = await page.waitForSelector('#js_container_box > div.col_main > div > div:nth-child(2) > div:nth-child(9) > div.weui-desktop-dialog__wrp.self-weui-modal > div > div.weui-desktop-dialog__ft > div > div:nth-child(1) > button')
161+
await submitConfirm?.click()
162+
163+
const releaseCodeImagePath = pathResolve('../cache/release.png')
164+
const codeEle = await page.waitForSelector('#js_container_box > div.col_main > div > div:nth-child(2) > div.qrcheck_dialog_simple > div.weui-desktop-dialog__wrp.self-weui-modal > div > div.weui-desktop-dialog__bd > div > div > div > div.weui-desktop-qrcheck__qrcode-area > div > img')
165+
await page.evaluate((el) => {
166+
return new Promise((resolve, reject) => {
167+
if (el) {
168+
el.onload = resolve
169+
el.onerror = reject
170+
}
171+
else {
172+
reject(new Error('获取发布二维码失败'))
173+
}
174+
})
175+
}, codeEle)
176+
await codeEle?.screenshot({ path: releaseCodeImagePath, type: 'png' })
177+
spinner.clear()
178+
console.clear()
179+
spinner.succeed(yellow('请使用微信扫描二维码发布'))
180+
console.log(await showQrCodeToTerminal(releaseCodeImagePath))
181+
const result = await page.waitForSelector('#js_container_box > div.col_main > div > div:nth-child(2) > div.main_bd > span > div.code_mod.mod_default_box.code_version_test > div.mod_default_bd.default_box.test_version > div > div > p')
182+
if (result)
183+
spinner.succeed('发布成功')
151184
}
152185

153186
export default async function weixinRobot(opts: InputOptions) {

0 commit comments

Comments
 (0)