зеркало из
https://github.com/glebtv/telegram-bot.git
synced 2026-09-05 18:45:51 +03:00
Simplified .wrap method, added for Botan
Этот коммит содержится в:
@@ -2,7 +2,6 @@ require 'json'
|
||||
require 'httpclient'
|
||||
require 'active_support/core_ext/string/inflections'
|
||||
require 'active_support/core_ext/hash/keys'
|
||||
require 'telegram/bot/debug_client'
|
||||
|
||||
module Telegram
|
||||
module Bot
|
||||
@@ -10,23 +9,12 @@ module Telegram
|
||||
URL_TEMPLATE = 'https://api.telegram.org/bot%s/'.freeze
|
||||
|
||||
autoload :TypedResponse, 'telegram/bot/client/typed_response'
|
||||
extend Initializers
|
||||
include DebugClient
|
||||
|
||||
class << self
|
||||
# Accepts different options to initialize bot.
|
||||
def wrap(input)
|
||||
case input
|
||||
when self then input
|
||||
when Array then input.map(&method(__callee__))
|
||||
when Hash then
|
||||
input = input.stringify_keys
|
||||
new input['token'], input['username'], botan: input['botan']
|
||||
when Symbol
|
||||
Telegram.bots[input] or
|
||||
raise "Bot #{input} not configured, check Telegram.bots_config."
|
||||
else
|
||||
new(input)
|
||||
end
|
||||
def by_id(id)
|
||||
Telegram.bots[id]
|
||||
end
|
||||
|
||||
# Prepend TypedResponse module.
|
||||
@@ -45,12 +33,11 @@ module Telegram
|
||||
|
||||
attr_reader :client, :token, :username, :base_uri, :botan
|
||||
|
||||
def initialize(token, username = nil, botan: nil)
|
||||
def initialize(token = nil, username = nil, botan: nil, **options)
|
||||
@client = HTTPClient.new
|
||||
@token = token
|
||||
@username = username
|
||||
@base_uri = format URL_TEMPLATE, token
|
||||
@botan = Botan.new(botan) if botan
|
||||
@token = token || options[:token]
|
||||
@username = username || options[:username]
|
||||
@base_uri = format URL_TEMPLATE, self.token
|
||||
end
|
||||
|
||||
def request(action, body = {}) # rubocop:disable PerceivedComplexity
|
||||
|
||||
Ссылка в новой задаче
Block a user