class

Tourmaline::Client

Inherits Tourmaline::EventHandler::Annotator < Tourmaline::Client::TDLightMethods < Tourmaline::Client::WebhookMethods < Tourmaline::Client::StickerMethods < Tourmaline::Client::PollMethods < Tourmaline::Client::PaymentMethods < Tourmaline::Client::PassportMethods < Tourmaline::Client::GameMethods < Tourmaline::Client::CoreMethods < Tourmaline::Logger < 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/"
DEFAULT_COMMAND_PREFIXES = ["/"]

Constructors

new(*, bot_token : String | Nil = nil, user_token : String | Nil = nil, endpoint : String = DEFAULT_API_URL, persistence : Persistence = NilPersistence.new, set_commands : Bool = false, 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

user_token : the token returned by the #login method

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

persistence : the persistence strategy to use

set_commands : if true, set_my_commands will be run on start and any commands marked with register will be registered with BotFather.

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

default_command_prefixes

Default prefixes to use for commands

Source
default_command_prefixes=(default_command_prefixes : Array(String))

Default prefixes to use for commands

Source
default_parse_mode

Default parse mode to use for commands when it isn't included explicitly

Source
default_parse_mode=(default_parse_mode : ParseMode)

Default parse mode to use for commands when it isn't included explicitly

Source

Instance methods

add_event_handler(handler : EventHandler)

Add an EventHandler instance to the handler stack

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?

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
bot_token=(bot_token : String | Nil)
Source
event_handlers
Source
handle_update(update : Update)

Calls all handlers in the stack with the given update and this client instance.

Source
middlewares
Source
persistence
Source
remove_event_handler(handler : EventHandler)

Remove an existing event handler from the stack

Source
send_menu(chat, menu : RoutedMenu, **kwargs)
Source
send_paginated_keyboard(chat, keyboard : PaginatedKeyboard, **kwargs)
Source
use(middleware : Middleware)
Source
user_token
Source
user_token=(user_token : String | Nil)
Source

Nested types