Skip to content

Commit 3b61e61

Browse files
committed
Telegram client refactor for bot info availability
1 parent 61cc988 commit 3b61e61

File tree

3 files changed

+51
-38
lines changed

3 files changed

+51
-38
lines changed

packages/client-telegram/src/index.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ export const TelegramClientInterface: Client = {
66
start: async (runtime: IAgentRuntime) => {
77
const botToken = runtime.getSetting("TELEGRAM_BOT_TOKEN");
88
const tg = new TelegramClient(runtime, botToken);
9+
await tg.start();
10+
911
elizaLogger.success(
1012
`✅ Telegram client successfully started for character ${runtime.character.name}`
1113
);
@@ -16,4 +18,4 @@ export const TelegramClientInterface: Client = {
1618
},
1719
};
1820

19-
export default TelegramClientInterface;
21+
export default TelegramClientInterface;

packages/client-telegram/src/messageManager.ts

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

129129
export class MessageManager {
130-
private bot: Telegraf<Context>;
130+
public bot: Telegraf<Context>;
131131
private runtime: IAgentRuntime;
132132
private imageService: IImageDescriptionService;
133133

@@ -478,4 +478,4 @@ export class MessageManager {
478478
console.error("Error sending message:", error);
479479
}
480480
}
481-
}
481+
}

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)