gramstax 0.0.1 → 0.0.2
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/src/index.cjs +2 -0
- package/dist/src/index.cjs.map +1 -0
- package/dist/src/{core/bot.d.ts → index.d.cts} +500 -12
- package/dist/src/index.d.ts +1292 -5
- package/dist/src/index.js +2 -4
- package/dist/src/index.js.map +1 -0
- package/package.json +10 -9
- package/dist/package.json +0 -52
- package/dist/src/base/general.d.ts +0 -7
- package/dist/src/base/general.d.ts.map +0 -1
- package/dist/src/base/general.js +0 -15
- package/dist/src/base/guard.d.ts +0 -13
- package/dist/src/base/guard.d.ts.map +0 -1
- package/dist/src/base/guard.js +0 -8
- package/dist/src/base/index.d.ts +0 -4
- package/dist/src/base/index.d.ts.map +0 -1
- package/dist/src/base/index.js +0 -3
- package/dist/src/base/page.d.ts +0 -263
- package/dist/src/base/page.d.ts.map +0 -1
- package/dist/src/base/page.js +0 -805
- package/dist/src/cache/external.d.ts +0 -10
- package/dist/src/cache/external.d.ts.map +0 -1
- package/dist/src/cache/external.js +0 -16
- package/dist/src/cache/index.d.ts +0 -2
- package/dist/src/cache/index.d.ts.map +0 -1
- package/dist/src/cache/index.js +0 -1
- package/dist/src/core/bot.d.ts.map +0 -1
- package/dist/src/core/bot.js +0 -465
- package/dist/src/core/ctx.d.ts +0 -60
- package/dist/src/core/ctx.d.ts.map +0 -1
- package/dist/src/core/ctx.js +0 -175
- package/dist/src/core/index.d.ts +0 -3
- package/dist/src/core/index.d.ts.map +0 -1
- package/dist/src/core/index.js +0 -2
- package/dist/src/grammy/index.d.ts +0 -2
- package/dist/src/grammy/index.d.ts.map +0 -1
- package/dist/src/grammy/index.js +0 -1
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/template/engine.d.ts +0 -34
- package/dist/src/template/engine.d.ts.map +0 -1
- package/dist/src/template/engine.js +0 -122
- package/dist/src/template/index.d.ts +0 -3
- package/dist/src/template/index.d.ts.map +0 -1
- package/dist/src/template/index.js +0 -2
- package/dist/src/template/manager.d.ts +0 -111
- package/dist/src/template/manager.d.ts.map +0 -1
- package/dist/src/template/manager.js +0 -237
- package/src/base/general.ts +0 -17
- package/src/base/guard.ts +0 -10
- package/src/base/index.ts +0 -3
- package/src/base/page.ts +0 -1111
- package/src/cache/external.ts +0 -15
- package/src/cache/index.ts +0 -1
- package/src/core/bot.ts +0 -535
- package/src/core/ctx.ts +0 -177
- package/src/core/index.ts +0 -2
- package/src/grammy/index.ts +0 -1
- package/src/index.ts +0 -4
- package/src/template/engine.ts +0 -167
- package/src/template/index.ts +0 -2
- package/src/template/manager.ts +0 -280
- package/src/types/page.d.ts +0 -4
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Keyv } from "keyv";
|
|
2
|
-
type IMore = Omit<Required<ConstructorParameters<typeof Keyv>>[0], `store` | `namespace` | `ttl`> & {
|
|
3
|
-
forceStore?: any;
|
|
4
|
-
};
|
|
5
|
-
export declare class CacheExternal extends Keyv {
|
|
6
|
-
url: string | `memory`;
|
|
7
|
-
constructor(url?: string | `memory`, namespace?: string, ttl?: number, more?: IMore);
|
|
8
|
-
}
|
|
9
|
-
export {};
|
|
10
|
-
//# sourceMappingURL=external.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"external.d.ts","sourceRoot":"","sources":["../../../src/cache/external.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,KAAK,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,KAAK,CAAC,GAAG;IAAE,UAAU,CAAC,EAAE,GAAG,CAAA;CAAE,CAAA;AAExH,qBAAa,aAAc,SAAQ,IAAI;IAClB,GAAG,EAAE,MAAM,GAAG,QAAQ;gBAAtB,GAAG,GAAE,MAAM,GAAG,QAAmB,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,KAAK;CAQrG"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Keyv } from "keyv";
|
|
2
|
-
import KeyvRedis from "@keyv/redis";
|
|
3
|
-
export class CacheExternal extends Keyv {
|
|
4
|
-
url;
|
|
5
|
-
constructor(url = `memory`, namespace, ttl, more) {
|
|
6
|
-
let store;
|
|
7
|
-
if (url.startsWith(`redis`))
|
|
8
|
-
store = new KeyvRedis(url);
|
|
9
|
-
if (url === `memory`)
|
|
10
|
-
store = new Map();
|
|
11
|
-
if (more?.forceStore)
|
|
12
|
-
store = more.forceStore;
|
|
13
|
-
super({ store, namespace, ttl });
|
|
14
|
-
this.url = url;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cache/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA"}
|
package/dist/src/cache/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./external";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../../../src/core/bot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAI3B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,GAAG,EAAmB,KAAK,QAAQ,EAAE,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAA;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C,qBAAa,QAAQ;IACZ,eAAe,EAAE,eAAe,CAAA;IAChC,aAAa,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAC5B,YAAY,EAAE,aAAa,CAAA;IAC3B,KAAK;aAqQG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;iBACrB,MAAM,EAAE;;;sBAzFiB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;;;sBAHd,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;;;;;;;MA1KvC;IACxB,GAAG,EAAE,aAAa,CAAA;IAClB,GAAG,EAAE,GAAG,CAAA;gBAEI,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,aAAa,CAAC;QAAC,YAAY,CAAC,EAAE,aAAa,CAAC;QAAC,aAAa,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAAC,eAAe,CAAC,EAAE,eAAe,CAAA;KAAE;IAgC1K,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC;IAIhC,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IASlF,OAAO,CAAC,EAAE,EAAE,OAAO;IAIb,UAAU;IAQV,UAAU,CAAC,OAAO,EAAE,MAAM;IAoChC,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,UAAO;IAW5C,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM;IAO/C,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,IAAI,CAAC,KAAK;IAkDnD,SAAS;aAgGD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;iBACrB,MAAM,EAAE;;;sBAzFiB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;;;sBAHd,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBAApB,MAAM;sBAAQ,MAAM;;;sBA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"}
|
package/dist/src/core/bot.js
DELETED
|
@@ -1,465 +0,0 @@
|
|
|
1
|
-
import { Ctx } from "./ctx";
|
|
2
|
-
import { serve } from "bun";
|
|
3
|
-
import { readdirSync } from "node:fs";
|
|
4
|
-
import { join, parse } from "node:path";
|
|
5
|
-
import { CacheExternal } from "../cache";
|
|
6
|
-
import { LoggingPretty } from "logging-pretty";
|
|
7
|
-
import { TemplateManager } from "../template";
|
|
8
|
-
import { Bot, webhookCallback } from "grammy";
|
|
9
|
-
export class Gramstax {
|
|
10
|
-
templateManager;
|
|
11
|
-
cacheKeyboard;
|
|
12
|
-
cacheSession;
|
|
13
|
-
pages = this.pageLoads();
|
|
14
|
-
log;
|
|
15
|
-
bot;
|
|
16
|
-
constructor(params) {
|
|
17
|
-
this.log = params.log || new LoggingPretty();
|
|
18
|
-
this.cacheSession = params.cacheSession || new CacheExternal(`memory`, `session`);
|
|
19
|
-
this.cacheKeyboard = params.cacheKeyboard || new Map();
|
|
20
|
-
this.templateManager = params.templateManager || new TemplateManager({ path: null });
|
|
21
|
-
this.bot = new Bot(params.token);
|
|
22
|
-
this.bot.catch(this.onCatch);
|
|
23
|
-
this.bot.on(`callback_query:data`, this.onCallbackQueryData.bind(this)); // Handle callback queries from inline keyboards
|
|
24
|
-
this.bot.on(`message:text`, this.onMessageText.bind(this)); // Handle global text messages
|
|
25
|
-
this.bot.on(`message:photo`, this.onMessagePhoto.bind(this)); // Handle global photo messages
|
|
26
|
-
this.bot.on(`message:video`, this.onMessageVideo.bind(this)); // Handle global video messages
|
|
27
|
-
this.bot.on(`message:audio`, this.onMessageAudio.bind(this)); // Handle global audio messages
|
|
28
|
-
this.bot.on(`message:document`, this.onMessageDocument.bind(this)); // Handle global document messages
|
|
29
|
-
this.bot.on(`message:animation`, this.onMessageAnimation.bind(this)); // Handle global animation messages
|
|
30
|
-
this.bot.on(`message:voice`, this.onMessageVoice.bind(this)); // Handle global voice messages
|
|
31
|
-
this.bot.on(`message:video_note`, this.onMessageVideoNote.bind(this)); // Handle global video note messages
|
|
32
|
-
this.bot.on(`message:sticker`, this.onMessageSticker.bind(this)); // Handle global sticker messages
|
|
33
|
-
this.bot.on(`message:location`, this.onMessageLocation.bind(this)); // Handle global location messages
|
|
34
|
-
this.bot.on(`message:contact`, this.onMessageContact.bind(this)); // Handle global contact messages
|
|
35
|
-
// Graceful shutdown
|
|
36
|
-
process.once(`SIGINT`, () => this.bot.stop());
|
|
37
|
-
process.once(`SIGTERM`, () => this.bot.stop());
|
|
38
|
-
if (params.deploy.startsWith(`polling`)) {
|
|
39
|
-
this.runPolling();
|
|
40
|
-
}
|
|
41
|
-
else if (params.deploy.startsWith(`webhook`)) {
|
|
42
|
-
this.runWebhook(params.deploy.split(`webhook:`)[1]);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
onCatch(error) {
|
|
46
|
-
this.log.error(`[Bot.catch]: ${String(error)}`);
|
|
47
|
-
}
|
|
48
|
-
onStart(botInfo, method, data) {
|
|
49
|
-
const { username } = botInfo;
|
|
50
|
-
if (method == `polling`) {
|
|
51
|
-
this.log.success(`Telegram bot polling started: ${username}`);
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
this.log.success(`Telegram bot webhook started: ${username} (${data})`);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
initCtx(ct) {
|
|
58
|
-
return new Ctx(ct, this.templateManager, this.cacheSession, this.cacheKeyboard);
|
|
59
|
-
}
|
|
60
|
-
async runPolling() {
|
|
61
|
-
this.bot.start({
|
|
62
|
-
onStart: async (botInfo) => {
|
|
63
|
-
this.onStart(botInfo, `polling`, null);
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
async runWebhook(baseUrl) {
|
|
68
|
-
const handleUpdate = webhookCallback(this.bot, `bun`);
|
|
69
|
-
const pathWebhook = `/telegram-webhook`;
|
|
70
|
-
serve({
|
|
71
|
-
fetch(req) {
|
|
72
|
-
const { pathname } = new URL(req.url);
|
|
73
|
-
if (pathname === pathWebhook) {
|
|
74
|
-
if (req.method === `POST`) {
|
|
75
|
-
return handleUpdate(req);
|
|
76
|
-
}
|
|
77
|
-
return new Response(`OK`, { status: 200 });
|
|
78
|
-
}
|
|
79
|
-
if (pathname === `/` && req.method === `GET`) {
|
|
80
|
-
const timestamp = new Date().toISOString();
|
|
81
|
-
return new Response(JSON.stringify({ timestamp }), {
|
|
82
|
-
status: 200,
|
|
83
|
-
headers: { "Content-Type": `application/json` }
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
// Jika tidak cocok
|
|
87
|
-
return new Response(`Not found`, { status: 404 });
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
const data = await this.bot.api.getWebhookInfo();
|
|
91
|
-
const webhookUrl = baseUrl.endsWith(`/`) ? baseUrl.slice(0, -1) + pathWebhook : baseUrl + pathWebhook;
|
|
92
|
-
if (data.url != webhookUrl) {
|
|
93
|
-
await this.bot.api.setWebhook(webhookUrl);
|
|
94
|
-
}
|
|
95
|
-
const botInfo = await this.bot.api.getMe();
|
|
96
|
-
this.onStart(botInfo, `webhook`, webhookUrl);
|
|
97
|
-
}
|
|
98
|
-
pageCompile(Page, redacted = true) {
|
|
99
|
-
if (Page?.template !== undefined) {
|
|
100
|
-
this.templateManager.compile(Page.data.name, Page.template);
|
|
101
|
-
if (redacted) {
|
|
102
|
-
Page.template = undefined; // redacted to reduce memory
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
Page.template = undefined;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
pageBuildData(Page, filePath) {
|
|
110
|
-
if (Page?.data === undefined) {
|
|
111
|
-
Page.data = Page.buildData();
|
|
112
|
-
}
|
|
113
|
-
Page.data.name = parse(filePath).name;
|
|
114
|
-
}
|
|
115
|
-
pageSorts(Page, pages) {
|
|
116
|
-
const name = Page.data.name;
|
|
117
|
-
const proto = Page.prototype;
|
|
118
|
-
const partPayload = `Payload`;
|
|
119
|
-
const partCommand = `Command`;
|
|
120
|
-
const partCaption = `Caption`;
|
|
121
|
-
const partFree = `Free`;
|
|
122
|
-
const pd = pages.dynamic;
|
|
123
|
-
const pds = pages.dynamicSpesific;
|
|
124
|
-
const upFirst = (s) => s.charAt(0).toUpperCase() + s.slice(1);
|
|
125
|
-
const getPureFuncName = (func) => func.replace(partPayload, ``).replace(partCommand, ``).replace(partCaption, ``).replace(partFree, ``);
|
|
126
|
-
const buildSessionMethod = (func, name) => proto[`buildSessionMethod${upFirst(func)}`](name);
|
|
127
|
-
// all
|
|
128
|
-
pages.all[name] = Page;
|
|
129
|
-
for (let index = 0; index < pages.lenListFuncStaticSession; index++) {
|
|
130
|
-
const func = pages.listFuncStaticSession[index];
|
|
131
|
-
const ps = pages.static[func];
|
|
132
|
-
const psi = pages.staticIntent[func];
|
|
133
|
-
const pss = pages.staticSession[func];
|
|
134
|
-
const value = { name, func };
|
|
135
|
-
const p = ps || psi;
|
|
136
|
-
if (p !== undefined) {
|
|
137
|
-
const _name = func.includes(partCommand) ? `/${name}` : name;
|
|
138
|
-
p[proto.buildIntent(_name, func.startsWith(`callback`))] = value;
|
|
139
|
-
}
|
|
140
|
-
// staticSession
|
|
141
|
-
if (pss !== undefined) {
|
|
142
|
-
pss[buildSessionMethod(func, name)] = value;
|
|
143
|
-
}
|
|
144
|
-
// dynamicStatic
|
|
145
|
-
if (func.toLowerCase().endsWith(`free`)) {
|
|
146
|
-
pds[getPureFuncName(func)].push(value);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
// all
|
|
150
|
-
if (proto.free) {
|
|
151
|
-
pd.push(name);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
pageLoads() {
|
|
155
|
-
this.log.info(`Load pages..`);
|
|
156
|
-
const path = join(process.cwd(), `src`, `pages`);
|
|
157
|
-
const files = readdirSync(path);
|
|
158
|
-
const initStatic = {}; // { [page.data.name]: { name: Page.data.name, func: routeFunctionName } }
|
|
159
|
-
const initStaticIntent = initStatic; // { [intent]: { name: page.data.name, func: routeFunctionName } }
|
|
160
|
-
const initStaticSession = initStatic; // { [session.method]: { name: page.data.name, func: routeFunctionName } }
|
|
161
|
-
const initDynamicSpesific = []; //
|
|
162
|
-
const listFuncStatic = [
|
|
163
|
-
// callback
|
|
164
|
-
`callback`,
|
|
165
|
-
// text
|
|
166
|
-
`text`,
|
|
167
|
-
`textCommand`,
|
|
168
|
-
// photo
|
|
169
|
-
`photoCaption`,
|
|
170
|
-
`photoCaptionCommand`,
|
|
171
|
-
// video
|
|
172
|
-
`videoCaption`,
|
|
173
|
-
`videoCaptionCommand`,
|
|
174
|
-
// audio
|
|
175
|
-
`audioCaption`,
|
|
176
|
-
`audioCaptionCommand`,
|
|
177
|
-
// document
|
|
178
|
-
`documentCaption`,
|
|
179
|
-
`documentCaptionCommand`,
|
|
180
|
-
// animation
|
|
181
|
-
`animationCaption`,
|
|
182
|
-
`animationCaptionCommand`,
|
|
183
|
-
// voice
|
|
184
|
-
`voiceCaption`,
|
|
185
|
-
`voiceCaptionCommand`,
|
|
186
|
-
// videoNote
|
|
187
|
-
`videoNoteCaption`,
|
|
188
|
-
`videoNoteCaptionCommand`
|
|
189
|
-
];
|
|
190
|
-
const listFuncStaticIntent = [
|
|
191
|
-
// callback
|
|
192
|
-
`callbackPayload`,
|
|
193
|
-
// text
|
|
194
|
-
`textPayload`,
|
|
195
|
-
`textCommandPayload`,
|
|
196
|
-
// photo
|
|
197
|
-
`photoCaptionPayload`,
|
|
198
|
-
`photoCaptionCommandPayload`,
|
|
199
|
-
// video
|
|
200
|
-
`videoCaptionPayload`,
|
|
201
|
-
`videoCaptionCommandPayload`,
|
|
202
|
-
// audio
|
|
203
|
-
`audioCaptionPayload`,
|
|
204
|
-
`audioCaptionCommandPayload`,
|
|
205
|
-
// document
|
|
206
|
-
`documentCaptionPayload`,
|
|
207
|
-
`documentCaptionCommandPayload`,
|
|
208
|
-
// animation
|
|
209
|
-
`animationCaptionPayload`,
|
|
210
|
-
`animationCaptionCommandPayload`,
|
|
211
|
-
// voice
|
|
212
|
-
`voiceCaptionPayload`,
|
|
213
|
-
`voiceCaptionCommandPayload`,
|
|
214
|
-
// video note
|
|
215
|
-
`videoNoteCaptionPayload`,
|
|
216
|
-
`videoNoteCaptionCommandPayload`
|
|
217
|
-
];
|
|
218
|
-
const listFuncStaticSession = [
|
|
219
|
-
...listFuncStatic,
|
|
220
|
-
...listFuncStaticIntent,
|
|
221
|
-
// text
|
|
222
|
-
`textFree`,
|
|
223
|
-
// photo
|
|
224
|
-
`photoFree`,
|
|
225
|
-
// video
|
|
226
|
-
`videoFree`,
|
|
227
|
-
// audio
|
|
228
|
-
`audioFree`,
|
|
229
|
-
// document
|
|
230
|
-
`documentFree`,
|
|
231
|
-
// animation
|
|
232
|
-
`animationFree`,
|
|
233
|
-
// voice
|
|
234
|
-
`voiceFree`,
|
|
235
|
-
// videoNote
|
|
236
|
-
`videoNoteFree`,
|
|
237
|
-
// sticker
|
|
238
|
-
`stickerFree`,
|
|
239
|
-
// location
|
|
240
|
-
`locationFree`,
|
|
241
|
-
// contact
|
|
242
|
-
`contactFree`
|
|
243
|
-
];
|
|
244
|
-
const makeObject = (keys, val) => Object.fromEntries(keys.map((k) => [k, { ...val }]));
|
|
245
|
-
const pages = {
|
|
246
|
-
all: {}, // (classes) all Page
|
|
247
|
-
dynamic: [], // (dynamic) all Page function free
|
|
248
|
-
dynamicSpesific: {
|
|
249
|
-
text: initDynamicSpesific,
|
|
250
|
-
photo: initDynamicSpesific,
|
|
251
|
-
video: initDynamicSpesific,
|
|
252
|
-
audio: initDynamicSpesific,
|
|
253
|
-
document: initDynamicSpesific,
|
|
254
|
-
animation: initDynamicSpesific,
|
|
255
|
-
voice: initDynamicSpesific,
|
|
256
|
-
videoNote: initDynamicSpesific,
|
|
257
|
-
sticker: initDynamicSpesific,
|
|
258
|
-
location: initDynamicSpesific,
|
|
259
|
-
contact: initDynamicSpesific
|
|
260
|
-
},
|
|
261
|
-
static: makeObject(listFuncStatic, initStatic),
|
|
262
|
-
staticIntent: makeObject(listFuncStaticIntent, initStaticIntent),
|
|
263
|
-
staticSession: makeObject(listFuncStaticSession, initStaticSession),
|
|
264
|
-
listFuncStatic,
|
|
265
|
-
listFuncStaticIntent,
|
|
266
|
-
listFuncStaticSession,
|
|
267
|
-
lenListFuncStatic: listFuncStatic.length,
|
|
268
|
-
lenListFuncStaticIntent: listFuncStaticIntent.length,
|
|
269
|
-
lenListFuncStaticSession: listFuncStaticSession.length
|
|
270
|
-
};
|
|
271
|
-
for (const file of files) {
|
|
272
|
-
const filePath = join(path, file);
|
|
273
|
-
const module = require(filePath); // eslint-disable-line
|
|
274
|
-
const exports = Object.values(module);
|
|
275
|
-
const Page = exports[0]; // like StartPage. not have default export
|
|
276
|
-
if (Page === undefined) {
|
|
277
|
-
throw `file ${parse(filePath).name} must have export (not default) class page`;
|
|
278
|
-
}
|
|
279
|
-
// create if not exist and set name (without ext) according filePath
|
|
280
|
-
this.pageBuildData(Page, filePath);
|
|
281
|
-
// if the raw template writes directly to the Page class, do a compile
|
|
282
|
-
this.pageCompile(Page);
|
|
283
|
-
// sort route method
|
|
284
|
-
this.pageSorts(Page, pages);
|
|
285
|
-
}
|
|
286
|
-
this.log.info(`Finish load pages with total (${Object.keys(pages.all).length})`);
|
|
287
|
-
return pages;
|
|
288
|
-
}
|
|
289
|
-
async pageRoutes(ctx, fromListener) {
|
|
290
|
-
// to be reassigned
|
|
291
|
-
let Page;
|
|
292
|
-
let res;
|
|
293
|
-
// (static) priority O(1)
|
|
294
|
-
if (Page === undefined) {
|
|
295
|
-
const cd = ctx.callbackData;
|
|
296
|
-
const mt = ctx.msgText;
|
|
297
|
-
const mc = ctx.msgCaption;
|
|
298
|
-
const ps = this.pages.static;
|
|
299
|
-
for (let index = 0; index < this.pages.lenListFuncStatic; index++) {
|
|
300
|
-
const funcName = this.pages.listFuncStatic[index];
|
|
301
|
-
res = ps[funcName][cd || mt || mc];
|
|
302
|
-
if (res) {
|
|
303
|
-
break;
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
if (res !== undefined) {
|
|
307
|
-
Page = this.pages.all[res.name];
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
// (staticSession) x = method; O(x)
|
|
311
|
-
if (Page === undefined) {
|
|
312
|
-
const session = await ctx.sessionGet();
|
|
313
|
-
if (session) {
|
|
314
|
-
const mtd = session.method;
|
|
315
|
-
const pss = this.pages.staticSession;
|
|
316
|
-
for (let index = 0; index < this.pages.lenListFuncStaticSession; index++) {
|
|
317
|
-
const funcName = this.pages.listFuncStaticSession[index];
|
|
318
|
-
res = pss[funcName][mtd];
|
|
319
|
-
if (res) {
|
|
320
|
-
break;
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
if (res !== undefined) {
|
|
324
|
-
Page = this.pages.all[res.name];
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
// (staticIntent) x = startsWith; O(x)
|
|
329
|
-
if (Page === undefined) {
|
|
330
|
-
const cdi = ctx.callbackDataIntent;
|
|
331
|
-
const mti = ctx.msgTextIntent;
|
|
332
|
-
const mci = ctx.msgCaptionIntent;
|
|
333
|
-
const psi = this.pages.staticIntent;
|
|
334
|
-
for (let index = 0; index < this.pages.lenListFuncStaticIntent; index++) {
|
|
335
|
-
const funcName = this.pages.listFuncStaticIntent[index];
|
|
336
|
-
res = psi[funcName][cdi || mti || mci];
|
|
337
|
-
if (res) {
|
|
338
|
-
break;
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
if (res !== undefined) {
|
|
342
|
-
Page = this.pages.all[res.name];
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
// run
|
|
346
|
-
if (Page !== undefined && res !== undefined) {
|
|
347
|
-
const initPage = new Page(ctx);
|
|
348
|
-
const initRoute = await initPage[res.func]?.();
|
|
349
|
-
return initRoute;
|
|
350
|
-
}
|
|
351
|
-
// (dynamicSpesific) O(n)
|
|
352
|
-
const arrFree = this.pages.dynamicSpesific[fromListener] || [];
|
|
353
|
-
for (let index = 0; index < arrFree.length; index++) {
|
|
354
|
-
const value = arrFree[index];
|
|
355
|
-
if (value === undefined) {
|
|
356
|
-
continue;
|
|
357
|
-
}
|
|
358
|
-
const Page = this.pages.all[value.func];
|
|
359
|
-
if (Page === undefined) {
|
|
360
|
-
continue;
|
|
361
|
-
}
|
|
362
|
-
const initPage = new Page(ctx);
|
|
363
|
-
const initRoute = await initPage[value.name]?.();
|
|
364
|
-
// const initRoute = await initPage.route(value.name)
|
|
365
|
-
if (initRoute !== null) {
|
|
366
|
-
return initRoute; // stop when return not null
|
|
367
|
-
}
|
|
368
|
-
}
|
|
369
|
-
// (dynamic) O(n)
|
|
370
|
-
for (let index = 0; index < this.pages.dynamic.length; index++) {
|
|
371
|
-
const value = this.pages.dynamic[index];
|
|
372
|
-
if (value === undefined) {
|
|
373
|
-
continue;
|
|
374
|
-
}
|
|
375
|
-
const Page = this.pages.all[value];
|
|
376
|
-
if (Page === undefined) {
|
|
377
|
-
continue;
|
|
378
|
-
}
|
|
379
|
-
const initPage = new Page(ctx);
|
|
380
|
-
const initRoute = await initPage.free?.();
|
|
381
|
-
// const initRoute = await initPage.route(`free`)
|
|
382
|
-
if (initRoute !== null) {
|
|
383
|
-
return initRoute; // stop when return not null
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
|
-
return null;
|
|
387
|
-
}
|
|
388
|
-
async hookBeforeRoute(ctx, listenerName) {
|
|
389
|
-
// must be override
|
|
390
|
-
return true;
|
|
391
|
-
}
|
|
392
|
-
async hookErrorPage(ctx, listenerName, error, isEdit) {
|
|
393
|
-
// must be override
|
|
394
|
-
return;
|
|
395
|
-
}
|
|
396
|
-
async hookErrorInputNotFoundPage(ctx) {
|
|
397
|
-
// must be override
|
|
398
|
-
return;
|
|
399
|
-
}
|
|
400
|
-
async onMessage(ct, listenerName) {
|
|
401
|
-
const ctx = this.initCtx(ct);
|
|
402
|
-
try {
|
|
403
|
-
const before = await this.hookBeforeRoute(ctx, listenerName);
|
|
404
|
-
if (before === false) {
|
|
405
|
-
return;
|
|
406
|
-
}
|
|
407
|
-
const route = await this.pageRoutes(ctx, listenerName);
|
|
408
|
-
if (route === null) {
|
|
409
|
-
await this.hookErrorInputNotFoundPage(ctx);
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
catch (error) {
|
|
413
|
-
await this.hookErrorPage(ctx, listenerName, error, false);
|
|
414
|
-
}
|
|
415
|
-
}
|
|
416
|
-
async onCallbackQueryData(ct) {
|
|
417
|
-
const ctx = this.initCtx(ct);
|
|
418
|
-
try {
|
|
419
|
-
// answer callback query first for fast response
|
|
420
|
-
await ctx.callbackQueryAnswer();
|
|
421
|
-
const before = await this.hookBeforeRoute(ctx, `onCallbackQueryData`);
|
|
422
|
-
if (before === false) {
|
|
423
|
-
return;
|
|
424
|
-
}
|
|
425
|
-
// Check all route
|
|
426
|
-
await this.pageRoutes(ctx, `callback`);
|
|
427
|
-
}
|
|
428
|
-
catch (error) {
|
|
429
|
-
await this.hookErrorPage(ctx, `onCallbackQueryData`, error, true);
|
|
430
|
-
}
|
|
431
|
-
}
|
|
432
|
-
async onMessageText(ct) {
|
|
433
|
-
await this.onMessage(ct, `onMessageText`);
|
|
434
|
-
}
|
|
435
|
-
async onMessagePhoto(ct) {
|
|
436
|
-
await this.onMessage(ct, `onMessagePhoto`);
|
|
437
|
-
}
|
|
438
|
-
async onMessageVideo(ct) {
|
|
439
|
-
await this.onMessage(ct, `onMessageVideo`);
|
|
440
|
-
}
|
|
441
|
-
async onMessageAudio(ct) {
|
|
442
|
-
await this.onMessage(ct, `onMessageAudio`);
|
|
443
|
-
}
|
|
444
|
-
async onMessageDocument(ct) {
|
|
445
|
-
await this.onMessage(ct, `onMessageDocument`);
|
|
446
|
-
}
|
|
447
|
-
async onMessageAnimation(ct) {
|
|
448
|
-
await this.onMessage(ct, `onMessageAnimation`);
|
|
449
|
-
}
|
|
450
|
-
async onMessageVoice(ct) {
|
|
451
|
-
await this.onMessage(ct, `onMessageVoice`);
|
|
452
|
-
}
|
|
453
|
-
async onMessageVideoNote(ct) {
|
|
454
|
-
await this.onMessage(ct, `onMessageVideoNote`);
|
|
455
|
-
}
|
|
456
|
-
async onMessageSticker(ct) {
|
|
457
|
-
await this.onMessage(ct, `onMessageSticker`);
|
|
458
|
-
}
|
|
459
|
-
async onMessageLocation(ct) {
|
|
460
|
-
await this.onMessage(ct, `onMessageLocation`);
|
|
461
|
-
}
|
|
462
|
-
async onMessageContact(ct) {
|
|
463
|
-
await this.onMessage(ct, `onMessageContact`);
|
|
464
|
-
}
|
|
465
|
-
}
|
package/dist/src/core/ctx.d.ts
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { CacheExternal } from "../cache";
|
|
2
|
-
import { BaseGeneral } from "../base";
|
|
3
|
-
import { TemplateManager } from "../template";
|
|
4
|
-
import { InlineKeyboard, Keyboard, type Context } from "grammy";
|
|
5
|
-
export declare class Ctx extends BaseGeneral {
|
|
6
|
-
ct: Context;
|
|
7
|
-
templateManager: TemplateManager;
|
|
8
|
-
cacheSession: CacheExternal;
|
|
9
|
-
cacheKeyboard: Map<any, any>;
|
|
10
|
-
data: {
|
|
11
|
-
name: string;
|
|
12
|
-
callbackData: (...args: any) => string | any;
|
|
13
|
-
};
|
|
14
|
-
get isPremium(): boolean;
|
|
15
|
-
get isBot(): boolean;
|
|
16
|
-
get userid(): number;
|
|
17
|
-
get username(): string;
|
|
18
|
-
get fullname(): string;
|
|
19
|
-
get firstname(): string;
|
|
20
|
-
get lastname(): string;
|
|
21
|
-
get msgText(): string;
|
|
22
|
-
get msgTextIntent(): string;
|
|
23
|
-
get msgTextPayloads(): any[];
|
|
24
|
-
get msgTextPayload(): string;
|
|
25
|
-
get msgCaption(): string;
|
|
26
|
-
get msgCaptionIntent(): string;
|
|
27
|
-
get msgPhoto(): import("grammy/types").PhotoSize[] | undefined;
|
|
28
|
-
get msgVideo(): import("grammy/types").Video | undefined;
|
|
29
|
-
get msgAudio(): import("grammy/types").Audio | undefined;
|
|
30
|
-
get callbackData(): string;
|
|
31
|
-
get callbackDataIntent(): string;
|
|
32
|
-
get callbackDataPayloads(): any[];
|
|
33
|
-
get callbackDataPayload(): string;
|
|
34
|
-
get callbackDataParts(): any[];
|
|
35
|
-
get languageCode(): any;
|
|
36
|
-
set languageCode(v: any);
|
|
37
|
-
session: {
|
|
38
|
-
method?: string;
|
|
39
|
-
params?: any;
|
|
40
|
-
};
|
|
41
|
-
constructor(ct: Context, templateManager: TemplateManager, cacheSession: CacheExternal, cacheKeyboard: Map<any, any>);
|
|
42
|
-
broadcast(ids: any[], languageCode: any[], keyboard?: Keyboard | InlineKeyboard, data?: Record<string, any>, baseId?: string, options?: any): Promise<void>;
|
|
43
|
-
reply(keyboard?: Keyboard | InlineKeyboard, data?: Record<string, any>, baseId?: string, options?: any): Promise<import("grammy/types").Message.TextMessage>;
|
|
44
|
-
replyAction(type: Parameters<typeof this.ct.replyWithChatAction>[0]): Promise<true>;
|
|
45
|
-
edit(keyboard?: Keyboard | InlineKeyboard, data?: Record<string, any>, baseId?: string, options?: any): Promise<true | (import("grammy/types").Update.Edited & import("grammy/types").Message.CommonMessage & {
|
|
46
|
-
text: string;
|
|
47
|
-
} & Partial<{
|
|
48
|
-
entities: import("grammy/types").MessageEntity[];
|
|
49
|
-
}>) | undefined>;
|
|
50
|
-
delete(): Promise<true>;
|
|
51
|
-
callbackQueryAnswer(options?: any): Promise<true | null>;
|
|
52
|
-
sessionSet(method: string, params: any, ...moreRoot: any): Promise<boolean | null>;
|
|
53
|
-
sessionGet(): Promise<{
|
|
54
|
-
method: string;
|
|
55
|
-
params: any;
|
|
56
|
-
[moreRoot: string]: any;
|
|
57
|
-
} | null>;
|
|
58
|
-
sessionClear(): Promise<boolean | null>;
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=ctx.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ctx.d.ts","sourceRoot":"","sources":["../../../src/core/ctx.ts"],"names":[],"mappings":"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"}
|