|
@@ -5,7 +5,7 @@ import { StringSession } from 'telegram/sessions'
|
|
|
import bigInt from 'big-integer'
|
|
import bigInt from 'big-integer'
|
|
|
import { Task, TaskStatus } from '../entities/task.entity'
|
|
import { Task, TaskStatus } from '../entities/task.entity'
|
|
|
import { TaskItem, TaskItemStatus } from '../entities/task-item.entity'
|
|
import { TaskItem, TaskItemStatus } from '../entities/task-item.entity'
|
|
|
-import { Sender } from '../entities/sender.entity'
|
|
|
|
|
|
|
+import { TgUser } from '../entities/sender.entity'
|
|
|
import { SenderService } from './sender.service'
|
|
import { SenderService } from './sender.service'
|
|
|
import { TgClientService } from './tgClient.service'
|
|
import { TgClientService } from './tgClient.service'
|
|
|
import { ChatGroupService } from './chat-group.service'
|
|
import { ChatGroupService } from './chat-group.service'
|
|
@@ -15,20 +15,20 @@ export class TestService {
|
|
|
private readonly app: FastifyInstance
|
|
private readonly app: FastifyInstance
|
|
|
private readonly taskRepository: Repository<Task>
|
|
private readonly taskRepository: Repository<Task>
|
|
|
private readonly taskItemRepository: Repository<TaskItem>
|
|
private readonly taskItemRepository: Repository<TaskItem>
|
|
|
- private readonly senderRepository: Repository<Sender>
|
|
|
|
|
|
|
+ private readonly senderRepository: Repository<TgUser>
|
|
|
private readonly senderService: SenderService
|
|
private readonly senderService: SenderService
|
|
|
private readonly tgClientService: TgClientService
|
|
private readonly tgClientService: TgClientService
|
|
|
private readonly chatGroupService: ChatGroupService
|
|
private readonly chatGroupService: ChatGroupService
|
|
|
private senderSendLimit = 5
|
|
private senderSendLimit = 5
|
|
|
private senderUsageInBatch: Map<string, number> = new Map()
|
|
private senderUsageInBatch: Map<string, number> = new Map()
|
|
|
private senderCursor = 0
|
|
private senderCursor = 0
|
|
|
- private senderCache: Sender[] = []
|
|
|
|
|
|
|
+ private senderCache: TgUser[] = []
|
|
|
|
|
|
|
|
constructor(app: FastifyInstance) {
|
|
constructor(app: FastifyInstance) {
|
|
|
this.app = app
|
|
this.app = app
|
|
|
this.taskRepository = app.dataSource.getRepository(Task)
|
|
this.taskRepository = app.dataSource.getRepository(Task)
|
|
|
this.taskItemRepository = app.dataSource.getRepository(TaskItem)
|
|
this.taskItemRepository = app.dataSource.getRepository(TaskItem)
|
|
|
- this.senderRepository = app.dataSource.getRepository(Sender)
|
|
|
|
|
|
|
+ this.senderRepository = app.dataSource.getRepository(TgUser)
|
|
|
this.senderService = new SenderService(app)
|
|
this.senderService = new SenderService(app)
|
|
|
this.tgClientService = new TgClientService()
|
|
this.tgClientService = new TgClientService()
|
|
|
this.chatGroupService = new ChatGroupService(app)
|
|
this.chatGroupService = new ChatGroupService(app)
|
|
@@ -91,7 +91,7 @@ export class TestService {
|
|
|
let totalSuccess = 0
|
|
let totalSuccess = 0
|
|
|
let totalFailed = 0
|
|
let totalFailed = 0
|
|
|
|
|
|
|
|
- const pickSender = async (): Promise<Sender> => {
|
|
|
|
|
|
|
+ const pickSender = async (): Promise<TgUser> => {
|
|
|
if (this.senderCache.length === 0) {
|
|
if (this.senderCache.length === 0) {
|
|
|
this.senderCache = await this.senderRepository.find({
|
|
this.senderCache = await this.senderRepository.find({
|
|
|
where: { delFlag: false },
|
|
where: { delFlag: false },
|
|
@@ -266,7 +266,7 @@ export class TestService {
|
|
|
message: 'dcId 和 authKey 必须同时传参'
|
|
message: 'dcId 和 authKey 必须同时传参'
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- let sender: Sender | null = null
|
|
|
|
|
|
|
+ let sender: TgUser | null = null
|
|
|
let sessionString: string | null = null
|
|
let sessionString: string | null = null
|
|
|
|
|
|
|
|
if (session) {
|
|
if (session) {
|
|
@@ -1003,7 +1003,7 @@ export class TestService {
|
|
|
session?: string,
|
|
session?: string,
|
|
|
dcId?: number,
|
|
dcId?: number,
|
|
|
authKey?: string
|
|
authKey?: string
|
|
|
- ): Promise<{ sender: Sender; sessionString: string } | { error: { success: false; message: string } }> {
|
|
|
|
|
|
|
+ ): Promise<{ sender: TgUser; sessionString: string } | { error: { success: false; message: string } }> {
|
|
|
if ((dcId !== undefined && authKey === undefined) || (dcId === undefined && authKey !== undefined)) {
|
|
if ((dcId !== undefined && authKey === undefined) || (dcId === undefined && authKey !== undefined)) {
|
|
|
return {
|
|
return {
|
|
|
error: {
|
|
error: {
|
|
@@ -1013,7 +1013,7 @@ export class TestService {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- let sender: Sender | null = null
|
|
|
|
|
|
|
+ let sender: TgUser | null = null
|
|
|
let sessionString: string | null = null
|
|
let sessionString: string | null = null
|
|
|
|
|
|
|
|
if (session) {
|
|
if (session) {
|
|
@@ -1146,7 +1146,7 @@ export class TestService {
|
|
|
return null
|
|
return null
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private async pickSenderForTask(): Promise<Sender> {
|
|
|
|
|
|
|
+ private async pickSenderForTask(): Promise<TgUser> {
|
|
|
if (this.senderCache.length === 0) {
|
|
if (this.senderCache.length === 0) {
|
|
|
this.senderCache = await this.senderRepository.find({
|
|
this.senderCache = await this.senderRepository.find({
|
|
|
where: { delFlag: false },
|
|
where: { delFlag: false },
|
|
@@ -1176,7 +1176,7 @@ export class TestService {
|
|
|
return this.senderCache[0]
|
|
return this.senderCache[0]
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private async ensureSessionStringForSender(sender: Sender): Promise<string> {
|
|
|
|
|
|
|
+ private async ensureSessionStringForSender(sender: TgUser): Promise<string> {
|
|
|
if (sender.sessionStr) {
|
|
if (sender.sessionStr) {
|
|
|
return sender.sessionStr
|
|
return sender.sessionStr
|
|
|
}
|
|
}
|