From 5cbecde819a8e220f3fafcf748aef01cf4cffcd8 Mon Sep 17 00:00:00 2001 From: pr0head Date: Sat, 14 Oct 2017 01:05:24 +0300 Subject: [PATCH] Added `editMessageLiveLocation` and `stopMessageLiveLocation` methods --- configs.go | 45 +++++++++++++++++++++++++++++++++++++++++++++ types.go | 21 +++++++++------------ 2 files changed, 54 insertions(+), 12 deletions(-) diff --git a/configs.go b/configs.go index 84912ab..337c601 100644 --- a/configs.go +++ b/configs.go @@ -597,6 +597,51 @@ func (config LocationConfig) method() string { return "sendLocation" } +// LocationConfig contains information about a SendLocation request. +type EditMessageLiveLocationConfig struct { + BaseEdit + Latitude float64 // required + Longitude float64 // required +} + +// values returns a url.Values representation of EditMessageLiveLocationConfig. +func (config EditMessageLiveLocationConfig) values() (url.Values, error) { + v, err := config.BaseEdit.values() + if err != nil { + return v, err + } + + v.Add("latitude", strconv.FormatFloat(config.Latitude, 'f', 6, 64)) + v.Add("longitude", strconv.FormatFloat(config.Longitude, 'f', 6, 64)) + + return v, nil +} + +// method returns Telegram API method name for edit message Live Location. +func (config EditMessageLiveLocationConfig) method() string { + return "editMessageLiveLocation" +} + +// LocationConfig contains information about a StopMessageLiveLocation request. +type StopMessageLiveLocationConfig struct { + BaseEdit +} + +// values returns a url.Values representation of StopMessageLiveLocationConfig. +func (config StopMessageLiveLocationConfig) values() (url.Values, error) { + v, err := config.BaseEdit.values() + if err != nil { + return v, err + } + + return v, nil +} + +// method returns Telegram API method name for stop message Live Location. +func (config StopMessageLiveLocationConfig) method() string { + return "stopMessageLiveLocation" +} + // VenueConfig contains information about a SendVenue request. type VenueConfig struct { BaseChat diff --git a/types.go b/types.go index 691a645..91875bb 100644 --- a/types.go +++ b/types.go @@ -331,9 +331,8 @@ type Contact struct { // Location contains information about a place. type Location struct { - Longitude float64 `json:"longitude"` - Latitude float64 `json:"latitude"` - LivePeriod int `json:"live_period"` + Longitude float64 `json:"longitude"` + Latitude float64 `json:"latitude"` } // Venue contains information about a venue, including its Location. @@ -640,12 +639,11 @@ type InlineQueryResultDocument struct { // InlineQueryResultLocation is an inline query response location. type InlineQueryResultLocation struct { - Type string `json:"type"` // required - ID string `json:"id"` // required - Latitude float64 `json:"latitude"` // required - Longitude float64 `json:"longitude"` // required - LivePeriod int `json:"live_period"` // optional - Title string `json:"title"` // required + Type string `json:"type"` // required + ID string `json:"id"` // required + Latitude float64 `json:"latitude"` // required + Longitude float64 `json:"longitude"` // required + Title string `json:"title"` // required ReplyMarkup *InlineKeyboardMarkup `json:"reply_markup,omitempty"` InputMessageContent interface{} `json:"input_message_content,omitempty"` ThumbURL string `json:"thumb_url"` @@ -681,9 +679,8 @@ type InputTextMessageContent struct { // InputLocationMessageContent contains a location for displaying // as an inline query result. type InputLocationMessageContent struct { - Latitude float64 `json:"latitude"` - Longitude float64 `json:"longitude"` - LivePeriod int `json:"live_period"` + Latitude float64 `json:"latitude"` + Longitude float64 `json:"longitude"` } // InputVenueMessageContent contains a venue for displaying