@skroz/telegram-bot 1.0.7 → 1.0.9
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/index.d.ts +6 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -14
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +25 -14
package/dist/index.d.ts
CHANGED
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import { TG_CallbackQuery, TG_Message, TG_SendMessageInput, TG_SendMessageResponse, TG_SendPhotoInput, TG_Update } from '@skroz/telegram-api/dist/TelegramTypes';
|
|
2
2
|
export declare const createCallbackData: (telegramId: number | string, data: string[]) => string;
|
|
3
3
|
export declare const getCallbackData: (data: string) => string[];
|
|
4
|
-
type ExpiresInput = {
|
|
5
|
-
seconds?: number;
|
|
6
|
-
onExpire: (resultMessage: TG_Message) => void;
|
|
7
|
-
};
|
|
8
4
|
declare class TelegramBot {
|
|
9
5
|
private readonly botToken;
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
private readonly expiresMessageSeconds?;
|
|
7
|
+
constructor(botToken: string, expiresMessageSeconds?: number | undefined);
|
|
12
8
|
handleUpdate(update: TG_Update, handleCallback: (callbackQuery: TG_CallbackQuery, callbackDataParams: string[]) => Promise<void>, handleMessage: (message: TG_Message) => void): Promise<void>;
|
|
13
|
-
sendPhoto(input: TG_SendPhotoInput, message?: TG_Message,
|
|
14
|
-
sendMessage(input: TG_SendMessageInput, message?: TG_Message,
|
|
9
|
+
sendPhoto(input: TG_SendPhotoInput, message?: TG_Message, onExpire?: (resultMessage: TG_Message) => void): Promise<TG_SendMessageResponse>;
|
|
10
|
+
sendMessage(input: TG_SendMessageInput, message?: TG_Message, onExpire?: (resultMessage: TG_Message) => void): Promise<TG_SendMessageResponse>;
|
|
11
|
+
getUpdates(offset?: number): Promise<import("@skroz/telegram-api/dist/TelegramTypes").TG_GetUpdatesResponse>;
|
|
12
|
+
setWebhook(webhookUrl: string): Promise<import("@skroz/telegram-api/dist/ResultAndDescription").default>;
|
|
15
13
|
deleteWebhook(): Promise<void>;
|
|
16
14
|
}
|
|
17
15
|
export default TelegramBot;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,SAAS,EACV,MAAM,wCAAwC,CAAC;AAYhD,eAAO,MAAM,kBAAkB,eACjB,MAAM,GAAG,MAAM,QACrB,MAAM,EAAE,KACb,MAC0E,CAAC;AAG9E,eAAO,MAAM,eAAe,SAAU,MAAM,KAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,SAAS,EACV,MAAM,wCAAwC,CAAC;AAYhD,eAAO,MAAM,kBAAkB,eACjB,MAAM,GAAG,MAAM,QACrB,MAAM,EAAE,KACb,MAC0E,CAAC;AAG9E,eAAO,MAAM,eAAe,SAAU,MAAM,KAAG,MAAM,EACf,CAAC;AA6DvC,cAAM,WAAW;IAEb,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC;gBADtB,QAAQ,EAAE,MAAM,EAChB,qBAAqB,CAAC,oBAAQ;IAG3C,YAAY,CAChB,MAAM,EAAE,SAAS,EACjB,cAAc,EAAE,CACd,aAAa,EAAE,gBAAgB,EAC/B,kBAAkB,EAAE,MAAM,EAAE,KACzB,OAAO,CAAC,IAAI,CAAC,EAClB,aAAa,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,GAC3C,OAAO,CAAC,IAAI,CAAC;IAmCV,SAAS,CACb,KAAK,EAAE,iBAAiB,EACxB,OAAO,CAAC,EAAE,UAAU,EACpB,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,UAAU,KAAK,IAAI,GAC7C,OAAO,CAAC,sBAAsB,CAAC;IA2D5B,WAAW,CACf,KAAK,EAAE,mBAAmB,EAC1B,OAAO,CAAC,EAAE,UAAU,EACpB,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,UAAU,KAAK,IAAI,GAC7C,OAAO,CAAC,sBAAsB,CAAC;IAgD5B,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM;IAI1B,UAAU,CAAC,UAAU,EAAE,MAAM;IAI7B,aAAa;CAGpB;AAED,eAAe,WAAW,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -16,12 +16,10 @@ const expiresSecondsDefault = 5 * 60; // 5 минут
|
|
|
16
16
|
const createCallbackData = (telegramId, data) => [`${Date.now()}_${telegramId}`, ...data].join(callbackDivider).slice(0, 64);
|
|
17
17
|
exports.createCallbackData = createCallbackData;
|
|
18
18
|
/* не больше 64 символов по документации, внутри защита от повторных кликов */
|
|
19
|
-
const getCallbackData = (data) => data.split(callbackDivider);
|
|
19
|
+
const getCallbackData = (data) => data.split(callbackDivider).slice(1);
|
|
20
20
|
exports.getCallbackData = getCallbackData;
|
|
21
21
|
const expiredMessagesList = [];
|
|
22
|
-
const pushMessageToExpireList = (
|
|
23
|
-
// from: TG_User,
|
|
24
|
-
message, expires) => {
|
|
22
|
+
const pushMessageToExpireList = (message, expires) => {
|
|
25
23
|
const expiresAt = Date.now() + (expires.seconds || expiresSecondsDefault) * 1000;
|
|
26
24
|
expiredMessagesList.push({
|
|
27
25
|
message,
|
|
@@ -53,11 +51,9 @@ setInterval(async () => {
|
|
|
53
51
|
}
|
|
54
52
|
}, 15000);
|
|
55
53
|
class TelegramBot {
|
|
56
|
-
constructor(botToken) {
|
|
54
|
+
constructor(botToken, expiresMessageSeconds) {
|
|
57
55
|
this.botToken = botToken;
|
|
58
|
-
|
|
59
|
-
async setWebhook(webhookUrl) {
|
|
60
|
-
return telegram_api_1.default.setWebhook(this.botToken, webhookUrl);
|
|
56
|
+
this.expiresMessageSeconds = expiresMessageSeconds;
|
|
61
57
|
}
|
|
62
58
|
async handleUpdate(update, handleCallback, handleMessage) {
|
|
63
59
|
const callbackQuery = update.callback_query;
|
|
@@ -88,7 +84,7 @@ class TelegramBot {
|
|
|
88
84
|
await handleMessage(message);
|
|
89
85
|
}
|
|
90
86
|
}
|
|
91
|
-
async sendPhoto(input, message,
|
|
87
|
+
async sendPhoto(input, message, onExpire) {
|
|
92
88
|
const { chat_id, reply_markup, caption, photo } = input;
|
|
93
89
|
let sendResult;
|
|
94
90
|
const sendPhotoFunction = () => telegram_api_1.default.sendPhoto({
|
|
@@ -120,11 +116,14 @@ class TelegramBot {
|
|
|
120
116
|
sendResult = await sendPhotoFunction();
|
|
121
117
|
}
|
|
122
118
|
if (sendResult.ok && sendResult.result) {
|
|
123
|
-
if (
|
|
119
|
+
if (onExpire) {
|
|
124
120
|
pushMessageToExpireList(sendResult.result,
|
|
125
121
|
// sendResult.result,
|
|
126
122
|
// sendResult.result.from,
|
|
127
|
-
|
|
123
|
+
{
|
|
124
|
+
seconds: this.expiresMessageSeconds,
|
|
125
|
+
onExpire,
|
|
126
|
+
});
|
|
128
127
|
}
|
|
129
128
|
else {
|
|
130
129
|
deleteMessageFromExpiringList(sendResult.result);
|
|
@@ -132,7 +131,7 @@ class TelegramBot {
|
|
|
132
131
|
}
|
|
133
132
|
return sendResult;
|
|
134
133
|
}
|
|
135
|
-
async sendMessage(input, message,
|
|
134
|
+
async sendMessage(input, message, onExpire) {
|
|
136
135
|
const { chat_id, reply_markup, text } = input;
|
|
137
136
|
let sendResult;
|
|
138
137
|
const sendPhotoFunction = () => telegram_api_1.default.sendMessage({
|
|
@@ -158,8 +157,11 @@ class TelegramBot {
|
|
|
158
157
|
sendResult = await sendPhotoFunction();
|
|
159
158
|
}
|
|
160
159
|
if (sendResult.ok && sendResult.result) {
|
|
161
|
-
if (
|
|
162
|
-
pushMessageToExpireList(sendResult.result,
|
|
160
|
+
if (onExpire) {
|
|
161
|
+
pushMessageToExpireList(sendResult.result, {
|
|
162
|
+
seconds: this.expiresMessageSeconds,
|
|
163
|
+
onExpire,
|
|
164
|
+
});
|
|
163
165
|
}
|
|
164
166
|
else {
|
|
165
167
|
deleteMessageFromExpiringList(sendResult.result);
|
|
@@ -167,6 +169,12 @@ class TelegramBot {
|
|
|
167
169
|
}
|
|
168
170
|
return sendResult;
|
|
169
171
|
}
|
|
172
|
+
async getUpdates(offset) {
|
|
173
|
+
return telegram_api_1.default.getUpdates(this.botToken, offset);
|
|
174
|
+
}
|
|
175
|
+
async setWebhook(webhookUrl) {
|
|
176
|
+
return telegram_api_1.default.setWebhook(this.botToken, webhookUrl);
|
|
177
|
+
}
|
|
170
178
|
async deleteWebhook() {
|
|
171
179
|
return telegram_api_1.default.deleteWebhook(this.botToken);
|
|
172
180
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,uEAA8C;AAU9C,yDAAyD;AAEzD,kEAAkE;AAClE,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAC;AACrC,wCAAwC;AACxC,MAAM,eAAe,GAAG,OAAO,CAAC;AAChC,uCAAuC;AACvC,MAAM,qBAAqB,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,UAAU;AAEhD,8EAA8E;AACvE,MAAM,kBAAkB,GAAG,CAChC,UAA2B,EAC3B,IAAc,EACN,EAAE,CACV,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,UAAU,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAJjE,QAAA,kBAAkB,sBAI+C;AAE9E,8EAA8E;AACvE,MAAM,eAAe,GAAG,CAAC,IAAY,EAAY,EAAE,CACxD,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,uEAA8C;AAU9C,yDAAyD;AAEzD,kEAAkE;AAClE,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAC;AACrC,wCAAwC;AACxC,MAAM,eAAe,GAAG,OAAO,CAAC;AAChC,uCAAuC;AACvC,MAAM,qBAAqB,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,UAAU;AAEhD,8EAA8E;AACvE,MAAM,kBAAkB,GAAG,CAChC,UAA2B,EAC3B,IAAc,EACN,EAAE,CACV,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,UAAU,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAJjE,QAAA,kBAAkB,sBAI+C;AAE9E,8EAA8E;AACvE,MAAM,eAAe,GAAG,CAAC,IAAY,EAAY,EAAE,CACxD,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAD1B,QAAA,eAAe,mBACW;AAEvC,MAAM,mBAAmB,GAInB,EAAE,CAAC;AAET,MAAM,uBAAuB,GAAG,CAC9B,OAAmB,EACnB,OAAqB,EACrB,EAAE;IACF,MAAM,SAAS,GACb,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,qBAAqB,CAAC,GAAG,IAAI,CAAC;IAEjE,mBAAmB,CAAC,IAAI,CAAC;QACvB,OAAO;QACP,QAAQ;QACR,SAAS;QACT,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,2BAA2B;AAC3B,MAAM,oBAAoB,GAAG,GAIzB,EAAE;IACJ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC;IAC1E,mBAAmB,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,wCAAwC;AACxC,MAAM,6BAA6B,GAAG,CAAC,OAAmB,EAAE,EAAE;IAC5D,MAAM,KAAK,GAAG,mBAAmB,CAAC,SAAS,CACzC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CACvD,CAAC;IACF,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;AACH,CAAC,CAAC;AAEF,WAAW,CAAC,KAAK,IAAI,EAAE;IACrB,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;IACvC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,OAAO,CAAC,GAAG,CACf,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YACvB,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;AACH,CAAC,EAAE,KAAK,CAAC,CAAC;AAOV,MAAM,WAAW;IACf,YACmB,QAAgB,EAChB,qBAA8B;QAD9B,aAAQ,GAAR,QAAQ,CAAQ;QAChB,0BAAqB,GAArB,qBAAqB,CAAS;IAC9C,CAAC;IAEJ,KAAK,CAAC,YAAY,CAChB,MAAiB,EACjB,cAGkB,EAClB,aAA4C;QAE5C,MAAM,aAAa,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;YAE/B,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,8BAA8B;gBAC9B,oBAAoB;gBACpB,mCAAmC;gBACnC,OAAO,CAAC,iBAAiB;YAC3B,CAAC;YAED,uEAAuE;YACvE,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,gDAAgD;gBAChD,OAAO,CAAC,gBAAgB;YAC1B,CAAC;YACD,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAE7B,oCAAoC;YACpC,UAAU,CAAC,GAAG,EAAE;gBACd,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;YAEd,MAAM,cAAc,CAAC,aAAa,EAAE,IAAA,uBAAe,EAAC,IAAI,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,0BAA0B;QAC1B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC,kGAAkG;QAE9H,IAAI,CAAC,aAAa,IAAI,OAAO,EAAE,CAAC;YAC9B,8BAA8B;YAC9B,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CACb,KAAwB,EACxB,OAAoB,EACpB,QAA8C;QAE9C,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;QAExD,IAAI,UAAkC,CAAC;QAEvC,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAC7B,sBAAW,CAAC,SAAS,CACnB;YACE,OAAO;YACP,OAAO;YACP,KAAK;YACL,UAAU,EAAE,MAAM;YAClB,YAAY;SACb,EACD,IAAI,CAAC,QAAQ,CACd,CAAC;QAEJ,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,UAAU,GAAG,MAAM,sBAAW,CAAC,gBAAgB,CAC7C;oBACE,KAAK,EAAE;wBACL,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,KAAe;wBACtB,OAAO;wBACP,UAAU,EAAE,MAAM;qBACnB;oBACD,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,YAAY;oBACZ,OAAO;iBACR,EACD,IAAI,CAAC,QAAQ,CACd,CAAC;YACJ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,UAAU,GAAG,MAAM,iBAAiB,EAAE,CAAC;YACzC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACzC,CAAC;QAED,IAAI,UAAU,CAAC,EAAE,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACvC,IAAI,QAAQ,EAAE,CAAC;gBACb,uBAAuB,CACrB,UAAU,CAAC,MAAM;gBACjB,qBAAqB;gBACrB,0BAA0B;gBAC1B;oBACE,OAAO,EAAE,IAAI,CAAC,qBAAqB;oBACnC,QAAQ;iBACT,CACF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,6BAA6B,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,WAAW,CACf,KAA0B,EAC1B,OAAoB,EACpB,QAA8C;QAE9C,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QAE9C,IAAI,UAAkC,CAAC;QAEvC,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAC7B,sBAAW,CAAC,WAAW,CACrB;YACE,OAAO;YACP,IAAI;YACJ,UAAU,EAAE,MAAM;YAClB,YAAY;SACb,EACD,IAAI,CAAC,QAAQ,CACd,CAAC;QAEJ,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,UAAU,GAAG,MAAM,sBAAW,CAAC,eAAe,CAC5C;oBACE,IAAI;oBACJ,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,YAAY;oBACZ,OAAO;iBACR,EACD,IAAI,CAAC,QAAQ,CACd,CAAC;YACJ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,UAAU,GAAG,MAAM,iBAAiB,EAAE,CAAC;YACzC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACzC,CAAC;QAED,IAAI,UAAU,CAAC,EAAE,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACvC,IAAI,QAAQ,EAAE,CAAC;gBACb,uBAAuB,CAAC,UAAU,CAAC,MAAM,EAAE;oBACzC,OAAO,EAAE,IAAI,CAAC,qBAAqB;oBACnC,QAAQ;iBACT,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,6BAA6B,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAe;QAC9B,OAAO,sBAAW,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAkB;QACjC,OAAO,sBAAW,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,sBAAW,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC;CACF;AAED,kBAAe,WAAW,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skroz/telegram-bot",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.9",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": "git@gitlab.com:skroz/libs/utils.git",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -21,5 +21,5 @@
|
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@skroz/telegram-api": "^1.0.10"
|
|
23
23
|
},
|
|
24
|
-
"gitHead": "
|
|
24
|
+
"gitHead": "6a5379bc0cc9296e7fe93a4c48dae69fb8484b7d"
|
|
25
25
|
}
|
package/src/index.ts
CHANGED
|
@@ -26,17 +26,15 @@ export const createCallbackData = (
|
|
|
26
26
|
|
|
27
27
|
/* не больше 64 символов по документации, внутри защита от повторных кликов */
|
|
28
28
|
export const getCallbackData = (data: string): string[] =>
|
|
29
|
-
data.split(callbackDivider);
|
|
29
|
+
data.split(callbackDivider).slice(1);
|
|
30
30
|
|
|
31
31
|
const expiredMessagesList: {
|
|
32
|
-
// from: TG_User;
|
|
33
32
|
message: TG_Message;
|
|
34
33
|
expiresAt: number;
|
|
35
34
|
onExpire: (message: TG_Message) => void;
|
|
36
35
|
}[] = [];
|
|
37
36
|
|
|
38
37
|
const pushMessageToExpireList = (
|
|
39
|
-
// from: TG_User,
|
|
40
38
|
message: TG_Message,
|
|
41
39
|
expires: ExpiresInput
|
|
42
40
|
) => {
|
|
@@ -90,11 +88,10 @@ type ExpiresInput = {
|
|
|
90
88
|
};
|
|
91
89
|
|
|
92
90
|
class TelegramBot {
|
|
93
|
-
constructor(
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
}
|
|
91
|
+
constructor(
|
|
92
|
+
private readonly botToken: string,
|
|
93
|
+
private readonly expiresMessageSeconds?: number
|
|
94
|
+
) {}
|
|
98
95
|
|
|
99
96
|
async handleUpdate(
|
|
100
97
|
update: TG_Update,
|
|
@@ -141,7 +138,7 @@ class TelegramBot {
|
|
|
141
138
|
async sendPhoto(
|
|
142
139
|
input: TG_SendPhotoInput,
|
|
143
140
|
message?: TG_Message,
|
|
144
|
-
|
|
141
|
+
onExpire?: (resultMessage: TG_Message) => void
|
|
145
142
|
): Promise<TG_SendMessageResponse> {
|
|
146
143
|
const { chat_id, reply_markup, caption, photo } = input;
|
|
147
144
|
|
|
@@ -183,12 +180,15 @@ class TelegramBot {
|
|
|
183
180
|
}
|
|
184
181
|
|
|
185
182
|
if (sendResult.ok && sendResult.result) {
|
|
186
|
-
if (
|
|
183
|
+
if (onExpire) {
|
|
187
184
|
pushMessageToExpireList(
|
|
188
185
|
sendResult.result,
|
|
189
186
|
// sendResult.result,
|
|
190
187
|
// sendResult.result.from,
|
|
191
|
-
|
|
188
|
+
{
|
|
189
|
+
seconds: this.expiresMessageSeconds,
|
|
190
|
+
onExpire,
|
|
191
|
+
}
|
|
192
192
|
);
|
|
193
193
|
} else {
|
|
194
194
|
deleteMessageFromExpiringList(sendResult.result);
|
|
@@ -201,7 +201,7 @@ class TelegramBot {
|
|
|
201
201
|
async sendMessage(
|
|
202
202
|
input: TG_SendMessageInput,
|
|
203
203
|
message?: TG_Message,
|
|
204
|
-
|
|
204
|
+
onExpire?: (resultMessage: TG_Message) => void
|
|
205
205
|
): Promise<TG_SendMessageResponse> {
|
|
206
206
|
const { chat_id, reply_markup, text } = input;
|
|
207
207
|
|
|
@@ -237,8 +237,11 @@ class TelegramBot {
|
|
|
237
237
|
}
|
|
238
238
|
|
|
239
239
|
if (sendResult.ok && sendResult.result) {
|
|
240
|
-
if (
|
|
241
|
-
pushMessageToExpireList(sendResult.result,
|
|
240
|
+
if (onExpire) {
|
|
241
|
+
pushMessageToExpireList(sendResult.result, {
|
|
242
|
+
seconds: this.expiresMessageSeconds,
|
|
243
|
+
onExpire,
|
|
244
|
+
});
|
|
242
245
|
} else {
|
|
243
246
|
deleteMessageFromExpiringList(sendResult.result);
|
|
244
247
|
}
|
|
@@ -247,6 +250,14 @@ class TelegramBot {
|
|
|
247
250
|
return sendResult;
|
|
248
251
|
}
|
|
249
252
|
|
|
253
|
+
async getUpdates(offset?: number) {
|
|
254
|
+
return TelegramApi.getUpdates(this.botToken, offset);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
async setWebhook(webhookUrl: string) {
|
|
258
|
+
return TelegramApi.setWebhook(this.botToken, webhookUrl);
|
|
259
|
+
}
|
|
260
|
+
|
|
250
261
|
async deleteWebhook() {
|
|
251
262
|
return TelegramApi.deleteWebhook(this.botToken);
|
|
252
263
|
}
|