chz-telegram-bot 0.1.10 → 0.1.11

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.
@@ -16,8 +16,8 @@ export declare class CommandAction<TActionState extends IActionState> implements
16
16
  readonly condition: CommandCondition<TActionState>;
17
17
  readonly stateConstructor: () => TActionState;
18
18
  readonly key: ActionKey;
19
- readonly readme: string;
20
- constructor(trigger: CommandTrigger | CommandTrigger[], handler: CommandHandler<TActionState>, name: string, active: boolean, cooldown: Seconds, chatsBlacklist: number[], allowedUsers: number[], condition: CommandCondition<TActionState>, stateConstructor: () => TActionState, readme: string);
19
+ readonly readmeFactory: (botName: string) => string;
20
+ constructor(trigger: CommandTrigger | CommandTrigger[], handler: CommandHandler<TActionState>, name: string, active: boolean, cooldown: Seconds, chatsBlacklist: number[], allowedUsers: number[], condition: CommandCondition<TActionState>, stateConstructor: () => TActionState, readmeFactory: (botName: string) => string);
21
21
  exec(ctx: MessageContext<TActionState>): Promise<import("../../types/response").BotResponse[]>;
22
22
  private checkIfShouldBeExecuted;
23
23
  private checkTrigger;
@@ -1 +1 @@
1
- {"version":3,"file":"commandAction.d.ts","sourceRoot":"","sources":["../../../entities/actions/commandAction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAGjD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEzE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG5D,qBAAa,aAAa,CAAC,YAAY,SAAS,YAAY,CACxD,YAAW,gBAAgB,CAAC,YAAY,CAAC;IAEzC,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACnD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,YAAY,CAAC;IAC9C,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAGpB,OAAO,EAAE,cAAc,GAAG,cAAc,EAAE,EAC1C,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,EACrC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,OAAO,EACjB,cAAc,EAAE,MAAM,EAAE,EACxB,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,EAAE,gBAAgB,CAAC,YAAY,CAAC,EACzC,gBAAgB,EAAE,MAAM,YAAY,EACpC,MAAM,EAAE,MAAM;IAgBZ,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,YAAY,CAAC;IAkD5C,OAAO,CAAC,uBAAuB;IAqC/B,OAAO,CAAC,YAAY;CAmCvB"}
1
+ {"version":3,"file":"commandAction.d.ts","sourceRoot":"","sources":["../../../entities/actions/commandAction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAGjD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEzE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG5D,qBAAa,aAAa,CAAC,YAAY,SAAS,YAAY,CACxD,YAAW,gBAAgB,CAAC,YAAY,CAAC;IAEzC,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACnD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,YAAY,CAAC;IAC9C,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;gBAGhD,OAAO,EAAE,cAAc,GAAG,cAAc,EAAE,EAC1C,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,EACrC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,OAAO,EACjB,cAAc,EAAE,MAAM,EAAE,EACxB,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,EAAE,gBAAgB,CAAC,YAAY,CAAC,EACzC,gBAAgB,EAAE,MAAM,YAAY,EACpC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM;IAgBxC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,YAAY,CAAC;IAkD5C,OAAO,CAAC,uBAAuB;IAqC/B,OAAO,CAAC,YAAY;CAmCvB"}
@@ -10,7 +10,7 @@ const toArray_1 = require("../../helpers/toArray");
10
10
  const commandTriggerCheckResult_1 = require("../../dtos/commandTriggerCheckResult");
11
11
  const noop_1 = require("../../helpers/noop");
12
12
  class CommandAction {
13
- constructor(trigger, handler, name, active, cooldown, chatsBlacklist, allowedUsers, condition, stateConstructor, readme) {
13
+ constructor(trigger, handler, name, active, cooldown, chatsBlacklist, allowedUsers, condition, stateConstructor, readmeFactory) {
14
14
  this.triggers = (0, toArray_1.toArray)(trigger);
15
15
  this.handler = handler;
16
16
  this.name = name;
@@ -20,7 +20,7 @@ class CommandAction {
20
20
  this.allowedUsers = allowedUsers;
21
21
  this.condition = condition;
22
22
  this.stateConstructor = stateConstructor;
23
- this.readme = readme;
23
+ this.readmeFactory = readmeFactory;
24
24
  this.key = `command:${this.name.replace('.', '-')}`;
25
25
  }
26
26
  async exec(ctx) {
@@ -11,6 +11,7 @@ export declare class BotInstance {
11
11
  private readonly storage;
12
12
  private readonly scheduler;
13
13
  private readonly logger;
14
+ private readonly botInfo;
14
15
  readonly name: string;
15
16
  private readonly telegraf;
16
17
  private readonly commands;
@@ -1 +1 @@
1
- {"version":3,"file":"botInstance.d.ts","sourceRoot":"","sources":["../../entities/botInstance.ts"],"names":[],"mappings":"AAKA,OAAO,EAAuB,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAO5D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAKhE,qBAAa,WAAW;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAqB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAEjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgC;IACzD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkC;IAC5D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;IACpD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyB;gBAEnC,OAAO,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE;YACL,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;YACxC,SAAS,EAAE,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;YAC3C,aAAa,EAAE,iBAAiB,EAAE,CAAC;SACtC,CAAC;QACF,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,gCAAgC,CAAC,EAAE,OAAO,CAAC;QAC3C,QAAQ,CAAC,EAAE;YACP,aAAa,CAAC,EAAE,cAAc,CAAC;YAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,SAAS,CAAC,EAAE,UAAU,CAAC;SAC1B,CAAC;KACL;IAoDD,OAAO,CAAC,6BAA6B;IA4CrC,OAAO,CAAC,+BAA+B;IA2EvC,OAAO,CAAC,2BAA2B;IAiC7B,IAAI,CAAC,IAAI,EAAE,MAAM;YAaT,YAAY;YAuCZ,cAAc;CA2B/B"}
1
+ {"version":3,"file":"botInstance.d.ts","sourceRoot":"","sources":["../../entities/botInstance.ts"],"names":[],"mappings":"AAKA,OAAO,EAAuB,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAO5D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAMhE,qBAAa,WAAW;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAqB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IAExC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgC;IACzD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkC;IAC5D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;IACpD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyB;gBAEnC,OAAO,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE;YACL,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;YACxC,SAAS,EAAE,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;YAC3C,aAAa,EAAE,iBAAiB,EAAE,CAAC;SACtC,CAAC;QACF,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,gCAAgC,CAAC,EAAE,OAAO,CAAC;QAC3C,QAAQ,CAAC,EAAE;YACP,aAAa,CAAC,EAAE,cAAc,CAAC;YAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,SAAS,CAAC,EAAE,UAAU,CAAC;SAC1B,CAAC;KACL;IAwDD,OAAO,CAAC,6BAA6B;IA4CrC,OAAO,CAAC,+BAA+B;IA2EvC,OAAO,CAAC,2BAA2B;IAiC7B,IAAI,CAAC,IAAI,EAAE,MAAM;YAaT,YAAY;YAuCZ,cAAc;CA2B/B"}
@@ -21,12 +21,15 @@ const inlineQueryContext_1 = require("./context/inlineQueryContext");
21
21
  const helpAction_1 = require("../builtin/helpAction");
22
22
  class BotInstance {
23
23
  constructor(options) {
24
+ this.telegraf = new telegraf_1.Telegraf(options.token);
25
+ this.telegraf.launch();
26
+ this.botInfo = this.telegraf.botInfo;
24
27
  this.name = options.name;
25
28
  this.commands =
26
29
  options.actions.commands.length > 0
27
30
  ? [
28
31
  (0, helpAction_1.buildHelpCommand)(options.actions.commands
29
- .map((x) => x.readme)
32
+ .map((x) => x.readmeFactory(this.botInfo.username))
30
33
  .filter((x) => !!x)),
31
34
  ...options.actions.commands
32
35
  ]
@@ -35,7 +38,6 @@ class BotInstance {
35
38
  this.inlineQueries = options.actions.inlineQueries;
36
39
  this.chats = options.chats;
37
40
  const actions = [...this.commands, ...this.scheduled];
38
- this.telegraf = new telegraf_1.Telegraf(options.token);
39
41
  this.logger = options.services?.logger ?? new jsonLogger_1.JsonLogger();
40
42
  this.scheduler =
41
43
  options.services?.scheduler ??
@@ -49,7 +51,6 @@ class BotInstance {
49
51
  this.initializeScheduledProcessing(options.scheduledPeriod ?? (0, timeConvertions_1.hoursToSeconds)(1));
50
52
  this.storage.saveMetadata(actions, this.name);
51
53
  this.logger.logWithTraceId(this.name, (0, traceFactory_1.createTrace)(this, this.name, 'Start'), 'System', 'Starting bot...');
52
- this.telegraf.launch();
53
54
  }
54
55
  initializeScheduledProcessing(period) {
55
56
  if (this.scheduled.length > 0) {
@@ -12,7 +12,7 @@ export declare class CommandActionBuilderWithState<TActionState extends IActionS
12
12
  name: string;
13
13
  trigger: CommandTrigger | CommandTrigger[];
14
14
  active: boolean;
15
- readme: string;
15
+ readmeFactory: null | ((botName: string) => string);
16
16
  cooldownSeconds: Seconds;
17
17
  blacklist: number[];
18
18
  allowedUsers: number[];
@@ -44,7 +44,7 @@ export declare class CommandActionBuilderWithState<TActionState extends IActionS
44
44
  * @param condition Condition check predicate
45
45
  */
46
46
  when(condition: CommandCondition<TActionState>): this;
47
- withHelp(readme: string): this;
47
+ withHelp(readmeFactory: (botName: string) => string): this;
48
48
  /** If called during building, action is marked as disabled and never checked. */
49
49
  disabled(): this;
50
50
  /** Sets action cooldown.
@@ -1 +1 @@
1
- {"version":3,"file":"commandActionBuilder.d.ts","sourceRoot":"","sources":["../../../helpers/builders/commandActionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAGvD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D;;GAEG;AACH,qBAAa,6BAA6B,CAAC,YAAY,SAAS,YAAY;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,cAAc,GAAG,cAAc,EAAE,CAAM;IAEhD,MAAM,UAAQ;IACd,MAAM,SAAM;IACZ,eAAe,EAAE,OAAO,CAAgB;IACxC,SAAS,EAAE,MAAM,EAAE,CAAM;IACzB,YAAY,EAAE,MAAM,EAAE,CAAM;IAC5B,gBAAgB,EAAE,MAAM,YAAY,CAAC;IACrC,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,CAAa;IAClD,SAAS,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAa;IAEtD;;;;OAIG;gBACS,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,YAAY;IAK9D;;;;;OAKG;IACH,EAAE,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc,EAAE;IAM7C;;OAEG;IACH,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE;IAM1B;;OAEG;IACH,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC;IAMxC;;OAEG;IACH,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,YAAY,CAAC;IAM9C,QAAQ,CAAC,MAAM,EAAE,MAAM;IAMvB,iFAAiF;IACjF,QAAQ;IAMR;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO;IAMzB;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM;IAMzB,oBAAoB;IACpB,KAAK;CAcR;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,6BAA6B,CAAC,eAAe,CAAC;IACpF;;OAEG;gBACS,IAAI,EAAE,MAAM;CAG3B"}
1
+ {"version":3,"file":"commandActionBuilder.d.ts","sourceRoot":"","sources":["../../../helpers/builders/commandActionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAGvD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D;;GAEG;AACH,qBAAa,6BAA6B,CAAC,YAAY,SAAS,YAAY;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,cAAc,GAAG,cAAc,EAAE,CAAM;IAEhD,MAAM,UAAQ;IACd,aAAa,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,CAAQ;IAC3D,eAAe,EAAE,OAAO,CAAgB;IACxC,SAAS,EAAE,MAAM,EAAE,CAAM;IACzB,YAAY,EAAE,MAAM,EAAE,CAAM;IAC5B,gBAAgB,EAAE,MAAM,YAAY,CAAC;IACrC,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,CAAa;IAClD,SAAS,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAa;IAEtD;;;;OAIG;gBACS,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,YAAY;IAK9D;;;;;OAKG;IACH,EAAE,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc,EAAE;IAM7C;;OAEG;IACH,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE;IAM1B;;OAEG;IACH,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC;IAMxC;;OAEG;IACH,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,YAAY,CAAC;IAM9C,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM;IAMnD,iFAAiF;IACjF,QAAQ;IAMR;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO;IAMzB;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM;IAMzB,oBAAoB;IACpB,KAAK;CAcR;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,6BAA6B,CAAC,eAAe,CAAC;IACpF;;OAEG;gBACS,IAAI,EAAE,MAAM;CAG3B"}
@@ -17,7 +17,7 @@ class CommandActionBuilderWithState {
17
17
  constructor(name, stateConstructor) {
18
18
  this.trigger = [];
19
19
  this.active = true;
20
- this.readme = '';
20
+ this.readmeFactory = null;
21
21
  this.cooldownSeconds = 0;
22
22
  this.blacklist = [];
23
23
  this.allowedUsers = [];
@@ -57,8 +57,8 @@ class CommandActionBuilderWithState {
57
57
  this.condition = condition;
58
58
  return this;
59
59
  }
60
- withHelp(readme) {
61
- this.readme = readme;
60
+ withHelp(readmeFactory) {
61
+ this.readmeFactory = readmeFactory;
62
62
  return this;
63
63
  }
64
64
  /** If called during building, action is marked as disabled and never checked. */
@@ -83,7 +83,7 @@ class CommandActionBuilderWithState {
83
83
  }
84
84
  /** Builds action */
85
85
  build() {
86
- return new commandAction_1.CommandAction(this.trigger, this.handler, this.name, this.active, this.cooldownSeconds, this.blacklist, this.allowedUsers, this.condition, this.stateConstructor, this.readme);
86
+ return new commandAction_1.CommandAction(this.trigger, this.handler, this.name, this.active, this.cooldownSeconds, this.blacklist, this.allowedUsers, this.condition, this.stateConstructor, this.readmeFactory != null ? this.readmeFactory : (_) => '');
87
87
  }
88
88
  }
89
89
  exports.CommandActionBuilderWithState = CommandActionBuilderWithState;
@@ -24,7 +24,7 @@ export class CommandAction<TActionState extends IActionState>
24
24
  readonly condition: CommandCondition<TActionState>;
25
25
  readonly stateConstructor: () => TActionState;
26
26
  readonly key: ActionKey;
27
- readonly readme: string;
27
+ readonly readmeFactory: (botName: string) => string;
28
28
 
29
29
  constructor(
30
30
  trigger: CommandTrigger | CommandTrigger[],
@@ -36,7 +36,7 @@ export class CommandAction<TActionState extends IActionState>
36
36
  allowedUsers: number[],
37
37
  condition: CommandCondition<TActionState>,
38
38
  stateConstructor: () => TActionState,
39
- readme: string
39
+ readmeFactory: (botName: string) => string
40
40
  ) {
41
41
  this.triggers = toArray(trigger);
42
42
  this.handler = handler;
@@ -47,7 +47,7 @@ export class CommandAction<TActionState extends IActionState>
47
47
  this.allowedUsers = allowedUsers;
48
48
  this.condition = condition;
49
49
  this.stateConstructor = stateConstructor;
50
- this.readme = readme;
50
+ this.readmeFactory = readmeFactory;
51
51
 
52
52
  this.key = `command:${this.name.replace('.', '-')}` as ActionKey;
53
53
  }
@@ -24,12 +24,14 @@ import { InlineQueryAction } from './actions/inlineQueryAction';
24
24
  import { IncomingInlineQuery } from '../dtos/incomingQuery';
25
25
  import { InlineQueryContext } from './context/inlineQueryContext';
26
26
  import { buildHelpCommand } from '../builtin/helpAction';
27
+ import { UserFromGetMe } from 'telegraf/types';
27
28
 
28
29
  export class BotInstance {
29
30
  private readonly api: TelegramApiService;
30
31
  private readonly storage: IStorageClient;
31
32
  private readonly scheduler: IScheduler;
32
33
  private readonly logger: ILogger;
34
+ private readonly botInfo: UserFromGetMe;
33
35
 
34
36
  readonly name: string;
35
37
  private readonly telegraf: Telegraf;
@@ -56,13 +58,19 @@ export class BotInstance {
56
58
  scheduler?: IScheduler;
57
59
  };
58
60
  }) {
61
+ this.telegraf = new Telegraf(options.token);
62
+ this.telegraf.launch();
63
+ this.botInfo = this.telegraf.botInfo!;
64
+
59
65
  this.name = options.name;
60
66
  this.commands =
61
67
  options.actions.commands.length > 0
62
68
  ? [
63
69
  buildHelpCommand(
64
70
  options.actions.commands
65
- .map((x) => x.readme)
71
+ .map((x) =>
72
+ x.readmeFactory(this.botInfo.username)
73
+ )
66
74
  .filter((x) => !!x)
67
75
  ),
68
76
  ...options.actions.commands
@@ -73,7 +81,6 @@ export class BotInstance {
73
81
  this.chats = options.chats;
74
82
 
75
83
  const actions = [...this.commands, ...this.scheduled];
76
- this.telegraf = new Telegraf(options.token);
77
84
  this.logger = options.services?.logger ?? new JsonLogger();
78
85
  this.scheduler =
79
86
  options.services?.scheduler ??
@@ -104,7 +111,6 @@ export class BotInstance {
104
111
  'System',
105
112
  'Starting bot...'
106
113
  );
107
- this.telegraf.launch();
108
114
  }
109
115
 
110
116
  private initializeScheduledProcessing(period: Seconds) {
package/eslint.config.js CHANGED
@@ -5,6 +5,20 @@ export default tseslint.config(
5
5
  eslint.configs.recommended,
6
6
  ...tseslint.configs.recommended,
7
7
  {
8
+ rules: {
9
+ '@typescript-eslint/no-unused-vars': [
10
+ 'error',
11
+ {
12
+ args: 'all',
13
+ argsIgnorePattern: '^_',
14
+ caughtErrors: 'all',
15
+ caughtErrorsIgnorePattern: '^_',
16
+ destructuredArrayIgnorePattern: '^_',
17
+ varsIgnorePattern: '^_',
18
+ ignoreRestSiblings: true
19
+ }
20
+ ]
21
+ },
8
22
  ignores: ['dist/*']
9
23
  }
10
24
  );
@@ -16,7 +16,7 @@ export class CommandActionBuilderWithState<TActionState extends IActionState> {
16
16
  trigger: CommandTrigger | CommandTrigger[] = [];
17
17
 
18
18
  active = true;
19
- readme = '';
19
+ readmeFactory: null | ((botName: string) => string) = null;
20
20
  cooldownSeconds: Seconds = 0 as Seconds;
21
21
  blacklist: number[] = [];
22
22
  allowedUsers: number[] = [];
@@ -73,8 +73,8 @@ export class CommandActionBuilderWithState<TActionState extends IActionState> {
73
73
  return this;
74
74
  }
75
75
 
76
- withHelp(readme: string) {
77
- this.readme = readme;
76
+ withHelp(readmeFactory: (botName: string) => string) {
77
+ this.readmeFactory = readmeFactory;
78
78
 
79
79
  return this;
80
80
  }
@@ -117,7 +117,7 @@ export class CommandActionBuilderWithState<TActionState extends IActionState> {
117
117
  this.allowedUsers,
118
118
  this.condition,
119
119
  this.stateConstructor,
120
- this.readme
120
+ this.readmeFactory != null ? this.readmeFactory : (_) => ''
121
121
  );
122
122
  }
123
123
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chz-telegram-bot",
3
- "version": "0.1.10",
3
+ "version": "0.1.11",
4
4
  "type": "module",
5
5
  "dependencies": {
6
6
  "async-sema": "^3.1.1",