@slycode/slycode 0.2.15 → 0.2.16
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/bridge/session-manager.js +3 -3
- package/dist/bridge/session-manager.js.map +1 -1
- package/dist/messaging/bridge-client.js +1 -1
- package/dist/messaging/channels/telegram.d.ts +25 -5
- package/dist/messaging/channels/telegram.js +258 -152
- package/dist/messaging/channels/telegram.js.map +1 -1
- package/dist/messaging/index.js +5 -3
- package/dist/messaging/index.js.map +1 -1
- package/dist/messaging/state.d.ts +3 -0
- package/dist/messaging/state.js +13 -0
- package/dist/messaging/state.js.map +1 -1
- package/dist/messaging/types.d.ts +2 -0
- package/dist/web/.next/BUILD_ID +1 -1
- package/dist/web/.next/build-manifest.json +2 -2
- package/dist/web/.next/server/app/_global-error.html +2 -2
- package/dist/web/.next/server/app/_global-error.rsc +1 -1
- package/dist/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/dist/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dist/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dist/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dist/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dist/web/.next/server/app/_not-found.html +1 -1
- package/dist/web/.next/server/app/_not-found.rsc +1 -1
- package/dist/web/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/dist/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/dist/web/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/dist/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/dist/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/dist/web/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/dist/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/project/[id]/page_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/chunks/src_lib_scheduler_ts_03988e3e._.js +1 -1
- package/dist/web/.next/server/chunks/src_lib_scheduler_ts_7120457c._.js +1 -1
- package/dist/web/.next/server/chunks/ssr/[root-of-the-server]__1f5fc489._.js +1 -1
- package/dist/web/.next/server/chunks/ssr/[root-of-the-server]__bcbe4bf2._.js +1 -1
- package/dist/web/.next/server/pages/404.html +1 -1
- package/dist/web/.next/server/pages/500.html +2 -2
- package/dist/web/.next/static/chunks/{68a737843232927b.js → 3d5195b57fc05540.js} +1 -1
- package/dist/web/.next/static/chunks/{7b456abf0afeeb60.js → 59fb302a5bfd2dc0.js} +1 -1
- package/dist/web/src/components/ClaudeTerminalPanel.tsx +1 -1
- package/dist/web/src/lib/scheduler.ts +11 -2
- package/dist/web/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -4
- package/templates/kanban-seed.json +1 -1
- /package/dist/web/.next/static/{du1bb9CKBc_rQF_UArbIP → 8LS_5MpE4jB-m4LMauTfz}/_buildManifest.js +0 -0
- /package/dist/web/.next/static/{du1bb9CKBc_rQF_UArbIP → 8LS_5MpE4jB-m4LMauTfz}/_clientMiddlewareManifest.json +0 -0
- /package/dist/web/.next/static/{du1bb9CKBc_rQF_UArbIP → 8LS_5MpE4jB-m4LMauTfz}/_ssgManifest.js +0 -0
|
@@ -1,134 +1,52 @@
|
|
|
1
|
-
import TelegramBot from 'node-telegram-bot-api';
|
|
2
1
|
import fs from 'fs';
|
|
3
2
|
import path from 'path';
|
|
4
3
|
import os from 'os';
|
|
4
|
+
// --- TelegramChannel ---
|
|
5
5
|
export class TelegramChannel {
|
|
6
6
|
name = 'Telegram';
|
|
7
|
-
bot;
|
|
8
7
|
botToken;
|
|
9
8
|
authorizedUserId;
|
|
10
9
|
chatId = null;
|
|
10
|
+
onChatIdChanged;
|
|
11
11
|
textHandler;
|
|
12
12
|
voiceHandler;
|
|
13
13
|
photoHandler;
|
|
14
14
|
voiceSelectHandler;
|
|
15
15
|
callbackHandlers = new Map();
|
|
16
|
+
commandHandlers = new Map();
|
|
16
17
|
persistentKeyboard = null;
|
|
17
18
|
pendingVoiceList = [];
|
|
18
19
|
// Photo album batching
|
|
19
20
|
photoBuffer = new Map();
|
|
21
|
+
// Polling state
|
|
22
|
+
polling = false;
|
|
23
|
+
pollOffset = 0;
|
|
24
|
+
pollAbort = null;
|
|
20
25
|
constructor(config) {
|
|
21
26
|
this.authorizedUserId = config.authorizedUserId;
|
|
22
27
|
this.botToken = config.botToken;
|
|
23
|
-
|
|
28
|
+
if (config.chatId)
|
|
29
|
+
this.chatId = config.chatId;
|
|
30
|
+
if (config.onChatIdChanged)
|
|
31
|
+
this.onChatIdChanged = config.onChatIdChanged;
|
|
24
32
|
}
|
|
25
33
|
async start() {
|
|
26
|
-
|
|
27
|
-
this.
|
|
28
|
-
if (!msg.from || !this.isAuthorized(msg.from.id))
|
|
29
|
-
return;
|
|
30
|
-
this.setChatId(msg.chat.id);
|
|
31
|
-
// Text messages (non-commands)
|
|
32
|
-
if (msg.text && !msg.text.startsWith('/') && this.textHandler) {
|
|
33
|
-
this.textHandler(msg.text);
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
// Voice message listener
|
|
37
|
-
this.bot.on('voice', async (msg) => {
|
|
38
|
-
if (!msg.from || !this.isAuthorized(msg.from.id))
|
|
39
|
-
return;
|
|
40
|
-
if (!msg.voice)
|
|
41
|
-
return;
|
|
42
|
-
this.setChatId(msg.chat.id);
|
|
43
|
-
if (this.voiceHandler) {
|
|
44
|
-
try {
|
|
45
|
-
const fileLink = await this.bot.getFileLink(msg.voice.file_id);
|
|
46
|
-
const tempPath = path.join(os.tmpdir(), `voice_${Date.now()}.ogg`);
|
|
47
|
-
const response = await fetch(fileLink);
|
|
48
|
-
const buffer = Buffer.from(await response.arrayBuffer());
|
|
49
|
-
fs.writeFileSync(tempPath, buffer);
|
|
50
|
-
this.voiceHandler(tempPath);
|
|
51
|
-
}
|
|
52
|
-
catch (err) {
|
|
53
|
-
console.error('Error downloading voice message:', err);
|
|
54
|
-
await this.sendText(`Error processing voice message: ${err.message}`);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
// Photo message listener — batches album photos via media_group_id
|
|
59
|
-
this.bot.on('photo', async (msg) => {
|
|
60
|
-
if (!msg.from || !this.isAuthorized(msg.from.id))
|
|
61
|
-
return;
|
|
62
|
-
if (!msg.photo || msg.photo.length === 0)
|
|
63
|
-
return;
|
|
64
|
-
this.setChatId(msg.chat.id);
|
|
65
|
-
if (!this.photoHandler)
|
|
66
|
-
return;
|
|
67
|
-
try {
|
|
68
|
-
// Download the photo (largest resolution = last in array)
|
|
69
|
-
const photo = msg.photo[msg.photo.length - 1];
|
|
70
|
-
const fileLink = await this.bot.getFileLink(photo.file_id);
|
|
71
|
-
const tempPath = path.join(os.tmpdir(), `photo_${Date.now()}_${Math.random().toString(36).slice(2, 6)}.jpg`);
|
|
72
|
-
const response = await fetch(fileLink);
|
|
73
|
-
const buffer = Buffer.from(await response.arrayBuffer());
|
|
74
|
-
fs.writeFileSync(tempPath, buffer);
|
|
75
|
-
const entry = { filePath: tempPath, caption: msg.caption || undefined };
|
|
76
|
-
if (msg.media_group_id) {
|
|
77
|
-
// Album photo — buffer and flush after 2s of no new photos
|
|
78
|
-
const groupId = msg.media_group_id;
|
|
79
|
-
const existing = this.photoBuffer.get(groupId);
|
|
80
|
-
if (existing) {
|
|
81
|
-
clearTimeout(existing.timer);
|
|
82
|
-
existing.photos.push(entry);
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
this.photoBuffer.set(groupId, { photos: [entry], timer: null });
|
|
86
|
-
}
|
|
87
|
-
const group = this.photoBuffer.get(groupId);
|
|
88
|
-
group.timer = setTimeout(() => {
|
|
89
|
-
this.photoBuffer.delete(groupId);
|
|
90
|
-
this.photoHandler(group.photos);
|
|
91
|
-
}, 2000);
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
// Single photo — deliver immediately
|
|
95
|
-
this.photoHandler([entry]);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
catch (err) {
|
|
99
|
-
console.error('Error downloading photo:', err);
|
|
100
|
-
await this.sendText(`Error processing photo: ${err.message}`);
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
// Inline button callbacks — route by prefix
|
|
104
|
-
this.bot.on('callback_query', async (query) => {
|
|
105
|
-
if (!query.from || !this.isAuthorized(query.from.id))
|
|
106
|
-
return;
|
|
107
|
-
if (!query.data || !query.message)
|
|
108
|
-
return;
|
|
109
|
-
this.setChatId(query.message.chat.id);
|
|
110
|
-
await this.bot.answerCallbackQuery(query.id);
|
|
111
|
-
// Voice selection (index-based lookup)
|
|
112
|
-
if (query.data.startsWith('voice_') && this.voiceSelectHandler) {
|
|
113
|
-
const idx = parseInt(query.data.replace('voice_', ''), 10);
|
|
114
|
-
const voice = this.pendingVoiceList[idx];
|
|
115
|
-
if (voice) {
|
|
116
|
-
this.voiceSelectHandler(voice.id, voice.name);
|
|
117
|
-
}
|
|
118
|
-
return;
|
|
119
|
-
}
|
|
120
|
-
// Generic prefix routing
|
|
121
|
-
for (const [prefix, handler] of this.callbackHandlers) {
|
|
122
|
-
if (query.data.startsWith(prefix)) {
|
|
123
|
-
handler(query.data);
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
});
|
|
34
|
+
this.polling = true;
|
|
35
|
+
this.pollLoop();
|
|
128
36
|
console.log(`[${this.name}] Channel started (long polling)`);
|
|
129
37
|
}
|
|
130
38
|
stop() {
|
|
131
|
-
this.
|
|
39
|
+
this.polling = false;
|
|
40
|
+
// Cancel any in-flight getUpdates request
|
|
41
|
+
if (this.pollAbort) {
|
|
42
|
+
this.pollAbort.abort();
|
|
43
|
+
this.pollAbort = null;
|
|
44
|
+
}
|
|
45
|
+
// Clear any pending photo album timers
|
|
46
|
+
for (const [, group] of this.photoBuffer) {
|
|
47
|
+
clearTimeout(group.timer);
|
|
48
|
+
}
|
|
49
|
+
this.photoBuffer.clear();
|
|
132
50
|
console.log(`[${this.name}] Channel stopped`);
|
|
133
51
|
}
|
|
134
52
|
onText(handler) {
|
|
@@ -141,13 +59,7 @@ export class TelegramChannel {
|
|
|
141
59
|
this.photoHandler = handler;
|
|
142
60
|
}
|
|
143
61
|
onCommand(command, handler) {
|
|
144
|
-
this.
|
|
145
|
-
if (!msg.from || !this.isAuthorized(msg.from.id))
|
|
146
|
-
return;
|
|
147
|
-
this.setChatId(msg.chat.id);
|
|
148
|
-
const args = (match?.[1] || '').trim();
|
|
149
|
-
handler(args);
|
|
150
|
-
});
|
|
62
|
+
this.commandHandlers.set(command, handler);
|
|
151
63
|
}
|
|
152
64
|
onCallback(prefix, handler) {
|
|
153
65
|
this.callbackHandlers.set(prefix, handler);
|
|
@@ -178,16 +90,7 @@ export class TelegramChannel {
|
|
|
178
90
|
async sendVoice(audio) {
|
|
179
91
|
if (!this.chatId)
|
|
180
92
|
throw new Error('No active chat. Send a message from Telegram first.');
|
|
181
|
-
|
|
182
|
-
if (opts.reply_markup) {
|
|
183
|
-
// sendVoice via library uses form-urlencoded; reply_markup must be JSON string
|
|
184
|
-
await this.bot.sendVoice(this.chatId, audio, {
|
|
185
|
-
reply_markup: JSON.stringify(opts.reply_markup),
|
|
186
|
-
});
|
|
187
|
-
}
|
|
188
|
-
else {
|
|
189
|
-
await this.bot.sendVoice(this.chatId, audio);
|
|
190
|
-
}
|
|
93
|
+
await this.apiSendVoice(this.chatId, audio, this.keyboardMarkup());
|
|
191
94
|
}
|
|
192
95
|
async sendInlineKeyboard(text, buttons) {
|
|
193
96
|
if (!this.chatId)
|
|
@@ -204,19 +107,6 @@ export class TelegramChannel {
|
|
|
204
107
|
this.persistentKeyboard = buttons;
|
|
205
108
|
console.log(`[Telegram] Keyboard set: ${buttons.flat().join(', ')}`);
|
|
206
109
|
}
|
|
207
|
-
/** Return reply_markup for the persistent keyboard, or empty object if none set. */
|
|
208
|
-
keyboardMarkup() {
|
|
209
|
-
if (!this.persistentKeyboard)
|
|
210
|
-
return {};
|
|
211
|
-
return {
|
|
212
|
-
reply_markup: {
|
|
213
|
-
keyboard: this.persistentKeyboard.map(row => row.map(text => ({ text }))),
|
|
214
|
-
resize_keyboard: true,
|
|
215
|
-
is_persistent: true,
|
|
216
|
-
one_time_keyboard: false,
|
|
217
|
-
},
|
|
218
|
-
};
|
|
219
|
-
}
|
|
220
110
|
async sendTyping() {
|
|
221
111
|
await this.sendChatAction('typing');
|
|
222
112
|
}
|
|
@@ -224,7 +114,7 @@ export class TelegramChannel {
|
|
|
224
114
|
if (!this.chatId)
|
|
225
115
|
return;
|
|
226
116
|
try {
|
|
227
|
-
await this.
|
|
117
|
+
await this.apiCall('sendChatAction', { chat_id: this.chatId, action });
|
|
228
118
|
}
|
|
229
119
|
catch {
|
|
230
120
|
// Ignore chat action failures
|
|
@@ -238,10 +128,8 @@ export class TelegramChannel {
|
|
|
238
128
|
text: `${v.name} (${v.description})`,
|
|
239
129
|
callback_data: `voice_${i}`,
|
|
240
130
|
}]));
|
|
241
|
-
await this.
|
|
242
|
-
reply_markup: {
|
|
243
|
-
inline_keyboard: keyboard,
|
|
244
|
-
},
|
|
131
|
+
await this.apiSendMessage(this.chatId, 'Select a voice:', {
|
|
132
|
+
reply_markup: { inline_keyboard: keyboard },
|
|
245
133
|
});
|
|
246
134
|
}
|
|
247
135
|
onVoiceSelect(handler) {
|
|
@@ -250,25 +138,240 @@ export class TelegramChannel {
|
|
|
250
138
|
isReady() {
|
|
251
139
|
return this.chatId !== null;
|
|
252
140
|
}
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
return userId === this.authorizedUserId;
|
|
258
|
-
}
|
|
259
|
-
/** Send a message via Telegram API using JSON (avoids form-urlencoded escaping bugs). */
|
|
260
|
-
async apiSendMessage(chatId, text, opts) {
|
|
261
|
-
const body = { chat_id: chatId, text, ...opts };
|
|
262
|
-
const res = await fetch(`https://api.telegram.org/bot${this.botToken}/sendMessage`, {
|
|
141
|
+
// --- Private: Telegram Bot API methods ---
|
|
142
|
+
/** Generic JSON API call to Telegram Bot API. */
|
|
143
|
+
async apiCall(method, body) {
|
|
144
|
+
const res = await fetch(`https://api.telegram.org/bot${this.botToken}/${method}`, {
|
|
263
145
|
method: 'POST',
|
|
264
146
|
headers: { 'Content-Type': 'application/json' },
|
|
265
147
|
body: JSON.stringify(body),
|
|
266
148
|
});
|
|
267
149
|
const data = await res.json();
|
|
268
150
|
if (!data.ok)
|
|
269
|
-
throw new Error(`Telegram API error: ${data.description}`);
|
|
151
|
+
throw new Error(`Telegram API error (${method}): ${data.description}`);
|
|
270
152
|
return data.result;
|
|
271
153
|
}
|
|
154
|
+
/** Send a text message via Telegram API. */
|
|
155
|
+
async apiSendMessage(chatId, text, opts) {
|
|
156
|
+
return this.apiCall('sendMessage', { chat_id: chatId, text, ...opts });
|
|
157
|
+
}
|
|
158
|
+
/** Get a file download URL from a file_id. */
|
|
159
|
+
async apiGetFileLink(fileId) {
|
|
160
|
+
const file = await this.apiCall('getFile', { file_id: fileId });
|
|
161
|
+
return `https://api.telegram.org/file/bot${this.botToken}/${file.file_path}`;
|
|
162
|
+
}
|
|
163
|
+
/** Send a voice message (multipart/form-data for binary upload). */
|
|
164
|
+
async apiSendVoice(chatId, audio, opts) {
|
|
165
|
+
const form = new FormData();
|
|
166
|
+
form.append('chat_id', String(chatId));
|
|
167
|
+
form.append('voice', new Blob([new Uint8Array(audio)], { type: 'audio/ogg' }), 'voice.ogg');
|
|
168
|
+
if (opts?.reply_markup) {
|
|
169
|
+
form.append('reply_markup', JSON.stringify(opts.reply_markup));
|
|
170
|
+
}
|
|
171
|
+
const res = await fetch(`https://api.telegram.org/bot${this.botToken}/sendVoice`, {
|
|
172
|
+
method: 'POST',
|
|
173
|
+
body: form,
|
|
174
|
+
});
|
|
175
|
+
const data = await res.json();
|
|
176
|
+
if (!data.ok)
|
|
177
|
+
throw new Error(`Telegram API error (sendVoice): ${data.description}`);
|
|
178
|
+
return data.result;
|
|
179
|
+
}
|
|
180
|
+
/** Acknowledge a callback query. */
|
|
181
|
+
async apiAnswerCallbackQuery(callbackQueryId) {
|
|
182
|
+
await this.apiCall('answerCallbackQuery', { callback_query_id: callbackQueryId });
|
|
183
|
+
}
|
|
184
|
+
// --- Private: Polling loop ---
|
|
185
|
+
async pollLoop() {
|
|
186
|
+
let backoff = 1000;
|
|
187
|
+
while (this.polling) {
|
|
188
|
+
try {
|
|
189
|
+
this.pollAbort = new AbortController();
|
|
190
|
+
const url = `https://api.telegram.org/bot${this.botToken}/getUpdates`;
|
|
191
|
+
const res = await fetch(url, {
|
|
192
|
+
method: 'POST',
|
|
193
|
+
headers: { 'Content-Type': 'application/json' },
|
|
194
|
+
body: JSON.stringify({
|
|
195
|
+
offset: this.pollOffset,
|
|
196
|
+
timeout: 30,
|
|
197
|
+
allowed_updates: ['message', 'callback_query'],
|
|
198
|
+
}),
|
|
199
|
+
signal: this.pollAbort.signal,
|
|
200
|
+
});
|
|
201
|
+
if (!this.polling)
|
|
202
|
+
break;
|
|
203
|
+
if (res.status === 409) {
|
|
204
|
+
console.error(`[Telegram] 409 Conflict — another bot instance is polling. Retrying in 10s...`);
|
|
205
|
+
await this.sleep(10000);
|
|
206
|
+
continue;
|
|
207
|
+
}
|
|
208
|
+
const data = await res.json();
|
|
209
|
+
if (!data.ok) {
|
|
210
|
+
console.error(`[Telegram] getUpdates error: ${data.description}`);
|
|
211
|
+
await this.sleep(backoff);
|
|
212
|
+
backoff = Math.min(backoff * 2, 30000);
|
|
213
|
+
continue;
|
|
214
|
+
}
|
|
215
|
+
// Reset backoff on success
|
|
216
|
+
backoff = 1000;
|
|
217
|
+
for (const update of data.result) {
|
|
218
|
+
this.pollOffset = update.update_id + 1;
|
|
219
|
+
try {
|
|
220
|
+
await this.dispatchUpdate(update);
|
|
221
|
+
}
|
|
222
|
+
catch (err) {
|
|
223
|
+
console.error(`[Telegram] Error handling update ${update.update_id}:`, err);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
catch (err) {
|
|
228
|
+
if (err.name === 'AbortError')
|
|
229
|
+
break; // Graceful shutdown
|
|
230
|
+
if (!this.polling)
|
|
231
|
+
break;
|
|
232
|
+
console.error(`[Telegram] Polling error:`, err.message);
|
|
233
|
+
await this.sleep(backoff);
|
|
234
|
+
backoff = Math.min(backoff * 2, 30000);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
/** Route an update to the appropriate handler. */
|
|
239
|
+
async dispatchUpdate(update) {
|
|
240
|
+
if (update.callback_query) {
|
|
241
|
+
await this.handleCallbackQuery(update.callback_query);
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
if (update.message) {
|
|
245
|
+
await this.handleMessage(update.message);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
/** Handle an incoming message (text, voice, photo, or command). */
|
|
249
|
+
async handleMessage(msg) {
|
|
250
|
+
if (!msg.from || !this.isAuthorized(msg.from.id))
|
|
251
|
+
return;
|
|
252
|
+
this.setChatId(msg.chat.id);
|
|
253
|
+
// Voice message
|
|
254
|
+
if (msg.voice && this.voiceHandler) {
|
|
255
|
+
try {
|
|
256
|
+
const fileLink = await this.apiGetFileLink(msg.voice.file_id);
|
|
257
|
+
const tempPath = path.join(os.tmpdir(), `voice_${Date.now()}.ogg`);
|
|
258
|
+
const response = await fetch(fileLink);
|
|
259
|
+
const buffer = Buffer.from(await response.arrayBuffer());
|
|
260
|
+
fs.writeFileSync(tempPath, buffer);
|
|
261
|
+
this.voiceHandler(tempPath);
|
|
262
|
+
}
|
|
263
|
+
catch (err) {
|
|
264
|
+
console.error('Error downloading voice message:', err);
|
|
265
|
+
await this.sendText(`Error processing voice message: ${err.message}`);
|
|
266
|
+
}
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
// Photo message — batches album photos via media_group_id
|
|
270
|
+
if (msg.photo && msg.photo.length > 0 && this.photoHandler) {
|
|
271
|
+
try {
|
|
272
|
+
const photo = msg.photo[msg.photo.length - 1];
|
|
273
|
+
const fileLink = await this.apiGetFileLink(photo.file_id);
|
|
274
|
+
const tempPath = path.join(os.tmpdir(), `photo_${Date.now()}_${Math.random().toString(36).slice(2, 6)}.jpg`);
|
|
275
|
+
const response = await fetch(fileLink);
|
|
276
|
+
const buffer = Buffer.from(await response.arrayBuffer());
|
|
277
|
+
fs.writeFileSync(tempPath, buffer);
|
|
278
|
+
const entry = { filePath: tempPath, caption: msg.caption || undefined };
|
|
279
|
+
// Capture handler ref for timer callback safety
|
|
280
|
+
const photoHandler = this.photoHandler;
|
|
281
|
+
if (msg.media_group_id) {
|
|
282
|
+
const groupId = msg.media_group_id;
|
|
283
|
+
const existing = this.photoBuffer.get(groupId);
|
|
284
|
+
if (existing) {
|
|
285
|
+
clearTimeout(existing.timer);
|
|
286
|
+
existing.photos.push(entry);
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
this.photoBuffer.set(groupId, { photos: [entry], timer: null });
|
|
290
|
+
}
|
|
291
|
+
const group = this.photoBuffer.get(groupId);
|
|
292
|
+
group.timer = setTimeout(() => {
|
|
293
|
+
this.photoBuffer.delete(groupId);
|
|
294
|
+
photoHandler(group.photos);
|
|
295
|
+
}, 2000);
|
|
296
|
+
}
|
|
297
|
+
else {
|
|
298
|
+
photoHandler([entry]);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
catch (err) {
|
|
302
|
+
console.error('Error downloading photo:', err);
|
|
303
|
+
await this.sendText(`Error processing photo: ${err.message}`);
|
|
304
|
+
}
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
307
|
+
// Command messages
|
|
308
|
+
if (msg.text && msg.text.startsWith('/')) {
|
|
309
|
+
for (const [command, handler] of this.commandHandlers) {
|
|
310
|
+
const regex = new RegExp(`^/${command}(.*)$`);
|
|
311
|
+
const match = msg.text.match(regex);
|
|
312
|
+
if (match) {
|
|
313
|
+
const args = (match[1] || '').trim();
|
|
314
|
+
handler(args);
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
// Plain text messages (non-commands)
|
|
320
|
+
if (msg.text && !msg.text.startsWith('/') && this.textHandler) {
|
|
321
|
+
this.textHandler(msg.text);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
/** Handle a callback query (inline button press). */
|
|
325
|
+
async handleCallbackQuery(query) {
|
|
326
|
+
if (!this.isAuthorized(query.from.id))
|
|
327
|
+
return;
|
|
328
|
+
if (!query.data || !query.message)
|
|
329
|
+
return;
|
|
330
|
+
this.setChatId(query.message.chat.id);
|
|
331
|
+
await this.apiAnswerCallbackQuery(query.id);
|
|
332
|
+
// Voice selection (index-based lookup)
|
|
333
|
+
if (query.data.startsWith('voice_') && this.voiceSelectHandler) {
|
|
334
|
+
const idx = parseInt(query.data.replace('voice_', ''), 10);
|
|
335
|
+
const voice = this.pendingVoiceList[idx];
|
|
336
|
+
if (voice) {
|
|
337
|
+
this.voiceSelectHandler(voice.id, voice.name);
|
|
338
|
+
}
|
|
339
|
+
return;
|
|
340
|
+
}
|
|
341
|
+
// Generic prefix routing
|
|
342
|
+
for (const [prefix, handler] of this.callbackHandlers) {
|
|
343
|
+
if (query.data.startsWith(prefix)) {
|
|
344
|
+
handler(query.data);
|
|
345
|
+
return;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
// --- Private: Utilities ---
|
|
350
|
+
/** Return reply_markup for the persistent keyboard, or empty object if none set. */
|
|
351
|
+
keyboardMarkup() {
|
|
352
|
+
if (!this.persistentKeyboard)
|
|
353
|
+
return {};
|
|
354
|
+
return {
|
|
355
|
+
reply_markup: {
|
|
356
|
+
keyboard: this.persistentKeyboard.map(row => row.map(text => ({ text }))),
|
|
357
|
+
resize_keyboard: true,
|
|
358
|
+
is_persistent: true,
|
|
359
|
+
one_time_keyboard: false,
|
|
360
|
+
},
|
|
361
|
+
};
|
|
362
|
+
}
|
|
363
|
+
setChatId(id) {
|
|
364
|
+
if (this.chatId !== id) {
|
|
365
|
+
this.chatId = id;
|
|
366
|
+
this.onChatIdChanged?.(id);
|
|
367
|
+
}
|
|
368
|
+
else {
|
|
369
|
+
this.chatId = id;
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
isAuthorized(userId) {
|
|
373
|
+
return userId === this.authorizedUserId;
|
|
374
|
+
}
|
|
272
375
|
splitMessage(text) {
|
|
273
376
|
const maxLen = 4096;
|
|
274
377
|
const chunks = [];
|
|
@@ -286,5 +389,8 @@ export class TelegramChannel {
|
|
|
286
389
|
}
|
|
287
390
|
return chunks;
|
|
288
391
|
}
|
|
392
|
+
sleep(ms) {
|
|
393
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
394
|
+
}
|
|
289
395
|
}
|
|
290
396
|
//# sourceMappingURL=telegram.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telegram.js","sourceRoot":"","sources":["../../src/channels/telegram.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"telegram.js","sourceRoot":"","sources":["../../src/channels/telegram.ts"],"names":[],"mappings":"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"}
|
package/dist/messaging/index.js
CHANGED
|
@@ -162,13 +162,15 @@ function loadConfig(bridgeUrl) {
|
|
|
162
162
|
},
|
|
163
163
|
};
|
|
164
164
|
}
|
|
165
|
-
function createChannel() {
|
|
165
|
+
function createChannel(state) {
|
|
166
166
|
const botToken = process.env.TELEGRAM_BOT_TOKEN;
|
|
167
167
|
const userId = process.env.TELEGRAM_USER_ID;
|
|
168
168
|
if (botToken && userId) {
|
|
169
169
|
return new TelegramChannel({
|
|
170
170
|
botToken,
|
|
171
171
|
authorizedUserId: parseInt(userId, 10),
|
|
172
|
+
chatId: state.getChatId() ?? undefined,
|
|
173
|
+
onChatIdChanged: (chatId) => state.setChatId(chatId),
|
|
172
174
|
});
|
|
173
175
|
}
|
|
174
176
|
return null;
|
|
@@ -1104,10 +1106,10 @@ function setupChannel(channel, bridge, state, kanban, actionFilter, voiceConfig)
|
|
|
1104
1106
|
async function main() {
|
|
1105
1107
|
const bridgeUrl = await detectBridgeUrl();
|
|
1106
1108
|
const { service: serviceConfig, voice: voiceConfig } = loadConfig(bridgeUrl);
|
|
1107
|
-
const
|
|
1109
|
+
const state = new StateManager();
|
|
1110
|
+
const channel = createChannel(state);
|
|
1108
1111
|
logConfigStatus(channel, voiceConfig, serviceConfig.bridgeUrl);
|
|
1109
1112
|
const bridge = new BridgeClient(serviceConfig.bridgeUrl);
|
|
1110
|
-
const state = new StateManager();
|
|
1111
1113
|
const kanban = new KanbanClient(state.getProjects());
|
|
1112
1114
|
const actionFilter = new SlyActionFilter();
|
|
1113
1115
|
console.log(`Projects loaded: ${state.getProjects().length}`);
|