From 435b1e3b63c7bbd1aa77fbbe457d3feb705af6d0 Mon Sep 17 00:00:00 2001 From: Demian Date: Sun, 7 Nov 2021 18:27:25 +0200 Subject: [PATCH] context: implement Media function, return Caption in Text --- context.go | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/context.go b/context.go index 85a7fa0..c0facc8 100644 --- a/context.go +++ b/context.go @@ -22,6 +22,9 @@ type Context interface { // Message returns stored message if such presented. Message() *Message + // Media returns message media if such presented. + Media() Media + // Callback returns stored callback if such presented. Callback() *Callback @@ -188,6 +191,29 @@ func (c *nativeContext) Message() *Message { } } +func (c *nativeContext) Media() Media { + m := c.Message() + + switch { + case m.Photo != nil: + return m.Photo + case m.Voice != nil: + return m.Voice + case m.Audio != nil: + return m.Audio + case m.Animation != nil: + return m.Animation + case m.Document != nil: + return m.Document + case m.Video != nil: + return m.Video + case m.VideoNote != nil: + return m.VideoNote + default: + return nil + } +} + func (c *nativeContext) Callback() *Callback { return c.callback } @@ -284,14 +310,22 @@ func (c *nativeContext) Recipient() Recipient { } func (c *nativeContext) Text() string { + var m *Message + switch { case c.message != nil: - return c.message.Text + m = c.message case c.callback != nil && c.callback.Message != nil: - return c.callback.Message.Text + m = c.callback.Message default: return "" } + + if m.Caption != "" { + return m.Caption + } + + return m.Text } func (c *nativeContext) Data() string {