@codebam/cf-workers-telegram-bot 8.0.0 → 8.1.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.
Files changed (159) hide show
  1. package/dist/telegram_api.d.ts +5 -0
  2. package/dist/telegram_api.js +5 -0
  3. package/dist/telegram_execution_context.d.ts +1 -0
  4. package/dist/telegram_execution_context.js +17 -0
  5. package/package.json +7 -7
  6. package/dist/api.d.ts +0 -30
  7. package/dist/api.js +0 -37
  8. package/dist/ctx.d.ts +0 -19
  9. package/dist/ctx.js +0 -109
  10. package/dist/main/src/TelegramBot.1.d.ts +0 -0
  11. package/dist/main/src/TelegramBot.1.js +0 -1
  12. package/dist/main/src/TelegramBot.d.ts +0 -0
  13. package/dist/main/src/TelegramBot.js +0 -1
  14. package/dist/main/src/api.d.ts +0 -14
  15. package/dist/main/src/api.js +0 -21
  16. package/dist/main/src/bot_api.d.ts +0 -10
  17. package/dist/main/src/bot_api.js +0 -11
  18. package/dist/main/src/commands/ban.d.ts +0 -5
  19. package/dist/main/src/commands/ban.js +0 -8
  20. package/dist/main/src/commands/bored.d.ts +0 -5
  21. package/dist/main/src/commands/bored.js +0 -7
  22. package/dist/main/src/commands/clear.d.ts +0 -5
  23. package/dist/main/src/commands/clear.js +0 -14
  24. package/dist/main/src/commands/code.d.ts +0 -5
  25. package/dist/main/src/commands/code.js +0 -4
  26. package/dist/main/src/commands/commandlist.d.ts +0 -5
  27. package/dist/main/src/commands/commandlist.js +0 -1
  28. package/dist/main/src/commands/dog.d.ts +0 -5
  29. package/dist/main/src/commands/dog.js +0 -7
  30. package/dist/main/src/commands/duckduckgo.d.ts +0 -5
  31. package/dist/main/src/commands/duckduckgo.js +0 -42
  32. package/dist/main/src/commands/epoch.d.ts +0 -5
  33. package/dist/main/src/commands/epoch.js +0 -4
  34. package/dist/main/src/commands/getchatinfo.d.ts +0 -5
  35. package/dist/main/src/commands/getchatinfo.js +0 -1
  36. package/dist/main/src/commands/image.d.ts +0 -5
  37. package/dist/main/src/commands/image.js +0 -19
  38. package/dist/main/src/commands/joke.d.ts +0 -5
  39. package/dist/main/src/commands/joke.js +0 -7
  40. package/dist/main/src/commands/kanye.d.ts +0 -5
  41. package/dist/main/src/commands/kanye.js +0 -8
  42. package/dist/main/src/commands/mute.d.ts +0 -5
  43. package/dist/main/src/commands/mute.js +0 -8
  44. package/dist/main/src/commands/ping.d.ts +0 -5
  45. package/dist/main/src/commands/ping.js +0 -1
  46. package/dist/main/src/commands/question.d.ts +0 -5
  47. package/dist/main/src/commands/question.js +0 -74
  48. package/dist/main/src/commands/roll.d.ts +0 -5
  49. package/dist/main/src/commands/roll.js +0 -6
  50. package/dist/main/src/commands/sean.d.ts +0 -5
  51. package/dist/main/src/commands/sean.js +0 -76
  52. package/dist/main/src/commands/start.d.ts +0 -5
  53. package/dist/main/src/commands/start.js +0 -1
  54. package/dist/main/src/commands/toss.d.ts +0 -5
  55. package/dist/main/src/commands/toss.js +0 -1
  56. package/dist/main/src/commands/translate.d.ts +0 -5
  57. package/dist/main/src/commands/translate.js +0 -26
  58. package/dist/main/src/handler.d.ts +0 -12
  59. package/dist/main/src/handler.js +0 -40
  60. package/dist/main/src/libs.d.ts +0 -5
  61. package/dist/main/src/libs.js +0 -7
  62. package/dist/main/src/main.d.ts +0 -4
  63. package/dist/main/src/main.js +0 -4
  64. package/dist/main/src/telegram_api.d.ts +0 -34
  65. package/dist/main/src/telegram_api.js +0 -192
  66. package/dist/main/src/telegram_bot.d.ts +0 -20
  67. package/dist/main/src/telegram_bot.js +0 -116
  68. package/dist/main/src/telegram_commands.d.ts +0 -22
  69. package/dist/main/src/telegram_commands.js +0 -21
  70. package/dist/main/src/telegram_webhook.d.ts +0 -10
  71. package/dist/main/src/telegram_webhook.js +0 -20
  72. package/dist/main/src/types/Balance.d.ts +0 -6
  73. package/dist/main/src/types/Balance.js +0 -1
  74. package/dist/main/src/types/Bored.d.ts +0 -10
  75. package/dist/main/src/types/Bored.js +0 -1
  76. package/dist/main/src/types/ChatPermissions.d.ts +0 -17
  77. package/dist/main/src/types/ChatPermissions.js +0 -1
  78. package/dist/main/src/types/Command.d.ts +0 -5
  79. package/dist/main/src/types/Command.js +0 -1
  80. package/dist/main/src/types/CommandArgs.d.ts +0 -5
  81. package/dist/main/src/types/CommandArgs.js +0 -1
  82. package/dist/main/src/types/Commands.d.ts +0 -3
  83. package/dist/main/src/types/Commands.js +0 -1
  84. package/dist/main/src/types/Config.d.ts +0 -20
  85. package/dist/main/src/types/Config.js +0 -33
  86. package/dist/main/src/types/DDGQueryResponse.d.ts +0 -12
  87. package/dist/main/src/types/DDGQueryResponse.js +0 -1
  88. package/dist/main/src/types/DataTypes.d.ts +0 -2
  89. package/dist/main/src/types/DataTypes.js +0 -1
  90. package/dist/main/src/types/Joke.d.ts +0 -20
  91. package/dist/main/src/types/Joke.js +0 -1
  92. package/dist/main/src/types/Kanye.d.ts +0 -4
  93. package/dist/main/src/types/Kanye.js +0 -1
  94. package/dist/main/src/types/Kv.d.ts +0 -3
  95. package/dist/main/src/types/Kv.js +0 -1
  96. package/dist/main/src/types/PartialTelegramUpdate.d.ts +0 -11
  97. package/dist/main/src/types/PartialTelegramUpdate.js +0 -1
  98. package/dist/main/src/types/TelegramChat.d.ts +0 -21
  99. package/dist/main/src/types/TelegramChat.js +0 -1
  100. package/dist/main/src/types/TelegramCommand.d.ts +0 -5
  101. package/dist/main/src/types/TelegramCommand.js +0 -1
  102. package/dist/main/src/types/TelegramFrom.d.ts +0 -8
  103. package/dist/main/src/types/TelegramFrom.js +0 -1
  104. package/dist/main/src/types/TelegramInlineQuery.d.ts +0 -9
  105. package/dist/main/src/types/TelegramInlineQuery.js +0 -1
  106. package/dist/main/src/types/TelegramInlineQueryResult.d.ts +0 -6
  107. package/dist/main/src/types/TelegramInlineQueryResult.js +0 -8
  108. package/dist/main/src/types/TelegramInlineQueryResultArticle.d.ts +0 -8
  109. package/dist/main/src/types/TelegramInlineQueryResultArticle.js +0 -15
  110. package/dist/main/src/types/TelegramInlineQueryResultPhoto.d.ts +0 -13
  111. package/dist/main/src/types/TelegramInlineQueryResultPhoto.js +0 -19
  112. package/dist/main/src/types/TelegramInlineQueryType.d.ts +0 -2
  113. package/dist/main/src/types/TelegramInlineQueryType.js +0 -1
  114. package/dist/main/src/types/TelegramInputMessageContent.d.ts +0 -5
  115. package/dist/main/src/types/TelegramInputMessageContent.js +0 -1
  116. package/dist/main/src/types/TelegramMessage.d.ts +0 -43
  117. package/dist/main/src/types/TelegramMessage.js +0 -1
  118. package/dist/main/src/types/TelegramMessageEntity.d.ts +0 -10
  119. package/dist/main/src/types/TelegramMessageEntity.js +0 -1
  120. package/dist/main/src/types/TelegramPhotoSize.d.ts +0 -8
  121. package/dist/main/src/types/TelegramPhotoSize.js +0 -1
  122. package/dist/main/src/types/TelegramUpdate.d.ts +0 -13
  123. package/dist/main/src/types/TelegramUpdate.js +0 -36
  124. package/dist/main/src/types/TelegramUser.d.ts +0 -12
  125. package/dist/main/src/types/TelegramUser.js +0 -1
  126. package/dist/main/src/types/Update.d.ts +0 -3
  127. package/dist/main/src/types/Update.js +0 -2
  128. package/dist/main/src/types/WebhookCommands.d.ts +0 -4
  129. package/dist/main/src/types/WebhookCommands.js +0 -2
  130. package/dist/main/src/types/localhost.d.ts +0 -3
  131. package/dist/main/src/types/localhost.js +0 -1
  132. package/dist/main/src/types/types.d.ts +0 -1
  133. package/dist/main/src/types/types.js +0 -1
  134. package/dist/main/src/types.d.ts +0 -26
  135. package/dist/main/src/types.js +0 -8
  136. package/dist/main/src/webhook.d.ts +0 -10
  137. package/dist/main/src/webhook.js +0 -15
  138. package/dist/types/Balance.d.ts +0 -6
  139. package/dist/types/Balance.js +0 -1
  140. package/dist/types/Bored.d.ts +0 -10
  141. package/dist/types/Bored.js +0 -1
  142. package/dist/types/DDGQueryResponse.d.ts +0 -12
  143. package/dist/types/DDGQueryResponse.js +0 -1
  144. package/dist/types/Joke.d.ts +0 -20
  145. package/dist/types/Joke.js +0 -1
  146. package/dist/types/Kanye.d.ts +0 -4
  147. package/dist/types/Kanye.js +0 -1
  148. package/dist/types/Kv.d.ts +0 -3
  149. package/dist/types/Kv.js +0 -1
  150. package/dist/types/SerializableData.d.ts +0 -2
  151. package/dist/types/SerializableData.js +0 -1
  152. package/dist/types/Update.d.ts +0 -3
  153. package/dist/types/Update.js +0 -2
  154. package/dist/types/WebhookCommands.d.ts +0 -4
  155. package/dist/types/WebhookCommands.js +0 -2
  156. package/dist/types/localhost.d.ts +0 -3
  157. package/dist/types/localhost.js +0 -1
  158. package/dist/worker/src/worker.d.ts +0 -18
  159. package/dist/worker/src/worker.js +0 -81
