summaryrefslogtreecommitdiff
path: root/src/tg/message.lisp
blob: 6739189e49963de43b359cfefc6e3faf140a50cb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
;; SPDX-License-Identifier: EUPL-1.2
;; SPDX-FileCopyrightText: 2025 Uko Kokņevičs <perkontevs@gmail.com>
(defpackage :ukkoclot/src/tg/message
  (:use
   :c2cl
   :ukkoclot/src/tg/animation
   :ukkoclot/src/tg/chat
   :ukkoclot/src/tg/message-entity
   :ukkoclot/src/tg/photo-size
   :ukkoclot/src/tg/type-macros
   :ukkoclot/src/tg/user)
  (:export
   #:message-chat-id
   #:message-thread-id
   #:message-id

   #: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-animation
   #:message-photo
   #:message-caption
   #:message-show-caption-above-media
   #:message-has-media-spoiler
   #:message-new-chat-members
   #:message-new-chat-title
   #:message-new-chat-photo
   #: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))
(in-package :ukkoclot/src/tg/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)
  ;; (sender-chat (or chat null) nil)
  (sender-boost-count (or integer null) nil)
  (sender-business-bot (or user null) nil)
  (date integer)
  (business-connection-id (or string null) nil)
  (chat chat nil)
  ;; (forward-origin (or message-origin null) nil)
  (is-topic-message boolean nil)
  (is-automatic-forward boolean nil)
  (reply-to-message (or message null) nil)
  ;; (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)
  (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)
  ;; (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)
  ;; (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)
  ;; (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)
  ) ; lint:suppress closing-parens-same-line whitespace-before-close-paren

(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))