|
| 1 | +import { execSync } from "child_process"; |
1 | 2 | import { close_api, delay, send, startService } from "./utils/utils.js"; |
2 | 3 |
|
3 | 4 | async function qrcode() { |
4 | 5 |
|
5 | 6 | // 启动服务 |
6 | | - let api = startService() |
| 7 | + const api = startService() |
7 | 8 | await delay(2000) |
8 | 9 | let qrcode = "" |
| 10 | + const userinfo = [] |
| 11 | + const args = process.argv.slice(2); |
| 12 | + const number = parseInt(process.env.NUMBER || args[0] || "1") |
| 13 | + const pat = process.env.PAT |
9 | 14 | try { |
10 | | - // 二维码 |
11 | | - let result = await send(`/login/qr/key`, "GET", {}) |
12 | | - if (result.status === 1) { |
13 | | - console.log("下面是二维码链接,请复制到浏览器打开扫描并确定登录") |
14 | | - qrcode = result.data.qrcode |
15 | | - // console.log(result.data.qrcode) |
16 | | - // console.log(result.data.qrcode_img) |
17 | | - const img_base64 = result.data.qrcode_img; |
18 | | - const chunkSize = 1000; |
19 | | - for (let i = 0; i < img_base64.length; i += chunkSize) { |
20 | | - console.log(img_base64.slice(i, i + chunkSize)); |
| 15 | + for (let i = 0; i < number; i++) { |
| 16 | + // 二维码 |
| 17 | + const result = await send(`/login/qr/key?timestrap=${Date.now()}`, "GET", {}) |
| 18 | + if (result.status === 1) { |
| 19 | + qrcode = result.data.qrcode |
| 20 | + const img_base64 = result.data.qrcode_img; |
| 21 | + const chunkSize = 1000; |
| 22 | + console.log("二维码链接如下, 请在浏览器打开使用APP扫描并确认登录") |
| 23 | + for (let i = 0; i < img_base64.length; i += chunkSize) { |
| 24 | + console.log(img_base64.slice(i, i + chunkSize)); |
| 25 | + } |
| 26 | + } else { |
| 27 | + console.log("响应内容") |
| 28 | + console.dir(result, { depth: null }) |
| 29 | + throw new Error("请求出错") |
21 | 30 | } |
22 | | - } else { |
23 | | - console.log("响应内容") |
24 | | - console.dir(result, { depth: null }) |
25 | | - throw new Error("请求失败!请检查") |
26 | | - } |
| 31 | + console.log("正在等待,请扫描二维码并确定登录") |
| 32 | + // 登录 |
| 33 | + for (let i = 0; i < 25; i++) { |
| 34 | + const timestrap = Date.now(); |
| 35 | + const res = await send(`/login/qr/check?key=${qrcode}×trap=${timestrap}`, "GET", {}) |
| 36 | + const status = res?.data?.status |
| 37 | + switch (status) { |
| 38 | + case 0: |
| 39 | + console.log("二维码已过期") |
| 40 | + break |
27 | 41 |
|
28 | | - console.log() |
29 | | - console.log("正在等待,请扫描二维码并确定登录") |
30 | | - if (qrcode == "") { |
31 | | - throw new Error("二维码异常") |
32 | | - } |
33 | | - // 登录 |
34 | | - let logined = false |
35 | | - for (let i = 0; i < 50; i++) { |
36 | | - const timestrap = Date.now(); |
37 | | - const res = await send(`/login/qr/check?key=${qrcode}×trap=${timestrap}`, "GET", {}) |
38 | | - const status = res?.data?.status |
39 | | - switch (status) { |
40 | | - case 0: |
41 | | - console.log("二维码已过期") |
42 | | - break |
| 42 | + case 1: |
| 43 | + // console.log("未扫描二维码") |
| 44 | + break |
43 | 45 |
|
44 | | - case 1: |
45 | | - // console.log("未扫描二维码") |
| 46 | + case 2: |
| 47 | + // console.log("二维码未确认,请点击确认登录") |
| 48 | + break |
| 49 | + case 4: |
| 50 | + console.log("登录成功!") |
| 51 | + userinfo.push({ |
| 52 | + userid: res.data.userid, |
| 53 | + token: res.data.token |
| 54 | + }) |
| 55 | + break; |
| 56 | + default: |
| 57 | + console.log("请求出错") |
| 58 | + console.dir(res, { depth: null }) |
| 59 | + } |
| 60 | + if (status == 4 || status == 0) { |
46 | 61 | break |
47 | | - |
48 | | - case 2: |
49 | | - // console.log("二维码未确认,请点击确认登录") |
| 62 | + } |
| 63 | + if (i == 24) { |
| 64 | + console.log("等待超时\n") |
50 | 65 | break |
51 | | - case 4: |
52 | | - logined = true |
53 | | - console.log("登录成功!") |
54 | | - console.log("第一行是token,第二行是userid") |
55 | | - console.log(res.data.token) |
56 | | - console.log(res.data.userid) |
57 | | - break; |
58 | | - default: |
59 | | - console.log("请求出错。") |
60 | | - console.dir(res, { depth: null }) |
61 | | - } |
62 | | - if (logined) { |
63 | | - break |
| 66 | + } |
| 67 | + await delay(5000) |
64 | 68 | } |
65 | | - await delay(2000) |
| 69 | + } |
| 70 | + const userinfoJSON = JSON.stringify(userinfo) |
| 71 | + if (pat) { |
| 72 | + execSync(`gh secret set USERINFO -b"${userinfoJSON}" --repo ${process.env.GITHUB_REPOSITORY}`); |
| 73 | + console.log("secret <USERINFO> 更改成功") |
| 74 | + } else { |
| 75 | + console.log("登录信息如下,把它添加到secret USERINFO 即可") |
| 76 | + console.log(userinfoJSON) |
66 | 77 | } |
67 | 78 | } finally { |
68 | 79 | close_api(api) |
|
0 commit comments