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