Skip to content

Commit 3fb34af

Browse files
committed
Bot API 5.2
1 parent a1549c2 commit 3fb34af

File tree

4 files changed

+51
-5
lines changed

4 files changed

+51
-5
lines changed

src/telebot/private/api.nim

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -311,8 +311,9 @@ proc sendContact*(b: TeleBot, chatId: int64, phoneNumber: string, firstName: str
311311
let res = await makeRequest(b, procName, data)
312312
result = getMessage(res)
313313

314-
proc sendInvoice*(b: TeleBot, chatId: int64, title: string, description: string, payload: string, providerToken: string, startParameter: string,
315-
currency: string, prices: seq[LabeledPrice], providerData = "", photoUrl = "", photoSize = 0, photoWidth = 0, photoHeight = 0,
314+
proc sendInvoice*(b: TeleBot, chatId: int64, title: string, description: string, payload: string, providerToken: string, currency: string,
315+
prices: seq[LabeledPrice], maxTipAmount = 0, suggestedTipAmounts: seq[int] = @[], startParameter = "",
316+
providerData = "", photoUrl = "", photoSize = 0, photoWidth = 0, photoHeight = 0,
316317
needName = false, needPhoneNumber = false, needEmail = false, needShippingAddress = false, sendPhoneNumberToProvider = false,
317318
sendEmailToProvider = false, isFlexible = false,
318319
disableNotification = false, replyToMessageId = 0, allowSendingWithoutReply = false, replyMarkup: KeyboardMarkup = nil): Future[Message] {.async.} =
@@ -323,11 +324,17 @@ proc sendInvoice*(b: TeleBot, chatId: int64, title: string, description: string,
323324
data["description"] = description
324325
data["payload"] = payload
325326
data["provider_token"] = providerToken
326-
data["start_parameter"] = startParameter
327327
data["currency"] = currency
328328
var json = ""
329329
marshal(prices, json)
330330
data["prices"] = json
331+
if maxTipAmount != 0:
332+
data["max_tip_amount"] = maxTipAmount
333+
if suggestedTipAmounts.len != 0:
334+
json = marshal(suggestedTipAmounts, json)
335+
data["suggested_top_amounts"] = json
336+
if startParameter.len != 0:
337+
data["start_parameter"] = startParameter
331338
if providerData.len != 0:
332339
data["provider_data"] = providerData
333340
if photoUrl.len != 0:

src/telebot/private/helpers.nim

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,13 @@ func InputContactMessageContent*(phoneNumber, firstName: string): InputMessageCo
2727
result.`type` = ContactMessage
2828
result.phoneNumber = phoneNumber
2929
result.firstName = firstName
30+
31+
func InputInvoiceMessageContent*(title, description, payload, providerToken, currrency: string, prices: seq[LabeledPrice]): InputMessageContent =
32+
new(result)
33+
result.`type` = InvoiceMessage
34+
result.title = title
35+
result.description = description
36+
result.payload = payload
37+
result.providerToken = providerToken
38+
result.currrency = currrency
39+
result.prices = prices

src/telebot/private/types.nim

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,9 @@ type
190190
MessageAutoDeleteTimerChanged* = object of TelegramObject
191191
messageAutoDeleteTime*: int
192192
193+
VoiceChatScheduled* = object of TelegramObject
194+
startDate*: int
195+
193196
VoiceChatStarted* = object of TelegramObject
194197
195198
VoiceChatEnded* = object of TelegramObject
@@ -334,6 +337,7 @@ type
334337
connectedWebsite*: Option[string]
335338
passportData*: Option[PassportData]
336339
proximityAlertTriggered*: Option[ProximityAlertTriggered]
340+
voiceChatScheduled*: Option[VoiceChatScheduled]
337341
voiceChatStarted*: Option[VoiceChatStarted]
338342
voiceChatEnded*: Option[VoiceChatEnded]
339343
voiceChatParticipantsInvited*: Option[VoiceChatParticipantsInvited]
@@ -506,6 +510,7 @@ type
506510
LocationMessage
507511
VenueMessage
508512
ContactMessage
513+
InvoiceMessage
509514
510515
InputMessageContent* = ref object of TelegramObject
511516
case `type`*: InputMessageContentKind
@@ -533,6 +538,28 @@ type
533538
firstName*: string
534539
lastName*: Option[string]
535540
vcard*: Option[string]
541+
of InvoiceMessage:
542+
title*: string
543+
description*: string
544+
payload*: string
545+
providerToken*: string
546+
currrency*: string
547+
prices*: seq[LabeledPrice]
548+
maxTipAmount*: Option[int]
549+
suggestedTipAmounts*: Option[seq[int]]
550+
providerData*: Option[string]
551+
photoUrl*: Option[string]
552+
photoSize*: Option[int]
553+
photoWidth*: Option[int]
554+
photoHeight*: Option[int]
555+
needName*: Option[bool]
556+
needPhoneNumber*: Option[bool]
557+
needEmail*: Option[bool]
558+
needShippingAddress*: Option[bool]
559+
sendPhoneNumberToProvider*: Option[bool]
560+
sendEmailToProvider*: Option[bool]
561+
isFlexible*: Option[bool]
562+
536563

537564
InlineQueryResult* = object of TelegramObject
538565
kind*: string
@@ -681,9 +708,11 @@ type
681708
InlineQuery* = object of TelegramObject
682709
id*: string
683710
fromUser*: User
684-
location*: Option[Location]
685711
query*: string
686712
offset*: string
713+
chatType: Option[string]
714+
location*: Option[Location]
715+
687716

688717
ChosenInlineResult* = object of TelegramObject
689718
resultId*: string

telebot.nimble

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version = "1.0.6"
1+
version = "1.0.7"
22
author = "Huy Doan"
33
description = "Async Telegram Bot API Client"
44
license = "MIT"

0 commit comments

Comments
 (0)