From 665e22036439a84e61ad28329dccf201af274923 Mon Sep 17 00:00:00 2001 From: Uko Kokņevičs Date: Fri, 26 Jul 2024 17:50:08 +0300 Subject: Send a different GIF when bot gets added --- src/Bot.zig | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'src/Bot.zig') diff --git a/src/Bot.zig b/src/Bot.zig index 49c5df3..adfafef 100644 --- a/src/Bot.zig +++ b/src/Bot.zig @@ -19,6 +19,7 @@ uri_path_data: ArrayList(u8), poweron: bool = true, server_header_buffer: [4096]u8 = undefined, username: ?[]const u8 = null, +id: ?i64 = null, pub fn init(allocator: Allocator, config: Config) !Bot { var uri_path_data = try ArrayList(u8).initCapacity(allocator, 5 + config.bot_token.len); @@ -54,8 +55,20 @@ pub inline fn editMessageText_(self: *Bot, args: types.EditMessageTextParams) !v (try self.editMessageText(args)).deinit(); } +pub inline fn getId(self: *Bot) !i64 { + if (self.id) |id| return id; + (try self.getMe()).deinit(); + return self.id.?; +} + pub inline fn getMe(self: *Bot) !Parsed(types.User) { - return self.get(types.User, "getMe", null); + const user = try self.get(types.User, "getMe", null); + errdefer user.deinit(); + + self.id = user.value.id; + self.username = try self.allocator.dupe(u8, user.value.username.?); + + return user; } pub inline fn getMyName(self: *Bot, args: types.GetMyNameParams) !Parsed(types.BotName) { @@ -68,9 +81,7 @@ pub inline fn getUpdates(self: *Bot, args: types.GetUpdatesParams) !Parsed([]typ pub inline fn getUsername(self: *Bot) ![]const u8 { if (self.username) |username| return username; - const user = try self.getMe(); - defer user.deinit(); - self.username = user.value.username; + (try self.getMe()).deinit(); return self.username.?; } -- cgit v1.2.3