Skip to content

Commit ce2fd03

Browse files
authored
Merge pull request #947 from yswtrue/master
add callback_query support
2 parents 5457b9c + 159aa33 commit ce2fd03

File tree

5 files changed

+44
-1
lines changed

5 files changed

+44
-1
lines changed

Diff for: packages/main/src/telegram_api.ts

+20
Original file line numberDiff line numberDiff line change
@@ -110,4 +110,24 @@ export default class TelegramApi {
110110
});
111111
return await fetch(url);
112112
}
113+
114+
115+
/**
116+
* Send an callback response to a given botApi
117+
* @param botApi - full URL to the telegram API without slug
118+
* @param data - data to append to the request
119+
*/
120+
async answerCallback(
121+
botApi: string,
122+
data: {
123+
callback_query_id: number | string;
124+
text?: string;
125+
show_alert?: boolean;
126+
url?: string;
127+
cache_time?: number;
128+
},
129+
) {
130+
const url = this.getApiUrl(botApi, 'answerCallbackQuery', data);
131+
return await fetch(url);
132+
}
113133
}

Diff for: packages/main/src/telegram_bot.ts

+4
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,10 @@ export default class TelegramBot {
7171
command = ':document';
7272
break;
7373
}
74+
case 'callback': {
75+
command = ':callback';
76+
break;
77+
}
7478
default:
7579
break;
7680
}

Diff for: packages/main/src/telegram_execution_context.ts

+2
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ export default class TelegramExecutionContext {
3333
this.update_type = 'inline';
3434
} else if (this.update.message?.document) {
3535
this.update_type = 'document';
36+
} else if (this.update.callback_query?.id) {
37+
this.update_type = 'callback';
3638
}
3739
}
3840

Diff for: packages/main/src/types/TelegramCallbackQuery.ts

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import TelegramFrom from './TelegramFrom.js';
2+
import TelegramMessage from './TelegramMessage.js';
3+
4+
interface TelegramCallbackQuery {
5+
chat_type: 'sender' | 'private' | 'group' | 'supergroup' | 'channel';
6+
from: TelegramFrom;
7+
id: number;
8+
offset: string;
9+
query: string;
10+
message: TelegramMessage,
11+
inline_message_id: string;
12+
chat_instance: string;
13+
data: string;
14+
game_short_name: string;
15+
}
16+
export default TelegramCallbackQuery;

Diff for: packages/main/src/types/TelegramUpdate.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import TelegramInlineQuery from './TelegramInlineQuery.js';
22
import TelegramMessage from './TelegramMessage.js';
33
import PartialTelegramUpdate from './PartialTelegramUpdate.js';
4+
import TelegramCallbackQuery from './TelegramCallbackQuery.js';
45

56
export default class TelegramUpdate {
67
update_id: number;
@@ -10,7 +11,7 @@ export default class TelegramUpdate {
1011
edited_channel_post?: TelegramMessage;
1112
inline_query?: TelegramInlineQuery;
1213
// chosen_inline_result?: TelegramChosenInlineResult;
13-
// callback_query?: TelegramCallbackQuery;
14+
callback_query?: TelegramCallbackQuery;
1415
// shipping_query?: TelegramShippingQuery;
1516
// pre_checkout_query?: TelegramPreCheckoutQuery;
1617
// poll?: TelegramPoll;

0 commit comments

Comments
 (0)