;; SPDX-License-Identifier: EUPL-1.2 ;; SPDX-FileCopyrightText: 2025 Uko Kokņevičs (defpackage :ukkoclot/src/tg/set-my-name (:documentation "setMyName Telegram method.") (:use :c2cl :ukkoclot/src/tg/bot-name :ukkoclot/src/tg/get-my-name :ukkoclot/src/tg/method-macros) (:export :set-my-name)) (in-package :ukkoclot/src/tg/set-my-name) (define-tg-method (set-my-name% boolean) (name (or string null) nil) (language-code (or string null) nil)) (defun set-my-name (&key (name nil) (language-code nil)) "setMyName Telegram method. We also first check if the name is already set because setMyName has a very heavy rate limiting impact." (block nil (when name (let ((curr-name (get-my-name :language-code language-code))) (when (string= name (bot-name-name curr-name)) (return)))) (unless (set-my-name% :name name :language-code language-code) (error "Failed to set name"))))