Skip to content

Commit e235713

Browse files
authored
Merge pull request #308 from ai16z/telegram-client-fixes
Telegram client refactor for bot info availability
2 parents 7875865 + df17626 commit e235713

File tree

3 files changed

+50
-38
lines changed

3 files changed

+50
-38
lines changed

packages/client-telegram/src/index.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export const TelegramClientInterface: Client = {
77
const botToken = runtime.getSetting("TELEGRAM_BOT_TOKEN");
88
const tg = new TelegramClient(runtime, botToken);
99
await tg.start();
10+
1011
elizaLogger.success(
1112
`✅ Telegram client successfully started for character ${runtime.character.name}`
1213
);
@@ -17,4 +18,4 @@ export const TelegramClientInterface: Client = {
1718
},
1819
};
1920

20-
export default TelegramClientInterface;
21+
export default TelegramClientInterface;

packages/client-telegram/src/messageManager.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ Note that {{agentName}} is capable of reading/seeing/hearing various forms of me
130130
` + messageCompletionFooter;
131131

132132
export class MessageManager {
133-
private bot: Telegraf<Context>;
133+
public bot: Telegraf<Context>;
134134
private runtime: IAgentRuntime;
135135
private imageService: IImageDescriptionService;
136136

@@ -482,4 +482,4 @@ export class MessageManager {
482482
console.error("Error sending message:", error);
483483
}
484484
}
485-
}
485+
}

packages/client-telegram/src/telegramClient.ts

+46-35
Original file line numberDiff line numberDiff line change
@@ -15,39 +15,6 @@ export class TelegramClient {
1515
this.bot = new Telegraf(botToken);
1616
this.messageManager = new MessageManager(this.bot, this.runtime);
1717

18-
elizaLogger.log("Setting up message handler...");
19-
this.bot.on("message", async (ctx) => {
20-
try {
21-
elizaLogger.log("📥 Received message:", ctx.message);
22-
await this.messageManager.handleMessage(ctx);
23-
} catch (error) {
24-
elizaLogger.error("❌ Error handling message:", error);
25-
await ctx.reply(
26-
"An error occurred while processing your message."
27-
);
28-
}
29-
});
30-
31-
// Handle specific message types for better logging
32-
this.bot.on("photo", (ctx) => {
33-
elizaLogger.log(
34-
"📸 Received photo message with caption:",
35-
ctx.message.caption
36-
);
37-
});
38-
39-
this.bot.on("document", (ctx) => {
40-
elizaLogger.log(
41-
"📎 Received document message:",
42-
ctx.message.document.file_name
43-
);
44-
});
45-
46-
this.bot.catch((err, ctx) => {
47-
elizaLogger.error(`❌ Telegram Error for ${ctx.updateType}:`, err);
48-
ctx.reply("An unexpected error occurred. Please try again later.");
49-
});
50-
5118
elizaLogger.log("✅ TelegramClient constructor completed");
5219
}
5320

@@ -60,7 +27,51 @@ export class TelegramClient {
6027
elizaLogger.log(
6128
"✨ Telegram bot successfully launched and is running!"
6229
);
63-
elizaLogger.log(`Bot username: @${this.bot.botInfo?.username}`);
30+
31+
await this.bot.telegram.getMe().then((botInfo) => {
32+
this.bot.botInfo = botInfo;
33+
});
34+
35+
console.log(`Bot username: @${this.bot.botInfo?.username}`);
36+
37+
this.messageManager.bot = this.bot;
38+
39+
// Include if you want to view message maanger bot info
40+
// console.log(`Message Manager bot info: @${this.messageManager.bot}`);
41+
42+
elizaLogger.log("Setting up message handler...");
43+
44+
this.bot.on("message", async (ctx) => {
45+
try {
46+
console.log("📥 Received message:", ctx.message);
47+
await this.messageManager.handleMessage(ctx);
48+
} catch (error) {
49+
elizaLogger.error("❌ Error handling message:", error);
50+
await ctx.reply(
51+
"An error occurred while processing your message."
52+
);
53+
}
54+
});
55+
56+
// Handle specific message types for better logging
57+
this.bot.on("photo", (ctx) => {
58+
elizaLogger.log(
59+
"📸 Received photo message with caption:",
60+
ctx.message.caption
61+
);
62+
});
63+
64+
this.bot.on("document", (ctx) => {
65+
elizaLogger.log(
66+
"📎 Received document message:",
67+
ctx.message.document.file_name
68+
);
69+
});
70+
71+
this.bot.catch((err, ctx) => {
72+
elizaLogger.error(`❌ Telegram Error for ${ctx.updateType}:`, err);
73+
ctx.reply("An unexpected error occurred. Please try again later.");
74+
});
6475

6576
// Graceful shutdown handlers
6677
const shutdownHandler = async (signal: string) => {
@@ -93,4 +104,4 @@ export class TelegramClient {
93104
await this.bot.stop();
94105
elizaLogger.log("Telegram bot stopped");
95106
}
96-
}
107+
}

0 commit comments

Comments
 (0)