1
0
зеркало из https://github.com/glebtv/telegram-bot.git synced 2026-09-03 17:55:52 +03:00

Сравнить коммиты

...

7 Коммитов

Автор SHA1 Сообщение Дата
Thomas Witt
a66e18a84f test: add rails 8.1 appraisal matrix and require logger 2026-02-12 12:46:43 +02:00
Maksym Prokopov
b8ebc2d491 fix: deprecation warning in routes_helper 2025-10-25 12:00:36 +02:00
Maksym Prokopov
343e7179e2 Drop ActionPack and ActiveSupport dependency limit 2025-10-22 16:17:55 +02:00
Maksym Prokopov
66ad451d74 fix: Rails 8.1 incompatibility config_accessor
Logger functionality in ActionController implemented using
AbstractController::Logger class. Following change fixes incompatibility
with Rails 8.1.
2025-10-15 08:58:32 +02:00
Max Melentiev
14370bd8de Fix linter 2025-01-14 22:57:32 -05:00
Max Melentiev
cb973d90dc Update to Bot API 8.2 2025-01-14 22:52:59 -05:00
Max Melentiev
7c3002266a Fix poller rake task for Rails 8.0 2025-01-02 22:13:01 -05:00
14 изменённых файлов: 101 добавлений и 34 удалений

2
.github/workflows/ci.yml поставляемый
Просмотреть файл

@@ -27,7 +27,7 @@ jobs:
include: include:
# ruby 3.x # ruby 3.x
- ruby: '3.2' - ruby: '3.2'
gemfile: gemfiles/rails_80.gemfile gemfile: gemfiles/rails_81.gemfile
- ruby: '3.2' - ruby: '3.2'
gemfile: gemfiles/rails_72.gemfile gemfile: gemfiles/rails_72.gemfile
- ruby: '3.2' - ruby: '3.2'

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

@@ -5,6 +5,11 @@ appraise 'rails-80' do
gem 'railties', '~> 8.0.0' gem 'railties', '~> 8.0.0'
end end
appraise 'rails-81' do
gem 'actionpack', '~> 8.1.0'
gem 'railties', '~> 8.1.0'
end
appraise 'rails-72' do appraise 'rails-72' do
gem 'actionpack', '~> 7.2.0' gem 'actionpack', '~> 7.2.0'
gem 'railties', '~> 7.2.0' gem 'railties', '~> 7.2.0'

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

@@ -1,5 +1,13 @@
# Unreleased # Unreleased
# 0.16.7
- Update to Bot API 8.2
# 0.16.6
- Fix poller rake task for Rails 8.0
# 0.16.5 # 0.16.5
- Rails 8.0 support - Rails 8.0 support

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

@@ -41,3 +41,23 @@ puts result_txt
API_METHODS_FILE = File.expand_path('../lib/telegram/bot/client/api_methods.txt', __dir__).freeze API_METHODS_FILE = File.expand_path('../lib/telegram/bot/client/api_methods.txt', __dir__).freeze
File.write(API_METHODS_FILE, result_txt) File.write(API_METHODS_FILE, result_txt)
puts '', "Updated #{API_METHODS_FILE}" puts '', "Updated #{API_METHODS_FILE}"
puts '', 'Payload types:'
update_tbody = doc.css('tbody').
find { |tbody| tbody.css('td').any? { |td| td.text == 'update_id' } }
payload_types = update_tbody.css('td:first-child').map(&:text).reject { |x| x == 'update_id' }
result = ['# Generated with bin/fetch-telegram-methods']
result << "# #{api_version[1]}" if api_version
result << payload_types.join("\n")
result << ''
result_txt = result.join("\n")
puts result_txt
PAYLOAD_TYPES_FILE = File.expand_path(
'../lib/telegram/bot/updates_controller/payload_types.txt',
__dir__,
).freeze
File.write(PAYLOAD_TYPES_FILE, result_txt)
puts '', "Updated #{PAYLOAD_TYPES_FILE}"

21
gemfiles/rails_81.gemfile Обычный файл
Просмотреть файл

@@ -0,0 +1,21 @@
# This file was generated by Appraisal
source "https://rubygems.org"
gem "actionpack", "~> 8.1.0"
gem "railties", "~> 8.1.0"
group :development do
gem "appraisal", "~> 2.2"
gem "debug", "~> 1.9.2"
gem "sdoc", "~> 2.0.3"
gem "telegram-bot-types", "~> 0.6.3"
gem "rspec", "~> 3.12.0"
gem "rspec-its", "~> 1.3.0"
gem "rspec-rails", "~> 4.0.2"
gem "rubocop", "~> 1.59.0"
gem "rubocop-rails", "~> 2.23.1"
gem "coveralls", "~> 0.8.23", require: false
end
gemspec path: "../"

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