@@ -10,6 +10,11 @@ export default class TelegramApi {
10
10
  * @param data - data to append to the request
11
11
  */
12
12
  getApiUrl(botApi: string, slug: string, data: Record<string, number | string | boolean>): Request<unknown, CfProperties<unknown>>;
13
+ sendChatAction(botApi: string, data: {
14
+ business_connection_id?: string;
15
+ chat_id: number | string;
16
+ action: string;
17
+ }): Promise<Response>;
13
18
  /**
14
19
  * Get a file with a given file_id
15
20
  * @param botApi - full URL to the telegram API without slug
@@ -14,6 +14,11 @@ export default class TelegramApi {
14
14
  }
15
15
  return new Request(`${request.toString()}?${params.toString()}`);
16
16
  }
17
+ async sendChatAction(botApi, data) {
18
+ const url = this.getApiUrl(botApi, 'sendChatAction', data);
19
+ const response = await fetch(url);
20
+ return response;
21
+ }
17
22
  /**
18
23
  * Get a file with a given file_id
19
24
  * @param botApi - full URL to the telegram API without slug
@@ -35,6 +35,7 @@ export default class TelegramExecutionContext {
35
35
  * @param options - any additional options to pass to sendPhoto
36
36
  */
37
37
  replyPhoto(photo: string, caption?: string, options?: Record<string, number | string | boolean>): Promise<Response | undefined>;
38
+ sendTyping(): Promise<Response | undefined>;
38
39
  /**
39
40
  * Reply to the last message with text
40
41
  * @param message - text to reply with
@@ -103,6 +103,23 @@ export default class TelegramExecutionContext {
103
103
  break;
104
104
  }
105
105
  }
106
+ async sendTyping() {
107
+ switch (this.update_type) {
108
+ case 'message':
109
+ return await this.api.sendChatAction(this.bot.api.toString(), {
110
+ chat_id: this.update.message?.chat.id.toString() ?? '',
111
+ action: 'typing',
112
+ });
113
+ case 'business_message':
114
+ return await this.api.sendChatAction(this.bot.api.toString(), {
115
+ business_connection_id: this.update.business_message?.business_connection_id.toString(),
116
+ chat_id: this.update.business_message?.chat.id.toString() ?? '',
117
+ action: 'typing',
118
+ });
119
+ default:
120
+ break;
121
+ }
122
+ }
106
123
  /**
107
124
  * Reply to the last message with text
108
125
  * @param message - text to reply with
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codebam/cf-workers-telegram-bot",
3
- "version": "8.0.0",
3
+ "version": "8.1.0",
4
4
  "description": "serverless telegram bot on cf workers",
5
5
  "main": "./dist/main.js",
6
6
  "module": "./dist/main.js",
@@ -31,16 +31,16 @@
31
31
  "url": "https://github.com/codebam/cf-workers-telegram-bot.git"
32
32
  },
33
33
  "devDependencies": {
34
- "@cloudflare/workers-types": "^4.20241112.0",
34
+ "@cloudflare/workers-types": "^4.20241127.0",
35
35
  "@eslint/js": "^9.15.0",
36
- "@typescript-eslint/eslint-plugin": "^8.15.0",
37
- "@typescript-eslint/parser": "^8.15.0",
36
+ "@typescript-eslint/eslint-plugin": "^8.16.0",
37
+ "@typescript-eslint/parser": "^8.16.0",
38
38
  "eslint": "^9.15.0",
39
39
  "eslint-config-prettier": "^9.1.0",
40
40
  "globals": "^15.12.0",
41
- "prettier": "^3.3.3",
41
+ "prettier": "^3.4.1",
42
42
  "typescript": "^5.7.2",
43
- "typescript-eslint": "^8.15.0",
44
- "vitest": "^2.1.5"
43
+ "typescript-eslint": "^8.16.0",
44
+ "vitest": "^2.1.6"
45
45
  }
46
46
  }
package/dist/api.d.ts DELETED
@@ -1,30 +0,0 @@
1
- /// <reference types="@cloudflare/workers-types" />
2
- import { SerializableData, TelegramInlineQueryResultArticle, TelegramInlineQueryResultPhoto } from './types';
3
- import TelegramInlineQueryResultVideo from './types/TelegramInlineQueryResultVideo';
4
- export default class API {
5
- static getApiUrl(botApi: string, slug: string, data: Record<string, SerializableData>): Request<unknown, CfProperties<unknown>>;
6
- static getFile(botApi: string, data: {
7
- file_id: string;
8
- }, token: string): Promise<ArrayBuffer>;
9
- static sendMessage(botApi: string, data: {
10
- reply_to_message_id: number | string;
11
- chat_id: number | string;
12
- text: string;
13
- parse_mode: string;
14
- }): Promise<Response>;
15
- static sendVideo(botApi: string, data: {
16
- reply_to_message_id: number | string;
17
- chat_id: number | string;
18
- video: string;
19
- }): Promise<Response>;
20
- static sendPhoto(botApi: string, data: {
21
- reply_to_message_id: number | string;
22
- chat_id: number | string;
23
- photo: string;
24
- caption: string;
25
- }): Promise<Response>;
26
- static answerInline(botApi: string, data: {
27
- inline_query_id: number | string;
28
- results: TelegramInlineQueryResultArticle[] | TelegramInlineQueryResultPhoto[] | TelegramInlineQueryResultVideo[];
29
- }): Promise<Response>;
30
- }
package/dist/api.js DELETED
@@ -1,37 +0,0 @@
1
- export default class API {
2
- static getApiUrl(botApi, slug, data) {
3
- const request = new URL(botApi + (slug.startsWith('/') || botApi.endsWith('/') ? '' : '/') + slug);
4
- const params = new URLSearchParams();
5
- for (const i in data) {
6
- params.append(i, data[i].toString());
7
- }
8
- return new Request(`${request}?${params}`);
9
- }
10
- static async getFile(botApi, data, token) {
11
- const url = this.getApiUrl(botApi, 'getFile', data);
12
- const response = await fetch(url);
13
- const json = (await response.json());
14
- const file_path = json.result.file_path;
15
- const file_response = await fetch(`https://api.telegram.org/file/bot${token}/${file_path}`);
16
- return await file_response.arrayBuffer();
17
- }
18
- static async sendMessage(botApi, data) {
19
- const url = this.getApiUrl(botApi, 'sendMessage', data);
20
- return await fetch(url);
21
- }
22
- static async sendVideo(botApi, data) {
23
- const url = this.getApiUrl(botApi, 'sendVideo', data);
24
- return await fetch(url);
25
- }
26
- static async sendPhoto(botApi, data) {
27
- const url = this.getApiUrl(botApi, 'sendPhoto', data);
28
- return await fetch(url);
29
- }
30
- static async answerInline(botApi, data) {
31
- const url = this.getApiUrl(botApi, 'answerInlineQuery', {
32
- inline_query_id: data.inline_query_id,
33
- results: JSON.stringify(data.results),
34
- });
35
- return await fetch(url);
36
- }
37
- }
package/dist/ctx.d.ts DELETED
@@ -1,19 +0,0 @@
1
- /// <reference types="@cloudflare/workers-types" />
2
- import TelegramBot from './telegram_bot';
3
- import { SerializableData, TelegramUpdate } from './types';
4
- export default class TelegramExecutionContext {
5
- bot: TelegramBot;
6
- update: TelegramUpdate;
7
- update_type: string;
8
- private data;
9
- constructor(bot: TelegramBot, update: TelegramUpdate);
10
- getText(): string;
11
- next(): Response;
12
- setData(key: string, value: SerializableData): this;
13
- deleteData(key: string): this;
14
- getData(key: string): SerializableData;
15
- replyVideo(video: string): Promise<Response | undefined>;
16
- getFile(file_id: string): Promise<ArrayBuffer>;
17
- replyPhoto(photo: string, caption?: string): Promise<Response | undefined>;
18
- reply(message: string, parse_mode?: string): Promise<Response | undefined>;
19
- }
package/dist/ctx.js DELETED
@@ -1,109 +0,0 @@
1
- import API from './api';
2
- import { TelegramInlineQueryResultArticle, TelegramInlineQueryResultPhoto } from './types';
3
- import TelegramInlineQueryResultVideo from './types/TelegramInlineQueryResultVideo';
4
- export default class TelegramExecutionContext {
5
- bot;
6
- update;
7
- update_type = '';
8
- data = {};
9
- constructor(bot, update) {
10
- this.bot = bot;
11
- this.update = update;
12
- if (this.update.message?.photo) {
13
- this.update_type = 'photo';
14
- }
15
- else if (this.update.message?.text) {
16
- this.update_type = 'message';
17
- }
18
- else if (this.update.inline_query?.query) {
19
- this.update_type = 'inline';
20
- }
21
- }
22
- getText() {
23
- return this.update.message?.text || this.update.inline_query?.query || '';
24
- }
25
- next() {
26
- return new Response('ok');
27
- }
28
- setData(key, value) {
29
- this.data[key] = value;
30
- return this;
31
- }
32
- deleteData(key) {
33
- delete this.data[key];
34
- return this;
35
- }
36
- getData(key) {
37
- return this.data[key];
38
- }
39
- async replyVideo(video) {
40
- switch (this.update_type) {
41
- case 'message':
42
- return await API.sendVideo(this.bot.api.toString(), {
43
- chat_id: this.update.message?.chat.id.toString() ?? '',
44
- reply_to_message_id: this.update.message?.message_id.toString() ?? '',
45
- video,
46
- });
47
- case 'inline':
48
- return await API.answerInline(this.bot.api.toString(), {
49
- inline_query_id: this.update.inline_query?.id.toString() ?? '',
50
- results: [new TelegramInlineQueryResultVideo(video)],
51
- });
52
- default:
53
- break;
54
- }
55
- }
56
- async getFile(file_id) {
57
- return await API.getFile(this.bot.api.toString(), { file_id }, this.bot.token);
58
- }
59
- async replyPhoto(photo, caption = '') {
60
- switch (this.update_type) {
61
- case 'photo':
62
- return await API.sendPhoto(this.bot.api.toString(), {
63
- chat_id: this.update.message?.chat.id.toString() ?? '',
64
- reply_to_message_id: this.update.message?.message_id.toString() ?? '',
65
- photo,
66
- caption,
67
- });
68
- case 'message':
69
- return await API.sendPhoto(this.bot.api.toString(), {
70
- chat_id: this.update.message?.chat.id.toString() ?? '',
71
- reply_to_message_id: this.update.message?.message_id.toString() ?? '',
72
- photo,
73
- caption,
74
- });
75
- case 'inline':
76
- return await API.answerInline(this.bot.api.toString(), {
77
- inline_query_id: this.update.inline_query?.id.toString() ?? '',
78
- results: [new TelegramInlineQueryResultPhoto(photo)],
79
- });
80
- default:
81
- break;
82
- }
83
- }
84
- async reply(message, parse_mode = '') {
85
- switch (this.update_type) {
86
- case 'message':
87
- return await API.sendMessage(this.bot.api.toString(), {
88
- chat_id: this.update.message?.chat.id.toString() ?? '',
89
- reply_to_message_id: this.update.message?.message_id.toString() ?? '',
90
- text: message,
91
- parse_mode,
92
- });
93
- case 'photo':
94
- return await API.sendMessage(this.bot.api.toString(), {
95
- chat_id: this.update.message?.chat.id.toString() ?? '',
96
- reply_to_message_id: this.update.message?.message_id.toString() ?? '',
97
- text: message,
98
- parse_mode,
99
- });
100
- case 'inline':
101
- return await API.answerInline(this.bot.api.toString(), {
102
- inline_query_id: this.update.inline_query?.id.toString() ?? '',
103
- results: [new TelegramInlineQueryResultArticle(message)],
104
- });
105
- default:
106
- break;
107
- }
108
- }
109
- }
File without changes
@@ -1 +0,0 @@
1
- "use strict";
File without changes
@@ -1 +0,0 @@
1
- "use strict";
@@ -1,14 +0,0 @@
1
- /// <reference types="@cloudflare/workers-types" />
2
- import { SerializableData, TelegramInlineQueryResultArticle } from './types';
3
- export default class API {
4
- static getApiUrl(botApi: string, slug: string, data: Record<string, SerializableData>): string;
5
- static sendMessage(botApi: string, data: {
6
- reply_to_message_id: number | string;
7
- chat_id: number | string;
8
- text: string;
9
- }): Promise<Response>;
10
- static answerInline(botApi: string, data: {
11
- inline_query_id: number | string;
12
- results: TelegramInlineQueryResultArticle;
13
- }): Promise<Response>;
14
- }
@@ -1,21 +0,0 @@
1
- export default class API {
2
- static getApiUrl(botApi, slug, data) {
3
- const request = new URL(botApi + (slug.startsWith('/') || botApi.endsWith('/') ? '' : '/') + slug);
4
- const params = new URLSearchParams();
5
- for (const i in data) {
6
- params.append(i, data[i].toString());
7
- }
8
- return `${request}?${params}`;
9
- }
10
- static async sendMessage(botApi, data) {
11
- const url = this.getApiUrl(botApi, 'sendMessage', data);
12
- return await fetch(url);
13
- }
14
- static async answerInline(botApi, data) {
15
- const url = this.getApiUrl(botApi, 'answerInlineQuery', {
16
- inline_query_id: data.inline_query_id,
17
- results: JSON.stringify(data.results),
18
- });
19
- return await fetch(url);
20
- }
21
- }
@@ -1,10 +0,0 @@
1
- /// <reference types="@cloudflare/workers-types" />
2
- import Handler from './handler';
3
- import { Commands, Config, Update } from './types';
4
- export default class BotApi {
5
- commands: Commands;
6
- webhook: Config['webhook'];
7
- handler: Handler;
8
- update: (update: Update) => Promise<Response>;
9
- constructor(config: Partial<Config>);
10
- }
@@ -1,11 +0,0 @@
1
- export default class BotApi {
2
- commands;
3
- webhook;
4
- handler;
5
- update;
6
- constructor(config) {
7
- this.commands = config.commands;
8
- this.webhook = config.webhook;
9
- this.handler = config.handler;
10
- }
11
- }
@@ -1,5 +0,0 @@
1
- /// <reference types="@cloudflare/workers-types" />
2
- import TelegramBot from '../telegram_bot';
3
- import { TelegramUpdate } from '../types';
4
- declare const _default: (self: TelegramBot, update: TelegramUpdate) => Promise<Response>;
5
- export default _default;
@@ -1,8 +0,0 @@
1
- export default async (self, update) => {
2
- const chat_id = update.message?.reply_to_message?.chat.id;
3
- const user_id = update.message?.reply_to_message?.from.id;
4
- if (chat_id && user_id) {
5
- return self.banChatMember(chat_id, user_id, 0, true);
6
- }
7
- return new Response('ok');
8
- };
@@ -1,5 +0,0 @@
1
- /// <reference types="@cloudflare/workers-types" />
2
- import TelegramBot from '../telegram_bot';
3
- import { TelegramUpdate } from '../types';
4
- declare const _default: (self: TelegramBot, update: TelegramUpdate) => Promise<Response>;
5
- export default _default;
@@ -1,7 +0,0 @@
1
- import { TelegramInlineQueryResultArticle } from '../types';
2
- export default async (self, update) => fetch('https://boredapi.com/api/activity/')
3
- .then((response) => response.json())
4
- .then((json) => json)
5
- .then((bored_response) => update.inline_query
6
- ? self.answerInlineQuery(update.inline_query.id, [new TelegramInlineQueryResultArticle(bored_response.activity)], 0)
7
- : self.sendMessage(update.message?.chat.id ?? 0, bored_response.activity));
@@ -1,5 +0,0 @@
1
- /// <reference types="@cloudflare/workers-types" />
2
- import TelegramBot from '../telegram_bot';
3
- import { TelegramUpdate } from '../types';
4
- declare const _default: (self: TelegramBot, update: TelegramUpdate) => Promise<Response>;
5
- export default _default;
@@ -1,14 +0,0 @@
1
- import { TelegramInlineQueryResultArticle } from '../types';
2
- export default async (self, update) => {
3
- const { success } = await self.db
4
- .prepare('DELETE FROM Messages WHERE userId=?')
5
- .bind(update.inline_query ? update.inline_query.from.id : update.message?.from.id)
6
- .run();
7
- if (success) {
8
- if (update.inline_query) {
9
- return self.answerInlineQuery(update.inline_query.id, [new TelegramInlineQueryResultArticle('_')]);
10
- }
11
- return self.sendMessage(update.message?.chat.id ?? 0, '_');
12
- }
13
- return self.sendMessage(update.message?.chat.id ?? 0, 'failed');
14
- };
@@ -1,5 +0,0 @@
1
- /// <reference types="@cloudflare/workers-types" />
2
- import TelegramBot from '../telegram_bot';
3
- import { TelegramUpdate } from '../types';
4
- declare const _default: (self: TelegramBot, update: TelegramUpdate) => Promise<Response>;
5
- export default _default;
@@ -1,4 +0,0 @@
1
- import { TelegramInlineQueryResultArticle } from '../types';
2
- export default async (self, update) => ((url) => update.inline_query
3
- ? self.answerInlineQuery(update.inline_query.id, [new TelegramInlineQueryResultArticle(url)])
4
- : self.sendMessage(update.message?.chat.id ?? 0, url))('https://github.com/codebam/cf-workers-telegram-bot');
@@ -1,5 +0,0 @@
1
- /// <reference types="@cloudflare/workers-types" />
2
- import TelegramBot from '../telegram_bot';
3
- import { TelegramUpdate } from '../types';
4
- declare const _default: (self: TelegramBot, update: TelegramUpdate) => Promise<Response>;
5
- export default _default;
@@ -1 +0,0 @@
1
- export default async (self, update) => self.sendMessage(update.message?.chat.id ?? 0, `${Object.keys(self.commands).join('\n')}`, 'HTML');
@@ -1,5 +0,0 @@
1
- /// <reference types="@cloudflare/workers-types" />
2
- import TelegramBot from '../telegram_bot';
3
- import { TelegramUpdate } from '../types';
4
- declare const _default: (self: TelegramBot, update: TelegramUpdate) => Promise<Response>;
5
- export default _default;
@@ -1,7 +0,0 @@
1
- import { TelegramInlineQueryResultPhoto } from '../types';
2
- export default async (self, update) => fetch('https://shibe.online/api/shibes')
3
- .then((response) => response.json())
4
- .then((json) => json)
5
- .then((shibe_response) => update.inline_query
6
- ? self.answerInlineQuery(update.inline_query.id, [new TelegramInlineQueryResultPhoto(shibe_response[0])], 0)
7
- : self.sendPhoto(update.message?.chat.id ?? 0, shibe_response[0]));
@@ -1,5 +0,0 @@
1
- /// <reference types="@cloudflare/workers-types" />
2
- import TelegramBot from '../telegram_bot';
3
- import { TelegramUpdate } from '../types';
4
- declare const _default: (self: TelegramBot, update: TelegramUpdate, args: string[]) => Promise<Response>;
5
- export default _default;
@@ -1,42 +0,0 @@
1
- import { addSearchParams } from '../libs';
2
- import { TelegramInlineQueryResultArticle } from '../types';
3
- export default async (self, update, args) => ((query) => ((duckduckgo_url) => update.inline_query && query === ''
4
- ? self.answerInlineQuery(update.inline_query.id, [new TelegramInlineQueryResultArticle('https://duckduckgo.com')])
5
- : update.inline_query
6
- ? fetch(addSearchParams(new URL('https://api.duckduckgo.com'), {
7
- q: query,
8
- format: 'json',
9
- t: 'telegram_bot',
10
- no_redirect: '1',
11
- }).href).then((response) => response
12
- .json()
13
- .then((results) => results)
14
- .then((ddg_response) => ((instant_answer_url, thumb_url, default_thumb_url = 'https://duckduckgo.com/assets/icons/meta/DDG-icon_256x256.png') => self.answerInlineQuery(update.inline_query?.id ?? 0, instant_answer_url !== ''
15
- ? [
16
- new TelegramInlineQueryResultArticle(`${instant_answer_url}\n\n<a href="${addSearchParams(new URL(duckduckgo_url), {
17
- q: args
18
- .slice(2)
19
- .join(' ')
20
- .replace(/^!\w* /, ''),
21
- }).href}">Results From DuckDuckGo</a>`, instant_answer_url, 'HTML', thumb_url),
22
- new TelegramInlineQueryResultArticle(duckduckgo_url, duckduckgo_url, '', default_thumb_url),
23
- ]
24
- : [new TelegramInlineQueryResultArticle(duckduckgo_url, duckduckgo_url, '', default_thumb_url)], 3600))(ddg_response.Redirect ?? ddg_response.AbstractURL, ddg_response.Redirect === ''
25
- ? `https://duckduckgo.com${ddg_response.Image !== '' && ddg_response.Image
26
- ? ddg_response.Image
27
- : ddg_response.RelatedTopics.length !== 0 && ddg_response.RelatedTopics[0].Icon.URL !== ''
28
- ? ddg_response.RelatedTopics[0].Icon.URL
29
- : '/i/f96d4798.png'}`
30
- : '')))
31
- : self.sendMessage(update.message?.chat.id ?? 0, duckduckgo_url))(query === ''
32
- ? 'https://duckduckgo.com'
33
- : (() => {
34
- if (query[0][0] !== '/') {
35
- return addSearchParams(new URL('https://duckduckgo.com'), {
36
- q: query,
37
- }).href;
38
- }
39
- return addSearchParams(new URL('https://duckduckgo.com'), {
40
- q: query.split(' ').slice(1).join(' '),
41
- }).href;
42
- })()))(args.join(' '));
@@ -1,5 +0,0 @@
1
- /// <reference types="@cloudflare/workers-types" />
2
- import TelegramBot from '../telegram_bot';
3
- import { TelegramUpdate } from '../types';
4
- declare const _default: (self: TelegramBot, update: TelegramUpdate) => Promise<Response>;
5
- export default _default;
@@ -1,4 +0,0 @@
1
- import { TelegramInlineQueryResultArticle } from '../types';
2
- export default async (self, update) => ((seconds) => update.inline_query
3
- ? self.answerInlineQuery(update.inline_query.id, [new TelegramInlineQueryResultArticle(seconds)], 0)
4
- : self.sendMessage(update.message?.chat.id ?? 0, seconds))(Math.floor(Date.now() / 1000).toString());
@@ -1,5 +0,0 @@
1
- /// <reference types="@cloudflare/workers-types" />
2
- import TelegramBot from '../telegram_bot';
3
- import { TelegramUpdate } from '../types';
4
- declare const _default: (self: TelegramBot, update: TelegramUpdate) => Promise<Response>;
5
- export default _default;
@@ -1 +0,0 @@
1
- export default async (self, update) => self.sendMessage(update.message?.chat.id ?? 0, `<pre>${JSON.stringify(update.message?.chat ?? 0)}</pre>`, 'HTML');
@@ -1,5 +0,0 @@
1
- /// <reference types="@cloudflare/workers-types" />
2
- import TelegramBot from '../telegram_bot';
3
- import { TelegramUpdate } from '../types';
4
- declare const _default: (self: TelegramBot, update: TelegramUpdate, args: string[]) => Promise<Response>;
5
- export default _default;
@@ -1,19 +0,0 @@
1
- export default async (self, update, args) => {
2
- let _prompt;
3
- if (args[0][0] === '/') {
4
- _prompt = args.slice(1).join(' ');
5
- }
6
- else {
7
- _prompt = args.join(' ');
8
- }
9
- if (_prompt === '') {
10
- _prompt = '';
11
- }
12
- const inputs = { prompt: _prompt, num_steps: 20 };
13
- await self.sendMessage(update.message?.chat.id ?? 0, 'image is processing. please wait...');
14
- const response = await self.ai.run('@cf/stabilityai/stable-diffusion-xl-base-1.0', inputs);
15
- const id = crypto.randomUUID();
16
- await self.r2.put(id, response);
17
- const url = 'https://r2.seanbehan.ca/' + id;
18
- return self.sendPhoto(update.message?.chat.id ?? 0, url);
19
- };
@@ -1,5 +0,0 @@
1
- /// <reference types="@cloudflare/workers-types" />
2
- import TelegramBot from '../telegram_bot';
3
- import { TelegramUpdate } from '../types';
4
- declare const _default: (self: TelegramBot, update: TelegramUpdate) => Promise<Response>;
5
- export default _default;
@@ -1,7 +0,0 @@
1
- import { TelegramInlineQueryResultArticle } from '../types';
2
- export default async (self, update) => fetch('https://v2.jokeapi.dev/joke/Any?safe-mode')
3
- .then((response) => response.json())
4
- .then((joke) => joke)
5
- .then((joke_response) => ((message) => update.inline_query
6
- ? self.answerInlineQuery(update.inline_query.id, [new TelegramInlineQueryResultArticle(message, joke_response.joke ?? joke_response.setup, 'HTML')], 0)
7
- : self.sendMessage(update.message?.chat.id ?? 0, message, 'HTML'))(joke_response.joke ?? `${joke_response.setup}\n\n<tg-spoiler>${joke_response.delivery}</tg-spoiler>`));
@@ -1,5 +0,0 @@
1
- /// <reference types="@cloudflare/workers-types" />
2
- import TelegramBot from '../telegram_bot';
3
- import { TelegramUpdate } from '../types';
4
- declare const _default: (self: TelegramBot, update: TelegramUpdate) => Promise<Response>;
5
- export default _default;
@@ -1,8 +0,0 @@
1
- import { TelegramInlineQueryResultArticle } from '../types';
2
- export default async (self, update) => fetch('https://api.kanye.rest')
3
- .then((response) => response.json())
4
- .then((json) => json)
5
- .then((json) => ((message) => update.inline_query
6
- ? self.answerInlineQuery(update.inline_query.id, [new TelegramInlineQueryResultArticle(message)])
7
- : self.sendMessage(update.message?.chat.id ?? 0, message))(`Kanye says... ${json.quote}`))
8
- .catch(() => new Response('Failed to parse JSON'));
@@ -1,5 +0,0 @@
1
- /// <reference types="@cloudflare/workers-types" />
2
- import TelegramBot from '../telegram_bot';
3
- import { TelegramUpdate } from '../types';
4
- declare const _default: (self: TelegramBot, update: TelegramUpdate) => Promise<Response>;
5
- export default _default;
@@ -1,8 +0,0 @@
1
- export default async (self, update) => {
2
- const chat_id = update.message?.reply_to_message?.chat.id;
3
- const user_id = update.message?.reply_to_message?.from.id;
4
- if (chat_id && user_id) {
5
- return self.restrictChatMember(chat_id, user_id, { can_send_messages: false }, false, 0);
6
- }
7
- return new Response('ok');
8
- };
@@ -1,5 +0,0 @@
1
- /// <reference types="@cloudflare/workers-types" />
2
- import TelegramBot from '../telegram_bot';
3
- import { TelegramUpdate } from '../types';
4
- declare const _default: (self: TelegramBot, update: TelegramUpdate, args: string[]) => Promise<Response>;
5
- export default _default;
@@ -1 +0,0 @@
1
- export default async (self, update, args) => self.sendMessage(update.message?.chat.id ?? 0, args.length === 1 ? 'pong' : args.slice(1).join(' '));
@@ -1,5 +0,0 @@
1
- /// <reference types="@cloudflare/workers-types" />
2
- import TelegramBot from '../telegram_bot';
3
- import { TelegramUpdate } from '../types';
4
- declare const _default: (self: TelegramBot, update: TelegramUpdate, args: string[]) => Promise<Response>;
5
- export default _default;