summaryrefslogtreecommitdiff
path: root/src/tg/delete-message.lisp
blob: 44fccd2b10b46e9e7a13515c238503dd7de8de57 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
;; SPDX-License-Identifier: EUPL-1.2
;; SPDX-FileCopyrightText: 2025 Uko Kokņevičs <perkontevs@gmail.com>
(defpackage :ukkoclot/src/tg/delete-message
  (:documentation "deleteMessage Telegram method")
  (:use :c2cl :ukkoclot/src/tg/message :ukkoclot/src/tg/method-macros :ukkoclot/src/tg/send-animation)
  (:import-from :serapeum :->)
  (:export :delete-message :try-delete-message))
(in-package :ukkoclot/src/tg/delete-message)

(define-tg-method (delete-message boolean)
  (chat-id (or integer string))
  (message-id integer))

(-> try-delete-message (message) boolean)
(defun try-delete-message (msg)
  "Attempt to delete the MSG, on failure reply with a GIF of the DO NOT cat."
  (handler-case
      (delete-message :chat-id (message-chat-id msg)
                      :message-id (message-id msg))
    (error ()
      (handler-case
          (prog1 nil
            (reply-animation msg #P"blob/do-not.mp4"
                             :allow-sending-without-reply nil))
        (error () nil)))))