From b4c1f66e1631f40d8a7d0f80523470677a91381f Mon Sep 17 00:00:00 2001 From: Uko Kokņevičs Date: Fri, 10 Oct 2025 12:30:46 +0300 Subject: Bunch of changes - Animations - Rewrite of serialization deserialization - Bunch of new TG types --- src/bot/methods.lisp | 46 +++++++++++++++++++++++++++++++++------------- 1 file changed, 33 insertions(+), 13 deletions(-) (limited to 'src/bot/methods.lisp') diff --git a/src/bot/methods.lisp b/src/bot/methods.lisp index 99b6411..7ccc4ad 100644 --- a/src/bot/methods.lisp +++ b/src/bot/methods.lisp @@ -2,22 +2,22 @@ ;; SPDX-FileCopyrightText: 2025 Uko Kokņevičs (defpackage :ukkoclot/bot/methods (:use :c2cl :ukkoclot/bot/impl :ukkoclot/tg-types :ukkoclot/tg-types/macros) - (:export :answer-callback-query :delete-message :edit-message-text :get-me :get-updates :send-message :set-my-name)) + (:export :answer-callback-query :delete-message :send-animation :edit-message-text :get-me :get-updates :send-message :set-my-name)) (in-package :ukkoclot/bot/methods) -(define-tg-method (answer-callback-query boolean "answerCallbackQuery" #'identity) +(define-tg-method (answer-callback-query boolean "answerCallbackQuery") (callback-query-id string) (text (or string null) nil) (show-alert boolean nil) (url (or string null) nil) (cache-time (or integer null) nil)) -(define-tg-method (delete-message boolean "deleteMessage" #'identity) +(define-tg-method (delete-message boolean "deleteMessage") (chat-id (or integer string)) (message-id integer)) ;; TODO: Add a way to simply specify :message msg :) -(define-tg-method (edit-message-text message "editMessageText" #'hash->message) +(define-tg-method (edit-message-text message "editMessageText") (business-connection-id (or string null) nil) (chat-id (or integer string null) nil) (message-id (or integer null) nil) @@ -28,7 +28,7 @@ (link-preview-options (or link-preview-options null) nil) (reply-markup (or inline-keyboard-markup null) nil)) -(define-tg-method (get-me% user "getMe" #'hash->user :GET)) +(define-tg-method (get-me% user "getMe" :GET)) (defun get-me (bot) (let ((res (get-me% bot))) @@ -36,16 +36,39 @@ (setf (bot-username% bot) (user-username res)) res)) -(define-tg-method (get-my-name bot-name "getMyName" #'hash->bot-name :GET) +(define-tg-method (get-my-name bot-name "getMyName" :GET) (language-code (or string null) nil)) -(define-tg-method (get-updates (array update) "getUpdates" #'parse-update-array) +(define-tg-method (get-updates (array update) "getUpdates") (offset (or integer null) nil) (limit (or integer null) nil) (timeout (or integer null) nil) (allowed-updates (or string null) nil)) -(define-tg-method (send-message message "sendMessage" #'hash->message) +(define-tg-method (send-animation message "sendAnimation") + (business-connection-id (or string null) nil) + (chat-id (or integer string)) + (message-thread-id (or integer null) nil) + (direct-messages-topic-id (or integer null) nil) + (animation (or pathname string)) + (duration (or integer null) nil) + (width (or integer null) nil) + (height (or integer null) nil) + (thumbnail (or pathname string null) nil) + (caption (or string null) nil) + (parse-mode (or string null) nil) + (caption-entities (or (array message-entity) null) nil) + (show-caption-above-media boolean nil) + (has-spoiler boolean nil) + (disable-notification boolean nil) + (protect-content boolean nil) + (allow-paid-broadcast boolean nil) + (message-effect-id (or string null) nil) + (suggested-post-parameters (or suggested-post-parameters null) nil) + (reply-parameters (or reply-parameters null) nil) + (reply-markup (or inline-keyboard-markup reply-keyboard-markup reply-keyboard-remove force-reply null) nil)) + +(define-tg-method (send-message message "sendMessage") (business-connection-id (or string null) nil) (chat-id (or integer string)) (message-thread-id (or integer null) nil) @@ -58,12 +81,9 @@ (protect-content (or boolean null) nil) (message-effect-id (or string null) nil) (reply-parameters (or reply-parameters null) nil) - (reply-markup (or inline-keyboard-markup - ;; TODO: reply-keyboard-markup - ;; TODO: reply-keyboard-remove - force-reply null) nil)) + (reply-markup (or inline-keyboard-markup reply-keyboard-markup reply-keyboard-remove force-reply null) nil)) -(define-tg-method (set-my-name% boolean "setMyName" #'identity) +(define-tg-method (set-my-name% boolean "setMyName") (name (or string null) nil) (language-code (or string null) nil)) -- cgit v1.2.3