@codebam/cf-workers-telegram-bot 7.18.0 → 7.20.0
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/api.d.ts +30 -0
- package/dist/api.js +37 -0
- package/dist/ctx.d.ts +19 -0
- package/dist/ctx.js +109 -0
- package/dist/main/src/TelegramBot.1.d.ts +0 -0
- package/dist/main/src/TelegramBot.1.js +1 -0
- package/dist/main/src/TelegramBot.d.ts +0 -0
- package/dist/main/src/TelegramBot.js +1 -0
- package/dist/main/src/api.d.ts +14 -0
- package/dist/main/src/api.js +21 -0
- package/dist/main/src/bot_api.d.ts +10 -0
- package/dist/main/src/bot_api.js +11 -0
- package/dist/main/src/commands/ban.d.ts +5 -0
- package/dist/main/src/commands/ban.js +8 -0
- package/dist/main/src/commands/bored.d.ts +5 -0
- package/dist/main/src/commands/bored.js +7 -0
- package/dist/main/src/commands/clear.d.ts +5 -0
- package/dist/main/src/commands/clear.js +14 -0
- package/dist/main/src/commands/code.d.ts +5 -0
- package/dist/main/src/commands/code.js +4 -0
- package/dist/main/src/commands/commandlist.d.ts +5 -0
- package/dist/main/src/commands/commandlist.js +1 -0
- package/dist/main/src/commands/dog.d.ts +5 -0
- package/dist/main/src/commands/dog.js +7 -0
- package/dist/main/src/commands/duckduckgo.d.ts +5 -0
- package/dist/main/src/commands/duckduckgo.js +42 -0
- package/dist/main/src/commands/epoch.d.ts +5 -0
- package/dist/main/src/commands/epoch.js +4 -0
- package/dist/main/src/commands/getchatinfo.d.ts +5 -0
- package/dist/main/src/commands/getchatinfo.js +1 -0
- package/dist/main/src/commands/image.d.ts +5 -0
- package/dist/main/src/commands/image.js +19 -0
- package/dist/main/src/commands/joke.d.ts +5 -0
- package/dist/main/src/commands/joke.js +7 -0
- package/dist/main/src/commands/kanye.d.ts +5 -0
- package/dist/main/src/commands/kanye.js +8 -0
- package/dist/main/src/commands/mute.d.ts +5 -0
- package/dist/main/src/commands/mute.js +8 -0
- package/dist/main/src/commands/ping.d.ts +5 -0
- package/dist/main/src/commands/ping.js +1 -0
- package/dist/main/src/commands/question.d.ts +5 -0
- package/dist/main/src/commands/question.js +74 -0
- package/dist/main/src/commands/roll.d.ts +5 -0
- package/dist/main/src/commands/roll.js +6 -0
- package/dist/main/src/commands/sean.d.ts +5 -0
- package/dist/main/src/commands/sean.js +76 -0
- package/dist/main/src/commands/start.d.ts +5 -0
- package/dist/main/src/commands/start.js +1 -0
- package/dist/main/src/commands/toss.d.ts +5 -0
- package/dist/main/src/commands/toss.js +1 -0
- package/dist/main/src/commands/translate.d.ts +5 -0
- package/dist/main/src/commands/translate.js +26 -0
- package/dist/main/src/handler.d.ts +12 -0
- package/dist/main/src/handler.js +40 -0
- package/dist/main/src/libs.d.ts +5 -0
- package/dist/main/src/libs.js +7 -0
- package/dist/main/src/main.d.ts +4 -0
- package/dist/main/src/main.js +4 -0
- package/dist/main/src/telegram_api.d.ts +34 -0
- package/dist/main/src/telegram_api.js +192 -0
- package/dist/main/src/telegram_bot.d.ts +20 -0
- package/dist/main/src/telegram_bot.js +116 -0
- package/dist/main/src/telegram_commands.d.ts +22 -0
- package/dist/main/src/telegram_commands.js +21 -0
- package/dist/main/src/telegram_webhook.d.ts +10 -0
- package/dist/main/src/telegram_webhook.js +20 -0
- package/dist/main/src/types/Balance.d.ts +6 -0
- package/dist/main/src/types/Balance.js +1 -0
- package/dist/main/src/types/Bored.d.ts +10 -0
- package/dist/main/src/types/Bored.js +1 -0
- package/dist/main/src/types/ChatPermissions.d.ts +17 -0
- package/dist/main/src/types/ChatPermissions.js +1 -0
- package/dist/main/src/types/Command.d.ts +5 -0
- package/dist/main/src/types/Command.js +1 -0
- package/dist/main/src/types/CommandArgs.d.ts +5 -0
- package/dist/main/src/types/CommandArgs.js +1 -0
- package/dist/main/src/types/Commands.d.ts +3 -0
- package/dist/main/src/types/Commands.js +1 -0
- package/dist/main/src/types/Config.d.ts +20 -0
- package/dist/main/src/types/Config.js +33 -0
- package/dist/main/src/types/DDGQueryResponse.d.ts +12 -0
- package/dist/main/src/types/DDGQueryResponse.js +1 -0
- package/dist/main/src/types/DataTypes.d.ts +2 -0
- package/dist/main/src/types/DataTypes.js +1 -0
- package/dist/main/src/types/Joke.d.ts +20 -0
- package/dist/main/src/types/Joke.js +1 -0
- package/dist/main/src/types/Kanye.d.ts +4 -0
- package/dist/main/src/types/Kanye.js +1 -0
- package/dist/main/src/types/Kv.d.ts +3 -0
- package/dist/main/src/types/Kv.js +1 -0
- package/dist/main/src/types/PartialTelegramUpdate.d.ts +11 -0
- package/dist/main/src/types/PartialTelegramUpdate.js +1 -0
- package/dist/main/src/types/TelegramChat.d.ts +21 -0
- package/dist/main/src/types/TelegramChat.js +1 -0
- package/dist/main/src/types/TelegramCommand.d.ts +5 -0
- package/dist/main/src/types/TelegramCommand.js +1 -0
- package/dist/main/src/types/TelegramFrom.d.ts +8 -0
- package/dist/main/src/types/TelegramFrom.js +1 -0
- package/dist/main/src/types/TelegramInlineQuery.d.ts +9 -0
- package/dist/main/src/types/TelegramInlineQuery.js +1 -0
- package/dist/main/src/types/TelegramInlineQueryResult.d.ts +6 -0
- package/dist/main/src/types/TelegramInlineQueryResult.js +8 -0
- package/dist/main/src/types/TelegramInlineQueryResultArticle.d.ts +8 -0
- package/dist/main/src/types/TelegramInlineQueryResultArticle.js +15 -0
- package/dist/main/src/types/TelegramInlineQueryResultPhoto.d.ts +13 -0
- package/dist/main/src/types/TelegramInlineQueryResultPhoto.js +19 -0
- package/dist/main/src/types/TelegramInlineQueryType.d.ts +2 -0
- package/dist/main/src/types/TelegramInlineQueryType.js +1 -0
- package/dist/main/src/types/TelegramInputMessageContent.d.ts +5 -0
- package/dist/main/src/types/TelegramInputMessageContent.js +1 -0
- package/dist/main/src/types/TelegramMessage.d.ts +43 -0
- package/dist/main/src/types/TelegramMessage.js +1 -0
- package/dist/main/src/types/TelegramMessageEntity.d.ts +10 -0
- package/dist/main/src/types/TelegramMessageEntity.js +1 -0
- package/dist/main/src/types/TelegramPhotoSize.d.ts +8 -0
- package/dist/main/src/types/TelegramPhotoSize.js +1 -0
- package/dist/main/src/types/TelegramUpdate.d.ts +13 -0
- package/dist/main/src/types/TelegramUpdate.js +36 -0
- package/dist/main/src/types/TelegramUser.d.ts +12 -0
- package/dist/main/src/types/TelegramUser.js +1 -0
- package/dist/main/src/types/Update.d.ts +3 -0
- package/dist/main/src/types/Update.js +2 -0
- package/dist/main/src/types/WebhookCommands.d.ts +4 -0
- package/dist/main/src/types/WebhookCommands.js +2 -0
- package/dist/main/src/types/localhost.d.ts +3 -0
- package/dist/main/src/types/localhost.js +1 -0
- package/dist/main/src/types/types.d.ts +1 -0
- package/dist/main/src/types/types.js +1 -0
- package/dist/main/src/types.d.ts +26 -0
- package/dist/main/src/types.js +8 -0
- package/dist/main/src/webhook.d.ts +10 -0
- package/dist/main/src/webhook.js +15 -0
- package/dist/telegram_api.d.ts +1 -1
- package/dist/telegram_api.js +9 -3
- package/dist/telegram_bot.js +4 -0
- package/dist/telegram_execution_context.d.ts +1 -1
- package/dist/telegram_execution_context.js +11 -0
- package/dist/types/TelegramDocument.d.ts +9 -0
- package/dist/types/TelegramDocument.js +1 -0
- package/dist/types/TelegramMessage.d.ts +2 -0
- package/dist/worker/src/worker.d.ts +18 -0
- package/dist/worker/src/worker.js +81 -0
- package/package.json +3 -5
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export default class Webhook {
|
|
2
|
+
api;
|
|
3
|
+
token;
|
|
4
|
+
url;
|
|
5
|
+
commands;
|
|
6
|
+
constructor(api, token, url) {
|
|
7
|
+
this.api = api;
|
|
8
|
+
this.token = token;
|
|
9
|
+
this.url = url;
|
|
10
|
+
this.commands = {
|
|
11
|
+
default: async () => new Response('Invalid command'),
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
process = async (url) => this.commands[url.searchParams.get('command') ?? '']?.() ?? this.commands.default();
|
|
15
|
+
}
|
package/dist/telegram_api.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export default class TelegramApi {
|
|
|
7
7
|
getApiUrl(botApi: string, slug: string, data: Record<string, SerializableData>): Request<unknown, CfProperties<unknown>>;
|
|
8
8
|
getFile(botApi: string, data: {
|
|
9
9
|
file_id: string;
|
|
10
|
-
}, token: string): Promise<
|
|
10
|
+
}, token: string): Promise<Response>;
|
|
11
11
|
sendMessage(botApi: string, data: {
|
|
12
12
|
reply_to_message_id: number | string;
|
|
13
13
|
chat_id: number | string;
|
package/dist/telegram_api.js
CHANGED
|
@@ -11,9 +11,15 @@ export default class TelegramApi {
|
|
|
11
11
|
const url = this.getApiUrl(botApi, 'getFile', data);
|
|
12
12
|
const response = await fetch(url);
|
|
13
13
|
const json = await response.json();
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
let file_path;
|
|
15
|
+
try {
|
|
16
|
+
file_path = json.result.file_path;
|
|
17
|
+
}
|
|
18
|
+
catch (e) {
|
|
19
|
+
console.log(`Error: ${e}`);
|
|
20
|
+
return new Response('cant read file_path. is the file too large?');
|
|
21
|
+
}
|
|
22
|
+
return await fetch(`https://api.telegram.org/file/bot${token}/${file_path}`);
|
|
17
23
|
}
|
|
18
24
|
async sendMessage(botApi, data) {
|
|
19
25
|
const url = this.getApiUrl(botApi, 'sendMessage', data);
|
package/dist/telegram_bot.js
CHANGED
|
@@ -15,7 +15,7 @@ export default class TelegramExecutionContext {
|
|
|
15
15
|
setData(key: string, value: SerializableData): this;
|
|
16
16
|
getData(key: string): SerializableData;
|
|
17
17
|
replyVideo(video: string, options?: Record<string, SerializableData>): Promise<Response | undefined>;
|
|
18
|
-
getFile(file_id: string): Promise<
|
|
18
|
+
getFile(file_id: string): Promise<Response>;
|
|
19
19
|
replyPhoto(photo: string, caption?: string, options?: Record<string, SerializableData>): Promise<Response | undefined>;
|
|
20
20
|
reply(message: string, parse_mode?: string, options?: Record<string, SerializableData>): Promise<Response | undefined>;
|
|
21
21
|
}
|
|
@@ -20,6 +20,9 @@ export default class TelegramExecutionContext {
|
|
|
20
20
|
else if (this.update.inline_query?.query) {
|
|
21
21
|
this.update_type = 'inline';
|
|
22
22
|
}
|
|
23
|
+
else if (this.update.message?.document) {
|
|
24
|
+
this.update_type = 'document';
|
|
25
|
+
}
|
|
23
26
|
}
|
|
24
27
|
getText() {
|
|
25
28
|
return this.update.message?.text ?? this.update.inline_query?.query ?? '';
|
|
@@ -106,6 +109,14 @@ export default class TelegramExecutionContext {
|
|
|
106
109
|
inline_query_id: this.update.inline_query?.id.toString() ?? '',
|
|
107
110
|
results: [new TelegramInlineQueryResultArticle(message)],
|
|
108
111
|
});
|
|
112
|
+
case 'document':
|
|
113
|
+
return await this.api.sendMessage(this.bot.api.toString(), {
|
|
114
|
+
...options,
|
|
115
|
+
chat_id: this.update.message?.chat.id.toString() ?? '',
|
|
116
|
+
reply_to_message_id: this.update.message?.message_id.toString() ?? '',
|
|
117
|
+
text: message,
|
|
118
|
+
parse_mode,
|
|
119
|
+
});
|
|
109
120
|
default:
|
|
110
121
|
break;
|
|
111
122
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import TelegramChat from './TelegramChat.js';
|
|
2
|
+
import { TelegramDocument } from './TelegramDocument.js';
|
|
2
3
|
import TelegramFrom from './TelegramFrom.js';
|
|
3
4
|
import TelegramMessageEntity from './TelegramMessageEntity.js';
|
|
4
5
|
import TelegramPhotoSize from './TelegramPhotoSize.js';
|
|
@@ -24,6 +25,7 @@ interface TelegramMessage {
|
|
|
24
25
|
author_signature?: string;
|
|
25
26
|
text?: string;
|
|
26
27
|
entities?: TelegramMessageEntity[];
|
|
28
|
+
document?: TelegramDocument;
|
|
27
29
|
photo?: TelegramPhotoSize[];
|
|
28
30
|
caption?: string;
|
|
29
31
|
caption_entities?: TelegramMessageEntity[];
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/// <reference types="@cloudflare/workers-types" />
|
|
2
|
+
interface Environment {
|
|
3
|
+
SECRET_TELEGRAM_API_TOKEN: string;
|
|
4
|
+
KV_GET_SET: KVNamespace;
|
|
5
|
+
KV_UID_DATA: KVNamespace;
|
|
6
|
+
SECRET_TELEGRAM_API_TOKEN2: string;
|
|
7
|
+
SECRET_TELEGRAM_API_TOKEN3: string;
|
|
8
|
+
SECRET_TELEGRAM_API_TOKEN4: string;
|
|
9
|
+
SECRET_TELEGRAM_API_TOKEN5: string;
|
|
10
|
+
AI: Ai;
|
|
11
|
+
DB: D1Database;
|
|
12
|
+
R2: R2Bucket;
|
|
13
|
+
CHAT_MODEL: string;
|
|
14
|
+
}
|
|
15
|
+
declare const _default: {
|
|
16
|
+
fetch: (request: Request, env: Environment) => Promise<Response>;
|
|
17
|
+
};
|
|
18
|
+
export default _default;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import TelegramBot from '../../main/src/telegram_bot';
|
|
2
|
+
export default {
|
|
3
|
+
fetch: async (request, env) => {
|
|
4
|
+
const bot = new TelegramBot(env.SECRET_TELEGRAM_API_TOKEN);
|
|
5
|
+
await bot
|
|
6
|
+
.on('default', async function () {
|
|
7
|
+
switch (bot.update_type) {
|
|
8
|
+
case 'message': {
|
|
9
|
+
const messages = [
|
|
10
|
+
{ role: 'system', content: 'You are a friendly assistant' },
|
|
11
|
+
{
|
|
12
|
+
role: 'user',
|
|
13
|
+
content: bot.update.message?.text?.toString() ?? '',
|
|
14
|
+
},
|
|
15
|
+
];
|
|
16
|
+
const response = await env.AI.run('@cf/meta/llama-3-8b-instruct', { messages });
|
|
17
|
+
if ('response' in response) {
|
|
18
|
+
await bot.reply(response.response ?? '');
|
|
19
|
+
}
|
|
20
|
+
break;
|
|
21
|
+
}
|
|
22
|
+
case 'inline': {
|
|
23
|
+
const inline_messages = [
|
|
24
|
+
{ role: 'system', content: 'You are a friendly assistant' },
|
|
25
|
+
{
|
|
26
|
+
role: 'user',
|
|
27
|
+
content: bot.update.inline_query?.query.toString() ?? '',
|
|
28
|
+
},
|
|
29
|
+
];
|
|
30
|
+
const inline_response = await env.AI.run('@cf/meta/llama-3-8b-instruct', { messages: inline_messages, max_tokens: 50 });
|
|
31
|
+
if ('response' in inline_response) {
|
|
32
|
+
await bot.reply(inline_response.response ?? '');
|
|
33
|
+
}
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
default:
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
return new Response('ok');
|
|
40
|
+
})
|
|
41
|
+
.handle(request.clone());
|
|
42
|
+
const bot2 = new TelegramBot(env.SECRET_TELEGRAM_API_TOKEN2);
|
|
43
|
+
await bot2
|
|
44
|
+
.on('default', async function () {
|
|
45
|
+
switch (bot2.update_type) {
|
|
46
|
+
case 'message': {
|
|
47
|
+
await bot2.reply('https://duckduckgo.com/?q=' + encodeURIComponent(bot.update.message?.text?.toString() ?? ''));
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
case 'inline': {
|
|
51
|
+
await bot2.reply('https://duckduckgo.com/?q=' + encodeURIComponent(bot.update.inline_query?.query ?? ''));
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
default:
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
return new Response('ok');
|
|
58
|
+
})
|
|
59
|
+
.handle(request.clone());
|
|
60
|
+
const bot3 = new TelegramBot(env.SECRET_TELEGRAM_API_TOKEN3);
|
|
61
|
+
await bot3
|
|
62
|
+
.on('default', async function () {
|
|
63
|
+
switch (bot3.update_type) {
|
|
64
|
+
case 'inline': {
|
|
65
|
+
const { translated_text } = await env.AI.run('@cf/meta/m2m100-1.2b', {
|
|
66
|
+
text: bot3.update.inline_query?.query.toString() ?? '',
|
|
67
|
+
source_lang: 'french',
|
|
68
|
+
target_lang: 'english',
|
|
69
|
+
});
|
|
70
|
+
await bot3.reply(translated_text ?? '');
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
default:
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
return new Response('ok');
|
|
77
|
+
})
|
|
78
|
+
.handle(request.clone());
|
|
79
|
+
return new Response('ok');
|
|
80
|
+
},
|
|
81
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codebam/cf-workers-telegram-bot",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.20.0",
|
|
4
4
|
"description": "serverless telegram bot on cf workers",
|
|
5
5
|
"main": "./dist/main.js",
|
|
6
6
|
"module": "./dist/main.js",
|
|
@@ -35,14 +35,12 @@
|
|
|
35
35
|
"@eslint/js": "^9.3.0",
|
|
36
36
|
"@typescript-eslint/eslint-plugin": "^7.10.0",
|
|
37
37
|
"@typescript-eslint/parser": "^7.10.0",
|
|
38
|
-
"eslint": "^
|
|
38
|
+
"eslint": "^9.3.0",
|
|
39
39
|
"eslint-config-prettier": "^9.1.0",
|
|
40
40
|
"globals": "^15.3.0",
|
|
41
|
-
"lerna": "^8.1.2",
|
|
42
41
|
"prettier": "^3.2.5",
|
|
43
42
|
"typescript": "^5.4.5",
|
|
44
43
|
"typescript-eslint": "^7.10.0",
|
|
45
44
|
"vitest": "^1.6.0"
|
|
46
|
-
}
|
|
47
|
-
"gitHead": "9403f38804403328eac9f7249bdeaccee8a4ee25"
|
|
45
|
+
}
|
|
48
46
|
}
|