summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Uko Kokņevičs2024-07-26 17:38:38 +0300
committerGravatar Uko Kokņevičs2024-07-26 17:38:38 +0300
commit0c85cde5598c83414add4e3659a924055df13f46 (patch)
tree8006497e849bd22ee0ccf7877649260330c0753f /src
parentAdded msginfo command (diff)
downloadukkobot-0c85cde5598c83414add4e3659a924055df13f46.tar.gz
ukkobot-0c85cde5598c83414add4e3659a924055df13f46.tar.xz
ukkobot-0c85cde5598c83414add4e3659a924055df13f46.zip
New members are now greeted by a GIF
Diffstat (limited to 'src')
-rw-r--r--src/Bot.zig8
-rw-r--r--src/main.zig10
-rw-r--r--src/types/SendAnimationParams.zig25
3 files changed, 41 insertions, 2 deletions
diff --git a/src/Bot.zig b/src/Bot.zig
index 0346d2c..49c5df3 100644
--- a/src/Bot.zig
+++ b/src/Bot.zig
@@ -74,6 +74,14 @@ pub inline fn getUsername(self: *Bot) ![]const u8 {
74 return self.username.?; 74 return self.username.?;
75} 75}
76 76
77pub inline fn sendAnimation(self: *Bot, args: types.SendAnimationParams) !Parsed(types.Message) {
78 return self.post(types.Message, "sendAnimation", args);
79}
80
81pub inline fn sendAnimation_(self: *Bot, args: types.SendAnimationParams) !void {
82 (try self.sendAnimation(args)).deinit();
83}
84
77pub inline fn sendMessage(self: *Bot, args: types.SendMessageParams) !Parsed(types.Message) { 85pub inline fn sendMessage(self: *Bot, args: types.SendMessageParams) !Parsed(types.Message) {
78 return self.post(types.Message, "sendMessage", args); 86 return self.post(types.Message, "sendMessage", args);
79} 87}
diff --git a/src/main.zig b/src/main.zig
index 203f4ab..0bc5013 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -101,10 +101,16 @@ fn onNewMember(bot: *Bot, msg: types.Message, new_member: types.User) !void {
101 try new_member.writeFormattedName(w); 101 try new_member.writeFormattedName(w);
102 try w.writeAll("! Be on your bestest behaviour now!!"); 102 try w.writeAll("! Be on your bestest behaviour now!!");
103 103
104 try bot.sendMessage_(.{ 104 try bot.sendAnimation_(.{
105 .chat_id = msg.chat.id, 105 .chat_id = msg.chat.id,
106 .text = sb.items, 106 // TODO: lol
107 .animation = "CgACAgQAAx0CVcPEEgACC9Vmo6_zCxMp3ZNXSMM1nI6nMkIhgwACNwMAAtDmDFMop6BHmV7lUTUE",
108 .duration = 3,
109 .width = 166,
110 .height = 240,
111 .caption = sb.items,
107 .parse_mode = .html, 112 .parse_mode = .html,
113 .show_caption_above_media = true,
108 .reply_parameters = .{ 114 .reply_parameters = .{
109 .allow_sending_without_reply = true, 115 .allow_sending_without_reply = true,
110 .message_id = msg.message_id, 116 .message_id = msg.message_id,
diff --git a/src/types/SendAnimationParams.zig b/src/types/SendAnimationParams.zig
new file mode 100644
index 0000000..9377b3f
--- /dev/null
+++ b/src/types/SendAnimationParams.zig
@@ -0,0 +1,25 @@
1const MessageEntity = @import("MessageEntity.zig");
2const ParseMode = @import("parse_mode.zig").ParseMode;
3const ReplyParameters = @import("ReplyParameters.zig");
4
5business_connection_id: ?[]const u8 = null,
6// TODO: Integer or String
7chat_id: i64,
8message_thread_id: ?u64 = null,
9// TODO: InputFile or String
10animation: []const u8,
11duration: ?u64 = null,
12width: ?u64 = null,
13height: ?u64 = null,
14// TODO: InputFile or String
15thumbnail: ?[]const u8 = null,
16caption: ?[]const u8 = null,
17parse_mode: ?ParseMode = null,
18caption_entities: ?[]MessageEntity = null,
19show_caption_above_media: ?bool = null,
20has_spoiler: ?bool = null,
21disable_notification: ?bool = null,
22protect_content: ?bool = null,
23message_effect_id: ?[]const u8 = null,
24reply_parameters: ?ReplyParameters = null,
25// TODO: reply_markup: InlineKeyboardMarkup OR ReplyKeyboardMarkup OR ReplyKeyboardRemove OR ForceReply