1
0
зеркало из https://github.com/glebtv/telegram-bot.git synced 2026-08-28 15:26:18 +03:00
Этот коммит содержится в:
Max Melentiev
2023-12-30 16:23:57 +00:00
коммит произвёл GitHub
родитель 57b17f068c
Коммит 6140f7a68a
4 изменённых файлов: 41 добавлений и 6 удалений

Просмотреть файл

@@ -1,5 +1,6 @@
# Unreleased
- Update to Bot API 7.0
- Add `# frozen_string_literal: true` to all source files.
# 0.16.1

Просмотреть файл

@@ -1,5 +1,5 @@
# Generated with bin/fetch-telegram-methods
# Bot API 6.8
# Bot API 7.0
getUpdates
setWebhook
@@ -11,7 +11,9 @@ logOut
close
sendMessage
forwardMessage
forwardMessages
copyMessage
copyMessages
sendPhoto
sendAudio
sendDocument
@@ -26,6 +28,7 @@ sendContact
sendPoll
sendDice
sendChatAction
setMessageReaction
getUserProfilePhotos
getFile
banChatMember
@@ -70,6 +73,7 @@ hideGeneralForumTopic
unhideGeneralForumTopic
unpinAllGeneralForumTopicMessages
answerCallbackQuery
getUserChatBoosts
setMyCommands
deleteMyCommands
getMyCommands
@@ -92,6 +96,7 @@ stopMessageLiveLocation
editMessageReplyMarkup
stopPoll
deleteMessage
deleteMessages
sendSticker
getStickerSet

Просмотреть файл

@@ -89,11 +89,13 @@ module Telegram
extend Session::ConfigMethods
PAYLOAD_TYPES = %w[
PAYLOAD_TYPES = Set.new(%w[
message
edited_message
channel_post
edited_channel_post
message_reaction
message_reaction_count
inline_query
chosen_inline_result
callback_query
@@ -104,7 +106,9 @@ module Telegram
my_chat_member
chat_member
chat_join_request
].freeze
chat_boost
removed_chat_boost
].freeze)
class << self
# Initialize controller and process update.
@@ -113,9 +117,28 @@ module Telegram
end
def payload_from_update(update)
update && PAYLOAD_TYPES.find do |type|
item = update[type]
return [item, type] if item
case update
when nil then nil
when Hash
# faster lookup for the case when telegram-bot-types is not used
update.find do |type, item|
return [item, type] if PAYLOAD_TYPES.include?(type)
end
else
payload_from_typed_update(update)
end
end
private
def payload_from_typed_update(update)
PAYLOAD_TYPES.find do |type|
begin
item = update[type]
return [item, type] if item
rescue Exception # rubocop:disable Lint/RescueException
# dry-rb raises exception if field is not defined in schema
end
end
end
end

Просмотреть файл

@@ -18,6 +18,12 @@ RSpec.describe Telegram::Bot::UpdatesController::TypedUpdate do
my_chat_member
chat_member
chat_join_request
# TODO: remove when added to telegram-bot-types
message_reaction
message_reaction_count
chat_boost
removed_chat_boost
]).
map { |x| [x, Telegram::Bot::Types.const_get(x.camelize)] }.to_h.
merge(