From 4da3ad1f569832845b58c3ce35149633a2bb665c Mon Sep 17 00:00:00 2001 From: Uko Kokņevičs Date: Thu, 9 Oct 2025 21:58:43 +0300 Subject: Initial commit --- src/tg-types/message.lisp | 168 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 168 insertions(+) create mode 100644 src/tg-types/message.lisp (limited to 'src/tg-types/message.lisp') diff --git a/src/tg-types/message.lisp b/src/tg-types/message.lisp new file mode 100644 index 0000000..fee0734 --- /dev/null +++ b/src/tg-types/message.lisp @@ -0,0 +1,168 @@ +;; SPDX-License-Identifier: EUPL-1.2 +;; SPDX-FileCopyrightText: 2025 Uko Kokņevičs +(defpackage :ukkoclot/tg-types/message + (:use :c2cl :ukkoclot/tg-types/macros + + :ukkoclot/tg-types/chat + :ukkoclot/tg-types/message-entity + :ukkoclot/tg-types/user) + (:export + message + make-message + message-p + copy-message + message-message-id + message-message-thread-id + message-from + message-sender-boost-count + message-sender-business-bot + message-date + message-business-connection-id + message-chat + message-is-topic-message + message-is-automatic-forward + message-reply-to-message + message-reply-to-checklist-task-id + message-via-bot + message-edit-date + message-has-protected-content + message-is-from-offline + message-is-paid-post + message-media-group-id + message-author-signature + message-paid-star-count + message-text + message-entities + message-effect-id + message-caption + message-show-caption-above-media + message-has-media-spoiler + message-new-chat-members + message-new-chat-title + message-delete-chat-photo + message-group-chat-created + message-supergroup-chat-created + message-channel-chat-created + message-migrate-to-chat-id + message-migrate-from-chat-id + message-pinned-message + message-connected-website + + hash->message + message-id + message-chat-id + message-thread-id + parse-message-array)) +(in-package :ukkoclot/tg-types/message) + +;; If this is a MaybeInaccessibleMessage date will be 0 if this is inaccessible +(define-tg-type message + (message-id integer) + (message-thread-id (or integer null) nil) + ;; (direct-messages-topic (or direct-messages-topic null) nil) + (from (or user null) nil :parser hash->user) + ;; (sender-chat (or chat null) nil) + (sender-boost-count (or integer null) nil) + (sender-business-bot (or user null) nil :parser hash->user) + (date integer) + (business-connection-id (or string null) nil) + (chat chat nil :parser hash->chat) + ;; (forward-origin (or message-origin null) nil) + (is-topic-message boolean nil) + (is-automatic-forward boolean nil) + (reply-to-message (or message null) nil :parser hash->message) + ;; (external-reply (or external-reply-info null) nil) + ;; (quote (or text-quote null) nil) + ;; (reply-to-story (or story null) nil) + (reply-to-checklist-task-id (or integer null) nil) + (via-bot (or user null) nil :parser hash->user) + (edit-date (or integer null) nil) + (has-protected-content boolean nil) + (is-from-offline boolean nil) + (is-paid-post boolean nil) + (media-group-id (or string null) nil) + (author-signature (or string null) nil) + (paid-star-count (or string null) nil) + (text (or string null) nil) + (entities (or (array message-entity) null) nil :parser parse-message-entity-array) + ;; (link-preview-options (or link-preview-options null) nil) + ;; (suggested-post-info (or suggested-post-info null) nil) + (effect-id (or string null) nil) + ;; (animation (or animation null) nil) + ;; (audio (or audio null) nil) + ;; (document (or document null) nil) + ;; (paid-media (or paid-media-info null) nil) + ;; (photo (or (array photo-size) null) nil) + ;; (sticker (or sticker null) nil) + ;; (story (or story null) nil) + ;; (video (or video null) nil) + ;; (video-note (or video-note null) nil) + ;; (voice (or voice null) nil) + (caption (or string null) nil) + ;; (caption-entities (or (array message-entity) null) nil) + (show-caption-above-media boolean nil) + (has-media-spoiler boolean nil) + ;; (contact (or contact null) nil) + ;; (dice (or dice null) nil) + ;; (game (or game null) nil) + ;; (poll (or poll null) nil) + ;; (venue (or venue null) nil) + ;; (location (or location null) nil) + (new-chat-members (or (array user) null) nil :parser parse-user-array) + ;; (left-chat-member (or user null) nil) + (new-chat-title (or string null) nil) + ;; (new-chat-photo (or (array photo-size) null) nil) + (delete-chat-photo boolean nil) + (group-chat-created boolean nil) + (supergroup-chat-created boolean nil) + (channel-chat-created boolean nil) + ;; (message-auto-delete-timer-changed (orp message-auto-delete-timer-changed null) nil) + (migrate-to-chat-id (or integer null) nil) + (migrate-from-chat-id (or integer null) nil) + (pinned-message (or message null) nil :parser hash->message) + ;; (invoice (or invoice null) nil) + ;; (successful-payment (or successful-payment null) nil) + ;; (refunded-payment (or refunded-payment null) nil) + ;; (users-shared (or users-shared null) nil) + ;; (chat-shared (or chat-shared null) nil) + ;; (gift (or gift-info null) nil) + ;; (unique-gift (or unique-gift-info null) nil) + (connected-website (or string null) nil) + ;; (write-access-allowed (or write-access-allowed null) nil) + ;; (passport-data (or passport-data null) nil) + ;; (proximity-alert-triggered (or proximity-alert-triggered null) nil) + ;; (boost-added (or chat-boost-added null) nil) + ;; (chat-background-set (or chat-background null) nil) + ;; (checklist-tasks-added (or checklist-tasks-added null) nil) + ;; (direct-message-price-changed (or direct-message-price-changed null) nil) + ;; (forum-topic-created (or forum-topic-created null) nil) + ;; (forum-topic-edited (or forum-topic-edited null) nil) + ;; (forum-topic-closed (or forum-topic-closed null) nil) + ;; (forum-topic-reopened (or forum-topic-reopened null) nil) + ;; (general-forum-topic-hidden (or general-forum-topic-hidden null) nil) + ;; (general-forum-topic-unhidden (or general-forum-topic-unhidden null) nil) + ;; (giveaway-created (or giveaway-created null) nil) + ;; (giveaway-winners (or giveaway-winners null) nil) + ;; (giveaway-completed (or giveaway-completed null) nil) + ;; (paid-message-price-changed (or paid-message-price-changed null) nil) + ;; (suggested-post-approved (or suggested-post-approved null) nil) + ;; (suggested-post-approval-failed (or suggested-post-approval-failed null) nil) + ;; (suggested-post-declined (or suggested-post-declined null) nil) + ;; (suggested-post-paid (or suggested-post-paid null) nil) + ;; (suggested-post-refunded (or suggested-post-refunded null) nil) + ;; (video-chat-scheduled (or video-chat-scheduled null) nil) + ;; (video-chat-started (or video-chat-started null) nil) + ;; (video-chat-ended (or video-chat-ended null) nil) + ;; (video-chat-participants-invited (or video-chat-participants-invited null) nil) + ;; (web-app-data (or web-app-data null) nil) + ;; (reply-markup (or inline-keyboard-markup null) nil) + ) + +(defun message-id (msg) + (message-message-id msg)) + +(defun message-chat-id (msg) + (chat-id (message-chat msg))) + +(defun message-thread-id (msg) + (message-message-thread-id msg)) -- cgit v1.2.3