Skip to content

Commit a02de54

Browse files
committed
react: add default reaction type, fix custom_emoji_id naming
1 parent 08f2e85 commit a02de54

File tree

6 files changed

+129
-141
lines changed

6 files changed

+129
-141
lines changed

chat.go

+42-42
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,16 @@ import (
1010
type User struct {
1111
ID int64 `json:"id"`
1212

13-
FirstName string `json:"first_name"`
14-
LastName string `json:"last_name"`
15-
IsForum bool `json:"is_forum"`
16-
Username string `json:"username"`
17-
LanguageCode string `json:"language_code"`
18-
IsBot bool `json:"is_bot"`
19-
IsPremium bool `json:"is_premium"`
20-
AddedToMenu bool `json:"added_to_attachment_menu"`
21-
Usernames []string `json:"active_usernames"`
22-
CustomEmojiStatus string `json:"emoji_status_custom_emoji_id"`
13+
FirstName string `json:"first_name"`
14+
LastName string `json:"last_name"`
15+
IsForum bool `json:"is_forum"`
16+
Username string `json:"username"`
17+
LanguageCode string `json:"language_code"`
18+
IsBot bool `json:"is_bot"`
19+
IsPremium bool `json:"is_premium"`
20+
AddedToMenu bool `json:"added_to_attachment_menu"`
21+
Usernames []string `json:"active_usernames"`
22+
StatusCustomEmojiID string `json:"emoji_status_custom_emoji_id"`
2323

2424
// Returns only in getMe
2525
CanJoinGroups bool `json:"can_join_groups"`
@@ -49,38 +49,38 @@ type Chat struct {
4949
Username string `json:"username"`
5050

5151
// Returns only in getChat
52-
Bio string `json:"bio,omitempty"`
53-
Photo *ChatPhoto `json:"photo,omitempty"`
54-
Description string `json:"description,omitempty"`
55-
InviteLink string `json:"invite_link,omitempty"`
56-
PinnedMessage *Message `json:"pinned_message,omitempty"`
57-
Permissions *Rights `json:"permissions,omitempty"`
58-
Reactions []Reaction `json:"available_reactions"`
59-
SlowMode int `json:"slow_mode_delay,omitempty"`
60-
StickerSet string `json:"sticker_set_name,omitempty"`
61-
CanSetStickerSet bool `json:"can_set_sticker_set,omitempty"`
62-
CustomEmojiSetName string `json:"custom_emoji_sticker_set_name"`
63-
LinkedChatID int64 `json:"linked_chat_id,omitempty"`
64-
ChatLocation *ChatLocation `json:"location,omitempty"`
65-
Private bool `json:"has_private_forwards,omitempty"`
66-
Protected bool `json:"has_protected_content,omitempty"`
67-
NoVoiceAndVideo bool `json:"has_restricted_voice_and_video_messages"`
68-
HasHiddenMembers bool `json:"has_hidden_members,omitempty"`
69-
AggressiveAntiSpam bool `json:"has_aggressive_anti_spam_enabled,omitempty"`
70-
CustomEmojiID string `json:"emoji_status_custom_emoji_id"`
71-
EmojiExpirationUnixtime int64 `json:"emoji_status_expiration_date"`
72-
BackgroundEmojiID string `json:"background_custom_emoji_id"`
73-
AccentColorID int `json:"accent_color_id"`
74-
ProfileAccentColorID int `json:"profile_accent_color_id"`
75-
ProfileBackgroundEmojiID string `json:"profile_background_custom_emoji_id"`
76-
HasVisibleHistory bool `json:"has_visible_history"`
77-
UnrestrictBoosts int `json:"unrestrict_boost_count"`
78-
MaxReactions int `json:"max_reaction_count"`
79-
Birthdate Birthdate `json:"birthdate,omitempty"`
80-
PersonalChat *Chat `json:"personal_chat,omitempty"`
81-
BusinessIntro BusinessIntro `json:"business_intro,omitempty"`
82-
BusinessLocation BusinessLocation `json:"business_location,omitempty"`
83-
BusinessOpeningHours BusinessOpeningHours `json:"business_opening_hours,omitempty"`
52+
Bio string `json:"bio,omitempty"`
53+
Photo *ChatPhoto `json:"photo,omitempty"`
54+
Description string `json:"description,omitempty"`
55+
InviteLink string `json:"invite_link,omitempty"`
56+
PinnedMessage *Message `json:"pinned_message,omitempty"`
57+
Permissions *Rights `json:"permissions,omitempty"`
58+
Reactions []Reaction `json:"available_reactions"`
59+
SlowMode int `json:"slow_mode_delay,omitempty"`
60+
StickerSet string `json:"sticker_set_name,omitempty"`
61+
CanSetStickerSet bool `json:"can_set_sticker_set,omitempty"`
62+
CustomEmojiStickerSet string `json:"custom_emoji_sticker_set_name"`
63+
LinkedChatID int64 `json:"linked_chat_id,omitempty"`
64+
ChatLocation *ChatLocation `json:"location,omitempty"`
65+
Private bool `json:"has_private_forwards,omitempty"`
66+
Protected bool `json:"has_protected_content,omitempty"`
67+
NoVoiceAndVideo bool `json:"has_restricted_voice_and_video_messages"`
68+
HasHiddenMembers bool `json:"has_hidden_members,omitempty"`
69+
AggressiveAntiSpam bool `json:"has_aggressive_anti_spam_enabled,omitempty"`
70+
StatusCustomEmojiID string `json:"emoji_status_custom_emoji_id"`
71+
EmojiExpirationUnixtime int64 `json:"emoji_status_expiration_date"`
72+
BackgroundCustomEmojiID string `json:"background_custom_emoji_id"`
73+
AccentColorID int `json:"accent_color_id"`
74+
ProfileAccentColorID int `json:"profile_accent_color_id"`
75+
ProfileBackgroundCustomEmojiID string `json:"profile_background_custom_emoji_id"`
76+
HasVisibleHistory bool `json:"has_visible_history"`
77+
UnrestrictBoosts int `json:"unrestrict_boost_count"`
78+
MaxReactions int `json:"max_reaction_count"`
79+
Birthdate Birthdate `json:"birthdate,omitempty"`
80+
PersonalChat *Chat `json:"personal_chat,omitempty"`
81+
BusinessIntro BusinessIntro `json:"business_intro,omitempty"`
82+
BusinessLocation BusinessLocation `json:"business_location,omitempty"`
83+
BusinessOpeningHours BusinessOpeningHours `json:"business_opening_hours,omitempty"`
8484
}
8585

8686
// Recipient returns chat ID (see Recipient interface).

media.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ type Sticker struct {
324324
SetName string `json:"set_name"`
325325
PremiumAnimation *File `json:"premium_animation"`
326326
MaskPosition *MaskPosition `json:"mask_position"`
327-
CustomEmoji string `json:"custom_emoji_id"`
327+
CustomEmojiID string `json:"custom_emoji_id"`
328328
Repaint bool `json:"needs_repainting"`
329329
}
330330

message.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@ type MessageEntity struct {
375375
Language string `json:"language,omitempty"`
376376

377377
// (Optional) For EntityCustomEmoji entity type only.
378-
CustomEmoji string `json:"custom_emoji_id"`
378+
CustomEmojiID string `json:"custom_emoji_id"`
379379
}
380380

381381
// EntityType is a MessageEntity type.
@@ -650,7 +650,7 @@ type ExternalReplyInfo struct {
650650
// Available only if the original chat is a supergroup or a channel.
651651
MessageID int `json:"message_id"`
652652

653-
// (Optional) ReactionOptions used for link preview generation for the original message,
653+
// (Optional) PreviewOptions used for link preview generation for the original message,
654654
// if it is a text message.
655655
PreviewOptions *PreviewOptions `json:"link_preview_options"`
656656

react.go

+6-18
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ type ReactionCount struct {
3232
Count int `json:"total_count"`
3333
}
3434

35-
// ReactionOptions represents an object of reaction options.
36-
type ReactionOptions struct {
35+
// Reactions represents an object of reaction options.
36+
type Reactions struct {
3737
// List of reaction types to set on the message.
3838
Reactions []Reaction `json:"reaction"`
3939

@@ -44,36 +44,24 @@ type ReactionOptions struct {
4444
// React changes the chosen reactions on a message. Service messages can't be
4545
// reacted to. Automatically forwarded messages from a channel to its discussion group have
4646
// the same available reactions as messages in the channel.
47-
func (b *Bot) React(to Recipient, msg Editable, opts ReactionOptions) error {
47+
func (b *Bot) React(to Recipient, msg Editable, r Reactions) error {
4848
if to == nil {
4949
return ErrBadRecipient
5050
}
51-
msgID, _ := msg.MessageSig()
5251

52+
msgID, _ := msg.MessageSig()
5353
params := map[string]string{
5454
"chat_id": to.Recipient(),
5555
"message_id": msgID,
5656
}
5757

58-
reactions := make([]Reaction, 0, len(opts.Reactions))
59-
60-
for _, reaction := range opts.Reactions {
61-
// Type is required, use ReactionTypeEmoji as default
62-
if reaction.Type == "" {
63-
reaction.Type = ReactionTypeEmoji
64-
}
65-
66-
reactions = append(reactions, reaction)
67-
}
68-
69-
data, _ := json.Marshal(reactions)
58+
data, _ := json.Marshal(r.Reactions)
7059
params["reaction"] = string(data)
7160

72-
if opts.Big {
61+
if r.Big {
7362
params["is_big"] = "true"
7463
}
7564

7665
_, err := b.Raw("setMessageReaction", params)
77-
7866
return err
7967
}

react/react.go

+74-74
Original file line numberDiff line numberDiff line change
@@ -6,82 +6,82 @@ import (
66

77
type Reaction = tele.Reaction
88

9-
func React(r ...Reaction) tele.ReactionOptions {
10-
return tele.ReactionOptions{Reactions: r}
9+
func React(r ...Reaction) tele.Reactions {
10+
return tele.Reactions{Reactions: r}
1111
}
1212

1313
// Currently available emojis.
1414
var (
15-
ThumbUp = Reaction{Emoji: "👍"}
16-
ThumbDown = Reaction{Emoji: "👎"}
17-
Heart = Reaction{Emoji: "❤"}
18-
Fire = Reaction{Emoji: "🔥"}
19-
HeartEyes = Reaction{Emoji: "😍"}
20-
ClappingHands = Reaction{Emoji: "👏"}
21-
GrinningFace = Reaction{Emoji: "😁"}
22-
ThinkingFace = Reaction{Emoji: "🤔"}
23-
ExplodingHead = Reaction{Emoji: "🤯"}
24-
ScreamingFace = Reaction{Emoji: "😱"}
25-
SwearingFace = Reaction{Emoji: "🤬"}
26-
CryingFace = Reaction{Emoji: "😢"}
27-
PartyPopper = Reaction{Emoji: "🎉"}
28-
StarStruck = Reaction{Emoji: "🤩"}
29-
VomitingFace = Reaction{Emoji: "🤮"}
30-
PileOfPoo = Reaction{Emoji: "💩"}
31-
PrayingHands = Reaction{Emoji: "🙏"}
32-
OkHand = Reaction{Emoji: "👌"}
33-
DoveOfPeace = Reaction{Emoji: "🕊"}
34-
ClownFace = Reaction{Emoji: "🤡"}
35-
YawningFace = Reaction{Emoji: "🥱"}
36-
WoozyFace = Reaction{Emoji: "🥴"}
37-
Whale = Reaction{Emoji: "🐳"}
38-
HeartOnFire = Reaction{Emoji: "❤‍🔥"}
39-
MoonFace = Reaction{Emoji: "🌚"}
40-
HotDog = Reaction{Emoji: "🌭"}
41-
HundredPoints = Reaction{Emoji: "💯"}
42-
RollingOnTheFloorLaughing = Reaction{Emoji: "🤣"}
43-
Lightning = Reaction{Emoji: "⚡"}
44-
Banana = Reaction{Emoji: "🍌"}
45-
Trophy = Reaction{Emoji: "🏆"}
46-
BrokenHeart = Reaction{Emoji: "💔"}
47-
FaceWithRaisedEyebrow = Reaction{Emoji: "🤨"}
48-
NeutralFace = Reaction{Emoji: "😐"}
49-
Strawberry = Reaction{Emoji: "🍓"}
50-
Champagne = Reaction{Emoji: "🍾"}
51-
KissMark = Reaction{Emoji: "💋"}
52-
MiddleFinger = Reaction{Emoji: "🖕"}
53-
EvilFace = Reaction{Emoji: "😈"}
54-
SleepingFace = Reaction{Emoji: "😴"}
55-
LoudlyCryingFace = Reaction{Emoji: "😭"}
56-
NerdFace = Reaction{Emoji: "🤓"}
57-
Ghost = Reaction{Emoji: "👻"}
58-
Engineer = Reaction{Emoji: "👨‍💻"}
59-
Eyes = Reaction{Emoji: "👀"}
60-
JackOLantern = Reaction{Emoji: "🎃"}
61-
NoMonkey = Reaction{Emoji: "🙈"}
62-
SmilingFaceWithHalo = Reaction{Emoji: "😇"}
63-
FearfulFace = Reaction{Emoji: "😨"}
64-
Handshake = Reaction{Emoji: "🤝"}
65-
WritingHand = Reaction{Emoji: "✍"}
66-
HuggingFace = Reaction{Emoji: "🤗"}
67-
Brain = Reaction{Emoji: "🫡"}
68-
SantaClaus = Reaction{Emoji: "🎅"}
69-
ChristmasTree = Reaction{Emoji: "🎄"}
70-
Snowman = Reaction{Emoji: "☃"}
71-
NailPolish = Reaction{Emoji: "💅"}
72-
ZanyFace = Reaction{Emoji: "🤪"}
73-
Moai = Reaction{Emoji: "🗿"}
74-
Cool = Reaction{Emoji: "🆒"}
75-
HeartWithArrow = Reaction{Emoji: "💘"}
76-
HearMonkey = Reaction{Emoji: "🙉"}
77-
Unicorn = Reaction{Emoji: "🦄"}
78-
FaceBlowingKiss = Reaction{Emoji: "😘"}
79-
Pill = Reaction{Emoji: "💊"}
80-
SpeaklessMonkey = Reaction{Emoji: "🙊"}
81-
Sunglasses = Reaction{Emoji: "😎"}
82-
AlienMonster = Reaction{Emoji: "👾"}
83-
ManShrugging = Reaction{Emoji: "🤷‍♂️"}
84-
PersonShrugging = Reaction{Emoji: "🤷"}
85-
WomanShrugging = Reaction{Emoji: "🤷‍♀️"}
86-
PoutingFace = Reaction{Emoji: "😡"}
15+
ThumbUp = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "👍"}
16+
ThumbDown = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "👎"}
17+
Heart = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "❤"}
18+
Fire = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🔥"}
19+
HeartEyes = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "😍"}
20+
ClappingHands = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "👏"}
21+
GrinningFace = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "😁"}
22+
ThinkingFace = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🤔"}
23+
ExplodingHead = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🤯"}
24+
ScreamingFace = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "😱"}
25+
SwearingFace = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🤬"}
26+
CryingFace = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "😢"}
27+
PartyPopper = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🎉"}
28+
StarStruck = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🤩"}
29+
VomitingFace = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🤮"}
30+
PileOfPoo = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "💩"}
31+
PrayingHands = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🙏"}
32+
OkHand = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "👌"}
33+
DoveOfPeace = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🕊"}
34+
ClownFace = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🤡"}
35+
YawningFace = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🥱"}
36+
WoozyFace = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🥴"}
37+
Whale = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🐳"}
38+
HeartOnFire = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "❤‍🔥"}
39+
MoonFace = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🌚"}
40+
HotDog = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🌭"}
41+
HundredPoints = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "💯"}
42+
RollingOnTheFloorLaughing = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🤣"}
43+
Lightning = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "⚡"}
44+
Banana = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🍌"}
45+
Trophy = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🏆"}
46+
BrokenHeart = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "💔"}
47+
FaceWithRaisedEyebrow = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🤨"}
48+
NeutralFace = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "😐"}
49+
Strawberry = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🍓"}
50+
Champagne = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🍾"}
51+
KissMark = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "💋"}
52+
MiddleFinger = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🖕"}
53+
EvilFace = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "😈"}
54+
SleepingFace = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "😴"}
55+
LoudlyCryingFace = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "😭"}
56+
NerdFace = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🤓"}
57+
Ghost = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "👻"}
58+
Engineer = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "👨‍💻"}
59+
Eyes = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "👀"}
60+
JackOLantern = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🎃"}
61+
NoMonkey = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🙈"}
62+
SmilingFaceWithHalo = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "😇"}
63+
FearfulFace = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "😨"}
64+
Handshake = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🤝"}
65+
WritingHand = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "✍"}
66+
HuggingFace = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🤗"}
67+
Brain = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🫡"}
68+
SantaClaus = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🎅"}
69+
ChristmasTree = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🎄"}
70+
Snowman = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "☃"}
71+
NailPolish = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "💅"}
72+
ZanyFace = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🤪"}
73+
Moai = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🗿"}
74+
Cool = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🆒"}
75+
HeartWithArrow = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "💘"}
76+
HearMonkey = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🙉"}
77+
Unicorn = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🦄"}
78+
FaceBlowingKiss = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "😘"}
79+
Pill = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "💊"}
80+
SpeaklessMonkey = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🙊"}
81+
Sunglasses = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "😎"}
82+
AlienMonster = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "👾"}
83+
ManShrugging = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🤷‍♂️"}
84+
PersonShrugging = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🤷"}
85+
WomanShrugging = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "🤷‍♀️"}
86+
PoutingFace = Reaction{Type: tele.ReactionTypeEmoji, Emoji: "😡"}
8787
)

topic.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ import (
66
)
77

88
type Topic struct {
9-
Name string `json:"name"`
10-
IconColor int `json:"icon_color"`
11-
IconCustomEmoji string `json:"icon_custom_emoji_id"`
12-
ThreadID int `json:"message_thread_id"`
9+
Name string `json:"name"`
10+
IconColor int `json:"icon_color"`
11+
IconCustomEmojiID string `json:"icon_custom_emoji_id"`
12+
ThreadID int `json:"message_thread_id"`
1313
}
1414

1515
// CreateTopic creates a topic in a forum supergroup chat.

0 commit comments

Comments
 (0)