diff options
Diffstat (limited to 'src/tg-types/message.lisp')
| -rw-r--r-- | src/tg-types/message.lisp | 168 |
1 files changed, 168 insertions, 0 deletions
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 @@ | |||
| 1 | ;; SPDX-License-Identifier: EUPL-1.2 | ||
| 2 | ;; SPDX-FileCopyrightText: 2025 Uko Kokņevičs <perkontevs@gmail.com> | ||
| 3 | (defpackage :ukkoclot/tg-types/message | ||
| 4 | (:use :c2cl :ukkoclot/tg-types/macros | ||
| 5 | |||
| 6 | :ukkoclot/tg-types/chat | ||
| 7 | :ukkoclot/tg-types/message-entity | ||
| 8 | :ukkoclot/tg-types/user) | ||
| 9 | (:export | ||
| 10 | message | ||
| 11 | make-message | ||
| 12 | message-p | ||
| 13 | copy-message | ||
| 14 | message-message-id | ||
| 15 | message-message-thread-id | ||
| 16 | message-from | ||
| 17 | message-sender-boost-count | ||
| 18 | message-sender-business-bot | ||
| 19 | message-date | ||
| 20 | message-business-connection-id | ||
| 21 | message-chat | ||
| 22 | message-is-topic-message | ||
| 23 | message-is-automatic-forward | ||
| 24 | message-reply-to-message | ||
| 25 | message-reply-to-checklist-task-id | ||
| 26 | message-via-bot | ||
| 27 | message-edit-date | ||
| 28 | message-has-protected-content | ||
| 29 | message-is-from-offline | ||
| 30 | message-is-paid-post | ||
| 31 | message-media-group-id | ||
| 32 | message-author-signature | ||
| 33 | message-paid-star-count | ||
| 34 | message-text | ||
| 35 | message-entities | ||
| 36 | message-effect-id | ||
| 37 | message-caption | ||
| 38 | message-show-caption-above-media | ||
| 39 | message-has-media-spoiler | ||
| 40 | message-new-chat-members | ||
| 41 | message-new-chat-title | ||
| 42 | message-delete-chat-photo | ||
| 43 | message-group-chat-created | ||
| 44 | message-supergroup-chat-created | ||
| 45 | message-channel-chat-created | ||
| 46 | message-migrate-to-chat-id | ||
| 47 | message-migrate-from-chat-id | ||
| 48 | message-pinned-message | ||
| 49 | message-connected-website | ||
| 50 | |||
| 51 | hash->message | ||
| 52 | message-id | ||
| 53 | message-chat-id | ||
| 54 | message-thread-id | ||
| 55 | parse-message-array)) | ||
| 56 | (in-package :ukkoclot/tg-types/message) | ||
| 57 | |||
| 58 | ;; If this is a MaybeInaccessibleMessage date will be 0 if this is inaccessible | ||
| 59 | (define-tg-type message | ||
| 60 | (message-id integer) | ||
| 61 | (message-thread-id (or integer null) nil) | ||
| 62 | ;; (direct-messages-topic (or direct-messages-topic null) nil) | ||
| 63 | (from (or user null) nil :parser hash->user) | ||
| 64 | ;; (sender-chat (or chat null) nil) | ||
| 65 | (sender-boost-count (or integer null) nil) | ||
| 66 | (sender-business-bot (or user null) nil :parser hash->user) | ||
| 67 | (date integer) | ||
| 68 | (business-connection-id (or string null) nil) | ||
| 69 | (chat chat nil :parser hash->chat) | ||
| 70 | ;; (forward-origin (or message-origin null) nil) | ||
| 71 | (is-topic-message boolean nil) | ||
| 72 | (is-automatic-forward boolean nil) | ||
| 73 | (reply-to-message (or message null) nil :parser hash->message) | ||
| 74 | ;; (external-reply (or external-reply-info null) nil) | ||
| 75 | ;; (quote (or text-quote null) nil) | ||
| 76 | ;; (reply-to-story (or story null) nil) | ||
| 77 | (reply-to-checklist-task-id (or integer null) nil) | ||
| 78 | (via-bot (or user null) nil :parser hash->user) | ||
| 79 | (edit-date (or integer null) nil) | ||
| 80 | (has-protected-content boolean nil) | ||
| 81 | (is-from-offline boolean nil) | ||
| 82 | (is-paid-post boolean nil) | ||
| 83 | (media-group-id (or string null) nil) | ||
| 84 | (author-signature (or string null) nil) | ||
| 85 | (paid-star-count (or string null) nil) | ||
| 86 | (text (or string null) nil) | ||
| 87 | (entities (or (array message-entity) null) nil :parser parse-message-entity-array) | ||
| 88 | ;; (link-preview-options (or link-preview-options null) nil) | ||
| 89 | ;; (suggested-post-info (or suggested-post-info null) nil) | ||
| 90 | (effect-id (or string null) nil) | ||
| 91 | ;; (animation (or animation null) nil) | ||
| 92 | ;; (audio (or audio null) nil) | ||
| 93 | ;; (document (or document null) nil) | ||
| 94 | ;; (paid-media (or paid-media-info null) nil) | ||
| 95 | ;; (photo (or (array photo-size) null) nil) | ||
| 96 | ;; (sticker (or sticker null) nil) | ||
| 97 | ;; (story (or story null) nil) | ||
| 98 | ;; (video (or video null) nil) | ||
| 99 | ;; (video-note (or video-note null) nil) | ||
| 100 | ;; (voice (or voice null) nil) | ||
| 101 | (caption (or string null) nil) | ||
| 102 | ;; (caption-entities (or (array message-entity) null) nil) | ||
| 103 | (show-caption-above-media boolean nil) | ||
| 104 | (has-media-spoiler boolean nil) | ||
| 105 | ;; (contact (or contact null) nil) | ||
| 106 | ;; (dice (or dice null) nil) | ||
| 107 | ;; (game (or game null) nil) | ||
| 108 | ;; (poll (or poll null) nil) | ||
| 109 | ;; (venue (or venue null) nil) | ||
| 110 | ;; (location (or location null) nil) | ||
| 111 | (new-chat-members (or (array user) null) nil :parser parse-user-array) | ||
| 112 | ;; (left-chat-member (or user null) nil) | ||
| 113 | (new-chat-title (or string null) nil) | ||
| 114 | ;; (new-chat-photo (or (array photo-size) null) nil) | ||
| 115 | (delete-chat-photo boolean nil) | ||
| 116 | (group-chat-created boolean nil) | ||
| 117 | (supergroup-chat-created boolean nil) | ||
| 118 | (channel-chat-created boolean nil) | ||
| 119 | ;; (message-auto-delete-timer-changed (orp message-auto-delete-timer-changed null) nil) | ||
| 120 | (migrate-to-chat-id (or integer null) nil) | ||
| 121 | (migrate-from-chat-id (or integer null) nil) | ||
| 122 | (pinned-message (or message null) nil :parser hash->message) | ||
| 123 | ;; (invoice (or invoice null) nil) | ||
| 124 | ;; (successful-payment (or successful-payment null) nil) | ||
| 125 | ;; (refunded-payment (or refunded-payment null) nil) | ||
| 126 | ;; (users-shared (or users-shared null) nil) | ||
| 127 | ;; (chat-shared (or chat-shared null) nil) | ||
| 128 | ;; (gift (or gift-info null) nil) | ||
| 129 | ;; (unique-gift (or unique-gift-info null) nil) | ||
| 130 | (connected-website (or string null) nil) | ||
| 131 | ;; (write-access-allowed (or write-access-allowed null) nil) | ||
| 132 | ;; (passport-data (or passport-data null) nil) | ||
| 133 | ;; (proximity-alert-triggered (or proximity-alert-triggered null) nil) | ||
| 134 | ;; (boost-added (or chat-boost-added null) nil) | ||
| 135 | ;; (chat-background-set (or chat-background null) nil) | ||
| 136 | ;; (checklist-tasks-added (or checklist-tasks-added null) nil) | ||
| 137 | ;; (direct-message-price-changed (or direct-message-price-changed null) nil) | ||
| 138 | ;; (forum-topic-created (or forum-topic-created null) nil) | ||
| 139 | ;; (forum-topic-edited (or forum-topic-edited null) nil) | ||
| 140 | ;; (forum-topic-closed (or forum-topic-closed null) nil) | ||
| 141 | ;; (forum-topic-reopened (or forum-topic-reopened null) nil) | ||
| 142 | ;; (general-forum-topic-hidden (or general-forum-topic-hidden null) nil) | ||
| 143 | ;; (general-forum-topic-unhidden (or general-forum-topic-unhidden null) nil) | ||
| 144 | ;; (giveaway-created (or giveaway-created null) nil) | ||
| 145 | ;; (giveaway-winners (or giveaway-winners null) nil) | ||
| 146 | ;; (giveaway-completed (or giveaway-completed null) nil) | ||
| 147 | ;; (paid-message-price-changed (or paid-message-price-changed null) nil) | ||
| 148 | ;; (suggested-post-approved (or suggested-post-approved null) nil) | ||
| 149 | ;; (suggested-post-approval-failed (or suggested-post-approval-failed null) nil) | ||
| 150 | ;; (suggested-post-declined (or suggested-post-declined null) nil) | ||
| 151 | ;; (suggested-post-paid (or suggested-post-paid null) nil) | ||
| 152 | ;; (suggested-post-refunded (or suggested-post-refunded null) nil) | ||
| 153 | ;; (video-chat-scheduled (or video-chat-scheduled null) nil) | ||
| 154 | ;; (video-chat-started (or video-chat-started null) nil) | ||
| 155 | ;; (video-chat-ended (or video-chat-ended null) nil) | ||
| 156 | ;; (video-chat-participants-invited (or video-chat-participants-invited null) nil) | ||
| 157 | ;; (web-app-data (or web-app-data null) nil) | ||
| 158 | ;; (reply-markup (or inline-keyboard-markup null) nil) | ||
| 159 | ) | ||
| 160 | |||
| 161 | (defun message-id (msg) | ||
| 162 | (message-message-id msg)) | ||
| 163 | |||
| 164 | (defun message-chat-id (msg) | ||
| 165 | (chat-id (message-chat msg))) | ||
| 166 | |||
| 167 | (defun message-thread-id (msg) | ||
| 168 | (message-message-thread-id msg)) | ||