Skip to content

Commit

Permalink
Merge branch 'Clansty:rainbowcat' into rainbowcat
Browse files Browse the repository at this point in the history
  • Loading branch information
Nofated095 authored Aug 6, 2023
2 parents 8724551 + eba16ac commit 2ca6e5b
Show file tree
Hide file tree
Showing 8 changed files with 35 additions and 13 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
"eviltransform": "^0.2.2",
"file-type": "^17.1.4",
"fluent-ffmpeg": "^2.1.2",
"icqq": "^0.4.11",
"icqq": "^0.4.12",
"lodash": "^4.17.21",
"log4js": "^6.6.1",
"nodejs-base64": "^2.0.0",
Expand Down
1 change: 1 addition & 0 deletions prisma/schema.prisma
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ model QqBot {
platform Int @default(0)
Instance Instance[]
signApi String?
signVer String?
}

model Message {
Expand Down
11 changes: 10 additions & 1 deletion src/client/OicqClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ interface CreateOicqParams {
password: string;
platform: Platform;
signApi?: string;
signVer?: string;
// 当需要验证手机时调用此方法,应该返回收到的手机验证码
onVerifyDevice: (phone: string) => Promise<string>;
// 当滑块时调用此方法,返回 ticker,也可以返回假值改用扫码登录
Expand All @@ -49,6 +50,8 @@ export default class OicqClient extends Client {

private static existedBots = {} as { [id: number]: OicqClient };

private isOnMessageCreated = false;

public static create(params: CreateOicqParams) {
if (this.existedBots[params.id]) {
return Promise.resolve(this.existedBots[params.id]);
Expand Down Expand Up @@ -90,7 +93,12 @@ export default class OicqClient extends Client {
client.offTrap('system.login.qrcode', loginQrCodeHandler);
client.offTrap('system.login.error', loginErrorHandler);
client.offTrap('system.online', successLoginHandler);
client.trap('message', client.onMessage);

if (!client.isOnMessageCreated) {
client.trap('message', client.onMessage);
client.isOnMessageCreated = true;
};

resolve(client);
};

Expand Down Expand Up @@ -124,6 +132,7 @@ export default class OicqClient extends Client {
ffmpeg_path: process.env.FFMPEG_PATH,
ffprobe_path: process.env.FFPROBE_PATH,
sign_api_addr: params.signApi,
ver: params.signVer,
});
client.on('system.login.device', loginDeviceHandler);
client.on('system.login.slider', loginSliderHandler);
Expand Down
15 changes: 13 additions & 2 deletions src/controllers/SetupController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -87,11 +87,22 @@ export default class SetupController {
let signApi = await this.setupService.waitForOwnerInput('请输入签名服务器地址', [
[Button.text('不需要签名服务器', true, true)],
]);
signApi = setupHelper.checkSignApiAddress(signApi)
signApi = setupHelper.checkSignApiAddress(signApi);

let signVer = ""
if (signApi !== "") {
signVer = await this.setupService.waitForOwnerInput('请输入签名服务器版本,当前支持安卓(8.9.63、8.9.68、8.9.70)、Tim(3.5.1、3.5.2)', [
[Button.text('8.9.63', true, true)],
[Button.text('8.9.68', true, true)],
[Button.text('8.9.70', true, true)],
[Button.text('3.5.1', true, true)],
[Button.text('3.5.2', true, true)],
]);
};

let password = await this.setupService.waitForOwnerInput('请输入密码', undefined, true);
password = md5Hex(password);
this.oicq = await this.setupService.createOicq(uin, password, platform, signApi);
this.oicq = await this.setupService.createOicq(uin, password, platform, signApi, signVer);
this.instance.qqBotId = this.oicq.id;
await this.setupService.informOwner(`登录成功`);
}
Expand Down
1 change: 1 addition & 0 deletions src/models/Instance.ts
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@ export default class Instance {
password: this.qq.password,
platform: this.qq.platform,
signApi: this.qq.signApi,
signVer: this._qq.signVer,
onQrCode: async (file) => {
await this.ownerChat.sendMessage({
message: '请使用已登录这个账号的手机 QQ 扫描这个二维码授权',
Expand Down
6 changes: 3 additions & 3 deletions src/services/SetupService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -83,11 +83,11 @@ export default class SetupService {
});
}

public async createOicq(uin: number, password: string, platform: Platform, signApi: string) {
const dbQQBot = await db.qqBot.create({ data: { uin, password, platform, signApi } });
public async createOicq(uin: number, password: string, platform: Platform, signApi: string, signVer: string) {
const dbQQBot = await db.qqBot.create({ data: { uin, password, platform, signApi, signVer } });
return await OicqClient.create({
id: dbQQBot.id,
uin, password, platform, signApi,
uin, password, platform, signApi, signVer,
onQrCode: async (file) => {
await this.owner.sendMessage({
message: '请使用已登录这个账号的手机 QQ 扫描这个二维码授权',
Expand Down
2 changes: 1 addition & 1 deletion yarn-project.nix
Original file line number Diff line number Diff line change
Expand Up @@ -672,7 +672,7 @@ cacheEntries = {
"process@npm:0.11.10" = { filename = "process-npm-0.11.10-aeb3b641ae-bfcce49814.zip"; sha512 = "bfcce49814f7d172a6e6a14d5fa3ac92cc3d0c3b9feb1279774708a719e19acd673995226351a082a9ae99978254e320ccda4240ddc474ba31a76c79491ca7c3"; };
"min-document@npm:2.19.0" = { filename = "min-document-npm-2.19.0-458cdb3d84-da6437562e.zip"; sha512 = "da6437562ea2228041542a2384528e74e22d1daa1a4ec439c165abf0b9d8a63e17e3b8a6dc6e0c731845e85301198730426932a0e813d23f932ca668340c9623"; };
"dom-walk@npm:0.1.2" = { filename = "dom-walk-npm-0.1.2-7d20a1a8d8-19eb0ce9c6.zip"; sha512 = "19eb0ce9c6de39d5e231530685248545d9cd2bd97b2cb3486e0bfc0f2a393a9addddfd5557463a932b52fdfcf68ad2a619020cd2c74a5fe46fbecaa8e80872f3"; };
"icqq@npm:0.4.11" = { filename = "icqq-npm-0.4.11-b7fde00e2f-e18d3d5c16.zip"; sha512 = "e18d3d5c16e2caf0e4b46db5fe84ce2a9a2e50d98347e07cff69cb873a8144c46f9cc57da211c6c187c1e4fd1f81dfd8c28fb8f354b4695e362e04c5d3d2c647"; };
"icqq@npm:0.4.12" = { filename = "icqq-npm-0.4.12-58bff8373e-77ce564764.zip"; sha512 = "77ce5647645872ada9512910b0911439db67e8d3c8a8a63ee908e71fbba1bfbedec95063c79c98aa00f34991c1bd725665d6e9ebf3feef3985958246201268b5"; };
"long@npm:4.0.0" = { filename = "long-npm-4.0.0-ecd96a31ed-16afbe8f74.zip"; sha512 = "16afbe8f749c7c849db1f4de4e2e6a31ac6e617cead3bdc4f9605cb703cd20e1e9fc1a7baba674ffcca57d660a6e5b53a9e236d7b25a295d3855cca79cc06744"; };
"pngjs@npm:6.0.0" = { filename = "pngjs-npm-6.0.0-31d8d85681-ab6c285086.zip"; sha512 = "ab6c285086060087097eab9fe6b5a528a24f9e79c03dea2b4fd6264ed4fdb5beff4a3257eeeaf2a9dc18249b539609c2a4e4013c567164a1f6b5ba2c974d5ecb"; };
"triptrap@npm:0.0.17" = { filename = "triptrap-npm-0.0.17-bc0f4adce1-46cb1e4ed8.zip"; sha512 = "46cb1e4ed85f8d6c2e42993e1a0c47f7d84f97101ea64a01e24882c1c65219620ae938f9b597d8ca9f8d96ddc6bf19e03849dbff131569e4eabb67ed1560e458"; };
Expand Down
10 changes: 5 additions & 5 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2348,17 +2348,17 @@ __metadata:
languageName: node
linkType: hard

"icqq@npm:^0.4.11":
version: 0.4.11
resolution: "icqq@npm:0.4.11"
"icqq@npm:^0.4.12":
version: 0.4.12
resolution: "icqq@npm:0.4.12"
dependencies:
axios: ^1.1.2
log4js: ^6.3.0
long: ^4.0.0
pngjs: ^6.0.0
probe-image-size: ^7.2.2
triptrap: ^0.0.17
checksum: e18d3d5c16e2caf0e4b46db5fe84ce2a9a2e50d98347e07cff69cb873a8144c46f9cc57da211c6c187c1e4fd1f81dfd8c28fb8f354b4695e362e04c5d3d2c647
checksum: 77ce5647645872ada9512910b0911439db67e8d3c8a8a63ee908e71fbba1bfbedec95063c79c98aa00f34991c1bd725665d6e9ebf3feef3985958246201268b5
languageName: node
linkType: hard

Expand Down Expand Up @@ -3695,7 +3695,7 @@ __metadata:
eviltransform: ^0.2.2
file-type: ^17.1.4
fluent-ffmpeg: ^2.1.2
icqq: ^0.4.11
icqq: ^0.4.12
lodash: ^4.17.21
log4js: ^6.6.1
nodejs-base64: ^2.0.0
Expand Down

0 comments on commit 2ca6e5b

Please sign in to comment.