summaryrefslogtreecommitdiff
path: root/src/tg-types/message.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tg-types/message.lisp')
-rw-r--r--src/tg-types/message.lisp168
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))