class

Tourmaline::Client

Inherits Tourmaline::Logger / Tourmaline::Client::Api / Reference / Object

The Client class is the base class for all Tourmaline based bots. Extend this class to create your own bots, or create an instance of Client and add event handlers to it.

Constants

DEFAULT_API_URL = "https://api.telegram.org/"

Constructors

new(bot_token : String, endpoint : String = DEFAULT_API_URL, default_parse_mode : ParseMode = ParseMode::Markdown, pool_capacity = 200, initial_pool_size = 20, pool_timeout = 0.1, proxy = nil, proxy_uri = nil, proxy_host = nil, proxy_port = nil, proxy_user = nil, proxy_pass = nil)

Create a new instance of Tourmaline::Client.

Named Arguments

bot_token : the bot token you should've received from @BotFather

endpoint : the API endpoint to use for requests; default is https://api.telegram.org, but for TDLight methods to work you may consider hosting your own instance or using one of the official ones such as https://telegram.rest

default_parse_mode : the default parse mode to use for messages; default is ParseMode::None (no formatting)

pool_capacity : the maximum number of concurrent HTTP connections to use

initial_pool_size : the number of HTTP::Client instances to create on init

pool_timeout : How long to wait for a new client to be available if the pool is full before throwing a TimeoutError

proxy : an instance of HTTP::Proxy::Client to use; if set, overrides the following proxy_ args

proxy_uri : a URI to use when connecting to the proxy; can be a URI instance or a String

proxy_host : if no proxy_uri is provided, this will be the host for the URI

proxy_port : if no proxy_uri is provided, this will be the port for the URI

proxy_user : a username to use for a proxy that requires authentication

proxy_pass : a password to use for a proxy that requires authentication

Source

Class methods

build_inline_keyboard_markup(*args, columns = nil, **options, &block : InlineKeyboardMarkupBuilder -> )
Source
build_inline_query_result
Source
build_reply_keyboard_markup(*args, columns = nil, **options, &block : ReplyKeyboardMarkupBuilder -> )
Source

Instance methods

bot

Gets the name of the Client at the time the Client was started. Refreshing can be done by setting @bot to get_me.

Source
bot?

Gets the name of the Client at the time the Client was started. Refreshing can be done by setting @bot to get_me.

Source
bot_token
Source
build_inline_keyboard_markup(*args, columns = nil, **options, &block : InlineKeyboardMarkupBuilder -> )
Source
build_inline_query_result
Source
build_reply_keyboard_markup(*args, columns = nil, **options, &block : ReplyKeyboardMarkupBuilder -> )
Source
default_parse_mode
Source
default_parse_mode=(default_parse_mode : ParseMode)
Source
dispatcher
Source
on(action : UpdateAction, &block : Context -> )
Source
on(*actions : Symbol | UpdateAction, &block : Context -> )
Source
poll
Source
register(*handlers : EventHandler)
Source
request(type : U.class, method, params = {} of String => String) forall U

Sends a request to the Telegram Client API. Returns the response, parsed as a U.

Source
request_raw(method : String, params = {} of String => String)

Sends a request to the Telegram Client API. Returns the raw response.

Source
serve(path = "/", host = "127.0.0.1", port = 8081, ssl_certificate_path = nil, ssl_key_path = nil, no_middleware_check = false)
Source
use(middleware : Middleware)
Source

Nested types