;; SPDX-License-Identifier: EUPL-1.2 ;; SPDX-FileCopyrightText: 2025 Uko Kokņevičs (defpackage :ukkoclot/src/tg/get-me (:documentation "getMe Telegram method") (:use :c2cl :ukkoclot/src/tg/method-macros :ukkoclot/src/tg/user) (:import-from :serapeum :->) (:import-from :state) (:export :bot-id :bot-username :get-me)) (in-package :ukkoclot/src/tg/get-me) (define-tg-method (get-me% user :GET)) (-> get-me () user) (defun get-me () "getMe Telegram method" (let ((me (get-me%))) (setf (state:id%) (user-id me)) (setf (state:username%) (user-username me)) me)) (-> bot-id () integer) (defun bot-id () "Get the bot's ID, this memoizes the result" (or (state:id%) (progn (get-me) (state:id%)))) (-> bot-username () string) (defun bot-username () "Get the bot's username, this memoizes the result" (or (state:username%) (progn (get-me) (state:username%))))