chz-telegram-bot 0.0.14 → 0.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/entities/actionExecutionResult.d.ts +7 -0
- package/dist/entities/actionExecutionResult.d.ts.map +1 -0
- package/dist/entities/{transactionResult.js → actionExecutionResult.js} +3 -2
- package/dist/entities/actions/commandAction.d.ts +4 -4
- package/dist/entities/actions/commandAction.d.ts.map +1 -1
- package/dist/entities/actions/commandAction.js +12 -11
- package/dist/entities/actions/scheduledAction.d.ts +5 -5
- package/dist/entities/actions/scheduledAction.d.ts.map +1 -1
- package/dist/entities/actions/scheduledAction.js +10 -9
- package/dist/entities/{bot.d.ts → botInstance.d.ts} +5 -5
- package/dist/entities/botInstance.d.ts.map +1 -0
- package/dist/entities/{bot.js → botInstance.js} +18 -20
- package/dist/entities/cachedStateFactory.d.ts +1 -1
- package/dist/entities/cachedStateFactory.d.ts.map +1 -1
- package/dist/entities/cachedStateFactory.js +2 -1
- package/dist/entities/commandTriggerCheckResult.d.ts +1 -1
- package/dist/entities/commandTriggerCheckResult.d.ts.map +1 -1
- package/dist/entities/commandTriggerCheckResult.js +2 -1
- package/dist/entities/context/chatContext.d.ts +1 -1
- package/dist/entities/context/chatContext.d.ts.map +1 -1
- package/dist/entities/context/chatContext.js +8 -10
- package/dist/entities/context/messageContext.d.ts +3 -3
- package/dist/entities/context/messageContext.d.ts.map +1 -1
- package/dist/entities/context/messageContext.js +14 -16
- package/dist/entities/incomingMessage.d.ts +1 -1
- package/dist/entities/incomingMessage.d.ts.map +1 -1
- package/dist/entities/incomingMessage.js +2 -1
- package/dist/entities/responses/imageMessage.d.ts +2 -2
- package/dist/entities/responses/imageMessage.d.ts.map +1 -1
- package/dist/entities/responses/imageMessage.js +2 -1
- package/dist/entities/responses/reaction.d.ts +1 -1
- package/dist/entities/responses/reaction.d.ts.map +1 -1
- package/dist/entities/responses/reaction.js +2 -1
- package/dist/entities/responses/textMessage.d.ts +2 -2
- package/dist/entities/responses/textMessage.d.ts.map +1 -1
- package/dist/entities/responses/textMessage.js +2 -1
- package/dist/entities/responses/videoMessage.d.ts +2 -2
- package/dist/entities/responses/videoMessage.d.ts.map +1 -1
- package/dist/entities/responses/videoMessage.js +2 -1
- package/dist/entities/states/actionStateBase.d.ts +2 -2
- package/dist/entities/states/actionStateBase.d.ts.map +1 -1
- package/dist/entities/states/actionStateBase.js +2 -1
- package/dist/entities/taskRecord.d.ts +1 -1
- package/dist/entities/taskRecord.d.ts.map +1 -1
- package/dist/entities/taskRecord.js +2 -1
- package/dist/helpers/builders/commandActionBuilder.d.ts +3 -3
- package/dist/helpers/builders/commandActionBuilder.d.ts.map +1 -1
- package/dist/helpers/builders/commandActionBuilder.js +9 -12
- package/dist/helpers/builders/scheduledActionBuilder.d.ts +3 -3
- package/dist/helpers/builders/scheduledActionBuilder.d.ts.map +1 -1
- package/dist/helpers/builders/scheduledActionBuilder.js +8 -10
- package/dist/helpers/noop.d.ts +1 -2
- package/dist/helpers/noop.d.ts.map +1 -1
- package/dist/helpers/noop.js +2 -1
- package/dist/helpers/toArray.d.ts +1 -1
- package/dist/helpers/toArray.d.ts.map +1 -1
- package/dist/helpers/toArray.js +1 -1
- package/dist/index.d.ts +7 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -15
- package/dist/main.d.ts +5 -5
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +6 -9
- package/dist/services/jsonFileStorage.d.ts +5 -5
- package/dist/services/jsonFileStorage.d.ts.map +1 -1
- package/dist/services/jsonFileStorage.js +2 -1
- package/dist/services/logger.d.ts +3 -3
- package/dist/services/logger.d.ts.map +1 -1
- package/dist/services/logger.js +3 -2
- package/dist/services/taskScheduler.d.ts +3 -3
- package/dist/services/taskScheduler.d.ts.map +1 -1
- package/dist/services/taskScheduler.js +8 -10
- package/dist/services/telegramApi.d.ts +6 -6
- package/dist/services/telegramApi.d.ts.map +1 -1
- package/dist/services/telegramApi.js +17 -19
- package/dist/types/actionState.d.ts +1 -1
- package/dist/types/actionState.d.ts.map +1 -1
- package/dist/types/actionWithState.d.ts +2 -2
- package/dist/types/actionWithState.d.ts.map +1 -1
- package/dist/types/commandCondition.d.ts +2 -2
- package/dist/types/commandCondition.d.ts.map +1 -1
- package/dist/types/handlers.d.ts +3 -3
- package/dist/types/handlers.d.ts.map +1 -1
- package/dist/types/replyMessage.d.ts +1 -1
- package/dist/types/replyMessage.d.ts.map +1 -1
- package/dist/types/storage.d.ts +4 -4
- package/dist/types/storage.d.ts.map +1 -1
- package/entities/{transactionResult.ts → actionExecutionResult.ts} +2 -2
- package/entities/actions/commandAction.ts +10 -10
- package/entities/actions/scheduledAction.ts +13 -13
- package/entities/{bot.ts → botInstance.ts} +17 -17
- package/entities/cachedStateFactory.ts +1 -1
- package/entities/commandTriggerCheckResult.ts +1 -1
- package/entities/context/chatContext.ts +4 -4
- package/entities/context/messageContext.ts +8 -8
- package/entities/incomingMessage.ts +1 -1
- package/entities/responses/imageMessage.ts +2 -2
- package/entities/responses/reaction.ts +1 -1
- package/entities/responses/textMessage.ts +2 -2
- package/entities/responses/videoMessage.ts +2 -2
- package/entities/states/actionStateBase.ts +2 -2
- package/entities/taskRecord.ts +1 -1
- package/helpers/builders/commandActionBuilder.ts +5 -5
- package/helpers/builders/scheduledActionBuilder.ts +4 -4
- package/helpers/noop.ts +1 -3
- package/helpers/toArray.ts +1 -1
- package/index.ts +7 -30
- package/main.ts +9 -9
- package/package.json +1 -1
- package/services/jsonFileStorage.ts +6 -6
- package/services/logger.ts +2 -2
- package/services/taskScheduler.ts +6 -6
- package/services/telegramApi.ts +15 -15
- package/types/actionState.ts +1 -1
- package/types/actionWithState.ts +2 -2
- package/types/commandCondition.ts +2 -2
- package/types/handlers.ts +3 -3
- package/types/replyMessage.ts +1 -1
- package/types/storage.ts +4 -5
- package/dist/entities/bot.d.ts.map +0 -1
- package/dist/entities/transactionResult.d.ts +0 -7
- package/dist/entities/transactionResult.d.ts.map +0 -1
package/main.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { readFile } from 'fs/promises';
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import IActionState from './types/actionState
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
2
|
+
import { IStorageClient } from './types/storage';
|
|
3
|
+
import { Logger } from './services/logger';
|
|
4
|
+
import { CommandAction } from './entities/actions/commandAction';
|
|
5
|
+
import { ScheduledAction } from './entities/actions/scheduledAction';
|
|
6
|
+
import { IActionState } from './types/actionState';
|
|
7
|
+
import { Scheduler } from './services/taskScheduler';
|
|
8
|
+
import { BotInstance } from './entities/botInstance';
|
|
9
9
|
|
|
10
10
|
const bots: BotInstance[] = [];
|
|
11
11
|
|
|
12
12
|
function log(text: string) {
|
|
13
|
-
|
|
13
|
+
Logger.logWithTraceId('ALL BOTS', 'System:Bot', 'System', text);
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
async function startBot(options: {
|
|
@@ -39,7 +39,7 @@ async function startBot(options: {
|
|
|
39
39
|
|
|
40
40
|
async function stopBots(reason: string) {
|
|
41
41
|
log(`Recieved termination code: ${reason}`);
|
|
42
|
-
|
|
42
|
+
Scheduler.stopAll();
|
|
43
43
|
log('Acquiring storage semaphore...');
|
|
44
44
|
|
|
45
45
|
log('Stopping bots...');
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { existsSync, mkdirSync } from 'fs';
|
|
2
2
|
import { dirname } from 'path';
|
|
3
|
-
import TransactionResult from '../entities/transactionResult';
|
|
4
3
|
import { mkdir, readFile, writeFile } from 'fs/promises';
|
|
5
|
-
import ActionStateBase from '../entities/states/actionStateBase';
|
|
6
|
-
import IActionState from '../types/actionState';
|
|
7
|
-
import IActionWithState from '../types/actionWithState';
|
|
8
4
|
import { Sema as Semaphore } from 'async-sema';
|
|
9
5
|
import { IStorageClient } from '../types/storage';
|
|
6
|
+
import { ActionStateBase } from '../entities/states/actionStateBase';
|
|
7
|
+
import { ActionExecutionResult } from '../entities/actionExecutionResult';
|
|
8
|
+
import { IActionState } from '../types/actionState';
|
|
9
|
+
import { IActionWithState } from '../types/actionWithState';
|
|
10
10
|
|
|
11
|
-
export
|
|
11
|
+
export class JsonFileStorage implements IStorageClient {
|
|
12
12
|
semaphore = new Semaphore(1);
|
|
13
13
|
private cache: Map<string, Record<number, IActionState>>;
|
|
14
14
|
private storagePath: string;
|
|
@@ -105,7 +105,7 @@ export default class JsonFileStorage implements IStorageClient {
|
|
|
105
105
|
async saveActionExecutionResult(
|
|
106
106
|
action: IActionWithState,
|
|
107
107
|
chatId: number,
|
|
108
|
-
transactionResult:
|
|
108
|
+
transactionResult: ActionExecutionResult
|
|
109
109
|
) {
|
|
110
110
|
await this.lock(async () => {
|
|
111
111
|
const data = await this.loadInternal(action.key);
|
package/services/logger.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import TaskRecord from '../entities/taskRecord';
|
|
1
|
+
import { TaskRecord } from '../entities/taskRecord';
|
|
2
2
|
import { secondsToMilliseconds } from '../helpers/timeConvertions';
|
|
3
3
|
import { Milliseconds, Seconds } from '../types/timeValues';
|
|
4
|
-
import
|
|
4
|
+
import { Logger } from './logger';
|
|
5
5
|
|
|
6
6
|
class TaskScheduler {
|
|
7
7
|
activeTasks: TaskRecord[] = [];
|
|
@@ -27,7 +27,7 @@ class TaskScheduler {
|
|
|
27
27
|
setTimeout(action, secondsToMilliseconds(1 as Seconds));
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
Logger.logWithTraceId(
|
|
31
31
|
ownerName,
|
|
32
32
|
`System:TaskScheduler-${ownerName}-${name}`,
|
|
33
33
|
'System',
|
|
@@ -44,7 +44,7 @@ class TaskScheduler {
|
|
|
44
44
|
ownerName: string
|
|
45
45
|
) {
|
|
46
46
|
const actionWrapper = () => {
|
|
47
|
-
|
|
47
|
+
Logger.logWithTraceId(
|
|
48
48
|
ownerName,
|
|
49
49
|
`System:TaskScheduler-${ownerName}-${name}`,
|
|
50
50
|
'System',
|
|
@@ -54,7 +54,7 @@ class TaskScheduler {
|
|
|
54
54
|
};
|
|
55
55
|
const taskId = setTimeout(actionWrapper, delay);
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
Logger.logWithTraceId(
|
|
58
58
|
ownerName,
|
|
59
59
|
`System:TaskScheduler-${ownerName}-${name}`,
|
|
60
60
|
'System',
|
|
@@ -63,4 +63,4 @@ class TaskScheduler {
|
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
export
|
|
66
|
+
export const Scheduler = new TaskScheduler();
|
package/services/telegramApi.ts
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import MessageContext from '../entities/context/messageContext';
|
|
2
|
-
import ChatContext from '../entities/context/chatContext';
|
|
3
|
-
import ImageMessage from '../entities/responses/imageMessage';
|
|
4
|
-
import TextMessage from '../entities/responses/textMessage';
|
|
5
|
-
import VideoMessage from '../entities/responses/videoMessage';
|
|
6
|
-
import taskScheduler from './taskScheduler';
|
|
7
|
-
import logger from './logger';
|
|
8
1
|
import { Telegraf } from 'telegraf';
|
|
9
|
-
import IReplyMessage from '../types/replyMessage';
|
|
10
|
-
import IncomingMessage from '../entities/incomingMessage';
|
|
11
|
-
import { Milliseconds } from '../types/timeValues';
|
|
12
|
-
import Reaction from '../entities/responses/reaction';
|
|
13
2
|
import { InputFile } from 'telegraf/types';
|
|
3
|
+
import { ChatContext } from '../entities/context/chatContext';
|
|
4
|
+
import { MessageContext } from '../entities/context/messageContext';
|
|
5
|
+
import { ImageMessage } from '../entities/responses/imageMessage';
|
|
6
|
+
import { TextMessage } from '../entities/responses/textMessage';
|
|
7
|
+
import { VideoMessage } from '../entities/responses/videoMessage';
|
|
14
8
|
import { reverseMap } from '../helpers/reverseMap';
|
|
9
|
+
import { IReplyMessage } from '../types/replyMessage';
|
|
15
10
|
import { IStorageClient } from '../types/storage';
|
|
11
|
+
import { Milliseconds } from '../types/timeValues';
|
|
12
|
+
import { Scheduler } from './taskScheduler';
|
|
13
|
+
import { Logger } from './logger';
|
|
14
|
+
import { Reaction } from '../entities/responses/reaction';
|
|
15
|
+
import { IncomingMessage } from '../entities/incomingMessage';
|
|
16
16
|
|
|
17
|
-
export
|
|
17
|
+
export class TelegramApiService {
|
|
18
18
|
botName: string;
|
|
19
19
|
telegraf: Telegraf;
|
|
20
20
|
chats: Map<number, string>;
|
|
@@ -32,7 +32,7 @@ export default class TelegramApiService {
|
|
|
32
32
|
this.chats = reverseMap(chats);
|
|
33
33
|
this.storage = storage;
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
Scheduler.createTask(
|
|
36
36
|
'MessageSending',
|
|
37
37
|
() => {
|
|
38
38
|
this.dequeueResponse();
|
|
@@ -51,7 +51,7 @@ export default class TelegramApiService {
|
|
|
51
51
|
try {
|
|
52
52
|
await this.processResponse(message);
|
|
53
53
|
} catch (error) {
|
|
54
|
-
|
|
54
|
+
Logger.errorWithTraceId(
|
|
55
55
|
this.botName,
|
|
56
56
|
message.traceId,
|
|
57
57
|
this.chats.get(message.chatId)!,
|
|
@@ -114,7 +114,7 @@ export default class TelegramApiService {
|
|
|
114
114
|
);
|
|
115
115
|
break;
|
|
116
116
|
default:
|
|
117
|
-
|
|
117
|
+
Logger.errorWithTraceId(
|
|
118
118
|
this.botName,
|
|
119
119
|
response.traceId,
|
|
120
120
|
this.chats.get(response.chatId)!,
|
package/types/actionState.ts
CHANGED
package/types/actionWithState.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import MessageContext from '../entities/context/messageContext';
|
|
2
|
-
import IActionState from './actionState';
|
|
1
|
+
import { MessageContext } from '../entities/context/messageContext';
|
|
2
|
+
import { IActionState } from './actionState';
|
|
3
3
|
|
|
4
4
|
export type CommandCondition<TActionState extends IActionState> = (
|
|
5
5
|
ctx: MessageContext<TActionState>
|
package/types/handlers.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import ChatContext from '../entities/context/chatContext';
|
|
2
|
-
import MessageContext from '../entities/context/messageContext';
|
|
3
|
-
import IActionState from './actionState';
|
|
1
|
+
import { ChatContext } from '../entities/context/chatContext';
|
|
2
|
+
import { MessageContext } from '../entities/context/messageContext';
|
|
3
|
+
import { IActionState } from './actionState';
|
|
4
4
|
import { CachedValueAccessor } from './cachedValueAccessor';
|
|
5
5
|
|
|
6
6
|
export type CommandHandler<TActionState extends IActionState> = (
|
package/types/replyMessage.ts
CHANGED
package/types/storage.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import IActionWithState from './actionWithState';
|
|
1
|
+
import { ActionExecutionResult } from '../entities/actionExecutionResult';
|
|
2
|
+
import { IActionState } from './actionState';
|
|
3
|
+
import { IActionWithState } from './actionWithState';
|
|
5
4
|
|
|
6
5
|
export interface IStorageClient {
|
|
7
6
|
close(): Promise<void>;
|
|
@@ -16,6 +15,6 @@ export interface IStorageClient {
|
|
|
16
15
|
saveActionExecutionResult(
|
|
17
16
|
action: IActionWithState,
|
|
18
17
|
chatId: number,
|
|
19
|
-
transactionResult:
|
|
18
|
+
transactionResult: ActionExecutionResult
|
|
20
19
|
): Promise<void>;
|
|
21
20
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../../entities/bot.ts"],"names":[],"mappings":"AAKA,OAAO,aAAa,MAAM,yBAAyB,CAAC;AACpD,OAAO,eAAe,MAAM,2BAA2B,CAAC;AACxD,OAAO,YAAY,MAAM,sBAAsB,CAAC;AAOhD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,GAAG,CAAqB;IAChC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,EAAE,cAAc,CAAC;gBAEZ,OAAO,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;QACxC,SAAS,EAAE,eAAe,EAAE,CAAC;QAC7B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3B,aAAa,CAAC,EAAE,cAAc,CAAC;QAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;KACxB;IAuEK,IAAI,CAAC,IAAI,EAAE,MAAM;YAYT,YAAY;YAqBZ,eAAe;CAmBhC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transactionResult.d.ts","sourceRoot":"","sources":["../../entities/transactionResult.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,sBAAsB,CAAC;AAEhD,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAClC,IAAI,EAAE,YAAY,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;gBAEV,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO;CAIxD"}
|