@@ -15,6 +15,9 @@ namespace :telegram do
Rails.logger.extend ActiveSupport::Logger.broadcast console Rails.logger.extend ActiveSupport::Logger.broadcast console
end end
end end
# Routes are not loaded by default in Rails >= 8.0.
# Load them explicitly to identify a controller for a bot.
Rails.application.try(:reload_routes_unless_loaded)
Telegram::Bot::UpdatesPoller.start(ENV['BOT']&.to_sym || :default) Telegram::Bot::UpdatesPoller.start(ENV['BOT']&.to_sym || :default)
end end

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

@@ -1,5 +1,5 @@
# Generated with bin/fetch-telegram-methods # Generated with bin/fetch-telegram-methods
# Bot API 8.0 # Bot API 8.2
getUpdates getUpdates
setWebhook setWebhook
@@ -121,6 +121,10 @@ setCustomEmojiStickerSetThumbnail
deleteStickerSet deleteStickerSet
getAvailableGifts getAvailableGifts
sendGift sendGift
verifyUser
verifyChat
removeUserVerification
removeChatVerification
answerInlineQuery answerInlineQuery
answerWebAppQuery answerWebAppQuery

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

@@ -47,7 +47,7 @@ module Telegram
as: RoutesHelper.route_name_for_bot(bot), as: RoutesHelper.route_name_for_bot(bot),
format: false, format: false,
}.merge!(options) }.merge!(options)
post(path || "telegram/#{bot.token && RoutesHelper.token_hash(bot.token)}", params) post(path || "telegram/#{bot.token && RoutesHelper.token_hash(bot.token)}", **params)
UpdatesPoller.add(bot, controller) if Telegram.bot_poller_mode? UpdatesPoller.add(bot, controller) if Telegram.bot_poller_mode?
end end
end end

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

@@ -89,31 +89,13 @@ module Telegram
extend Session::ConfigMethods extend Session::ConfigMethods
PAYLOAD_TYPES = Set.new(%w[ PAYLOAD_TYPES_FILE = File.expand_path('updates_controller/payload_types.txt', __dir__)
message PAYLOAD_TYPES = File.read(PAYLOAD_TYPES_FILE).
edited_message lines.
channel_post map(&:strip).
edited_channel_post reject { |x| x.empty? || x.start_with?('#') }.
business_connection to_set.
business_message freeze
edited_business_message
deleted_business_messages
message_reaction
message_reaction_count
inline_query
chosen_inline_result
callback_query
shipping_query
pre_checkout_query
purchased_paid_media
poll
poll_answer
my_chat_member
chat_member
chat_join_request
chat_boost
removed_chat_boost
].freeze)
class << self class << self
# Initialize controller and process update. # Initialize controller and process update.

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

@@ -8,9 +8,7 @@ module Telegram
module Instrumentation module Instrumentation
extend ActiveSupport::Concern extend ActiveSupport::Concern
included do include AbstractController::Logger
config_accessor :logger
end
class << self class << self
def instrument(action, *args, &block) def instrument(action, *args, &block)

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

@@ -0,0 +1,25 @@
# Generated with bin/fetch-telegram-methods
# Bot API 8.2
message
edited_message
channel_post
edited_channel_post
business_connection
business_message
edited_business_message
deleted_business_messages
message_reaction
message_reaction_count
inline_query
chosen_inline_result
callback_query
shipping_query
pre_checkout_query
purchased_paid_media
poll
poll_answer
my_chat_member
chat_member
chat_join_request
chat_boost
removed_chat_boost

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

@@ -2,7 +2,7 @@
module Telegram module Telegram
module Bot module Bot
VERSION = '0.16.5' VERSION = '0.16.7'
def self.gem_version def self.gem_version
Gem::Version.new VERSION Gem::Version.new VERSION

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

@@ -1,5 +1,6 @@
# frozen_string_literal: true # frozen_string_literal: true
require 'logger'
require 'pathname' require 'pathname'
require 'debug' require 'debug'
require 'rspec/its' require 'rspec/its'

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

@@ -25,8 +25,8 @@ Gem::Specification.new do |spec|
spec.required_ruby_version = '>= 2.4' spec.required_ruby_version = '>= 2.4'
spec.add_dependency 'actionpack', '>= 4.0', '< 8.1' spec.add_dependency 'actionpack', '>= 4.0'
spec.add_dependency 'activesupport', '>= 4.0', '< 8.1' spec.add_dependency 'activesupport', '>= 4.0'
spec.add_dependency 'httpclient', '~> 2.7' spec.add_dependency 'httpclient', '~> 2.7'
spec.add_development_dependency 'bundler', '> 1.16' spec.add_development_dependency 'bundler', '> 1.16'