class Tourmaline::Client

Overview

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.

Included Modules

Defined in:

tourmaline/client.cr
tourmaline/client/api.cr
tourmaline/client/inline_keyboard_markup_builder.cr
tourmaline/client/inline_query_result_builder.cr
tourmaline/client/reply_keyboard_markup_builder.cr

Constant Summary

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

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from module Tourmaline::Client::Api

add_sticker_to_set(user_id : Int32 | Int64, name : String, sticker : Tourmaline::InputSticker) add_sticker_to_set, answer_callback_query(callback_query_id : String, text : String | Nil = nil, show_alert : Bool | Nil = nil, url : String | Nil = nil, cache_time : Int32 | Int64 | Nil = nil) answer_callback_query, answer_inline_query(inline_query_id : String, results : Array(Tourmaline::InlineQueryResult), cache_time : Int32 | Int64 | Nil = nil, is_personal : Bool | Nil = nil, next_offset : String | Nil = nil, switch_pm_text : String | Nil = nil, switch_pm_parameter : String | Nil = nil) answer_inline_query, answer_pre_checkout_query(pre_checkout_query_id : String, ok : Bool, error_message : String | Nil = nil) answer_pre_checkout_query, answer_shipping_query(shipping_query_id : String, ok : Bool, shipping_options : Array(Tourmaline::ShippingOption) | Nil = nil, error_message : String | Nil = nil) answer_shipping_query, answer_web_app_query(web_app_query_id : String, result : Tourmaline::InlineQueryResult) answer_web_app_query, approve_chat_join_request(chat_id : Int32 | Int64 | String, user_id : Int32 | Int64) approve_chat_join_request, ban_chat_member(chat_id : Int32 | Int64 | String, user_id : Int32 | Int64, until_date : Int32 | Int64 | Nil = nil, revoke_messages : Bool | Nil = nil) ban_chat_member, ban_chat_sender_chat(chat_id : Int32 | Int64 | String, sender_chat_id : Int32 | Int64) ban_chat_sender_chat, close close, close_forum_topic(chat_id : Int32 | Int64 | String, message_thread_id : Int32 | Int64) close_forum_topic, close_general_forum_topic(chat_id : Int32 | Int64 | String) close_general_forum_topic, copy_message(chat_id : Int32 | Int64 | String, from_chat_id : Int32 | Int64 | String, message_id : Int32 | Int64, message_thread_id : Int32 | Int64 | Nil = nil, caption : String | Nil = nil, parse_mode : ParseMode = default_parse_mode, caption_entities : Array(Tourmaline::MessageEntity) | Nil = nil, disable_notification : Bool | Nil = nil, protect_content : Bool | Nil = nil, reply_to_message_id : Int32 | Int64 | Nil = nil, allow_sending_without_reply : Bool | Nil = nil, reply_markup : Tourmaline::InlineKeyboardMarkup | Tourmaline::ReplyKeyboardMarkup | Tourmaline::ReplyKeyboardRemove | Tourmaline::ForceReply | Nil = nil) copy_message, create_chat_invite_link(chat_id : Int32 | Int64 | String, name : String | Nil = nil, expire_date : Int32 | Int64 | Nil = nil, member_limit : Int32 | Int64 | Nil = nil, creates_join_request : Bool | Nil = nil) create_chat_invite_link, create_forum_topic(chat_id : Int32 | Int64 | String, name : String, icon_color : Int32 | Int64 | Nil = nil, icon_custom_emoji_id : String | Nil = nil) create_forum_topic, create_invoice_link(title : String, description : String, payload : String, provider_token : String, currency : String, prices : Array(Tourmaline::LabeledPrice), max_tip_amount : Int32 | Int64 | Nil = nil, suggested_tip_amounts : Array(Int32 | Int64) | Nil = nil, provider_data : String | Nil = nil, photo_url : String | Nil = nil, photo_size : Int32 | Int64 | Nil = nil, photo_width : Int32 | Int64 | Nil = nil, photo_height : Int32 | Int64 | Nil = nil, need_name : Bool | Nil = nil, need_phone_number : Bool | Nil = nil, need_email : Bool | Nil = nil, need_shipping_address : Bool | Nil = nil, send_phone_number_to_provider : Bool | Nil = nil, send_email_to_provider : Bool | Nil = nil, is_flexible : Bool | Nil = nil) create_invoice_link, create_new_sticker_set(user_id : Int32 | Int64, name : String, title : String, stickers : Array(Tourmaline::InputSticker), sticker_format : String, sticker_type : String | Nil = nil, needs_repainting : Bool | Nil = nil) create_new_sticker_set, decline_chat_join_request(chat_id : Int32 | Int64 | String, user_id : Int32 | Int64) decline_chat_join_request, delete_chat_photo(chat_id : Int32 | Int64 | String) delete_chat_photo, delete_chat_sticker_set(chat_id : Int32 | Int64 | String) delete_chat_sticker_set, delete_forum_topic(chat_id : Int32 | Int64 | String, message_thread_id : Int32 | Int64) delete_forum_topic, delete_message(chat_id : Int32 | Int64 | String, message_id : Int32 | Int64) delete_message, delete_my_commands(scope : Tourmaline::BotCommandScope | Nil = nil, language_code : String | Nil = nil) delete_my_commands, delete_sticker_from_set(sticker : String) delete_sticker_from_set, delete_sticker_set(name : String) delete_sticker_set, delete_webhook(drop_pending_updates : Bool | Nil = nil) delete_webhook, edit_chat_invite_link(chat_id : Int32 | Int64 | String, invite_link : String, name : String | Nil = nil, expire_date : Int32 | Int64 | Nil = nil, member_limit : Int32 | Int64 | Nil = nil, creates_join_request : Bool | Nil = nil) edit_chat_invite_link, edit_forum_topic(chat_id : Int32 | Int64 | String, message_thread_id : Int32 | Int64, name : String | Nil = nil, icon_custom_emoji_id : String | Nil = nil) edit_forum_topic, edit_general_forum_topic(chat_id : Int32 | Int64 | String, name : String) edit_general_forum_topic, edit_message_caption(chat_id : Int32 | Int64 | String | Nil = nil, message_id : Int32 | Int64 | Nil = nil, inline_message_id : String | Nil = nil, caption : String | Nil = nil, parse_mode : ParseMode = default_parse_mode, caption_entities : Array(Tourmaline::MessageEntity) | Nil = nil, reply_markup : Tourmaline::InlineKeyboardMarkup | Nil = nil) edit_message_caption, edit_message_live_location(latitude : Float64, longitude : Float64, chat_id : Int32 | Int64 | String | Nil = nil, message_id : Int32 | Int64 | Nil = nil, inline_message_id : String | Nil = nil, horizontal_accuracy : Float64 | Nil = nil, heading : Int32 | Int64 | Nil = nil, proximity_alert_radius : Int32 | Int64 | Nil = nil, reply_markup : Tourmaline::InlineKeyboardMarkup | Nil = nil) edit_message_live_location, edit_message_media(media : Tourmaline::InputMedia, chat_id : Int32 | Int64 | String | Nil = nil, message_id : Int32 | Int64 | Nil = nil, inline_message_id : String | Nil = nil, reply_markup : Tourmaline::InlineKeyboardMarkup | Nil = nil) edit_message_media, edit_message_reply_markup(chat_id : Int32 | Int64 | String | Nil = nil, message_id : Int32 | Int64 | Nil = nil, inline_message_id : String | Nil = nil, reply_markup : Tourmaline::InlineKeyboardMarkup | Nil = nil) edit_message_reply_markup, edit_message_text(text : String, chat_id : Int32 | Int64 | String | Nil = nil, message_id : Int32 | Int64 | Nil = nil, inline_message_id : String | Nil = nil, parse_mode : ParseMode = default_parse_mode, entities : Array(Tourmaline::MessageEntity) | Nil = nil, disable_web_page_preview : Bool | Nil = nil, reply_markup : Tourmaline::InlineKeyboardMarkup | Nil = nil) edit_message_text, export_chat_invite_link(chat_id : Int32 | Int64 | String) export_chat_invite_link, forward_message(chat_id : Int32 | Int64 | String, from_chat_id : Int32 | Int64 | String, message_id : Int32 | Int64, message_thread_id : Int32 | Int64 | Nil = nil, disable_notification : Bool | Nil = nil, protect_content : Bool | Nil = nil) forward_message, get_chat(chat_id : Int32 | Int64 | String) get_chat, get_chat_administrators(chat_id : Int32 | Int64 | String) get_chat_administrators, get_chat_member(chat_id : Int32 | Int64 | String, user_id : Int32 | Int64) get_chat_member, get_chat_member_count(chat_id : Int32 | Int64 | String) get_chat_member_count, get_chat_menu_button(chat_id : Int32 | Int64 | Nil = nil) get_chat_menu_button, get_custom_emoji_stickers(custom_emoji_ids : Array(String)) get_custom_emoji_stickers, get_file(file_id : String) get_file, get_forum_topic_icon_stickers get_forum_topic_icon_stickers, get_game_high_scores(user_id : Int32 | Int64, chat_id : Int32 | Int64 | Nil = nil, message_id : Int32 | Int64 | Nil = nil, inline_message_id : String | Nil = nil) get_game_high_scores, get_me get_me, get_my_commands(scope : Tourmaline::BotCommandScope | Nil = nil, language_code : String | Nil = nil) get_my_commands, get_my_default_administrator_rights(for_channels : Bool | Nil = nil) get_my_default_administrator_rights, get_my_description(language_code : String | Nil = nil) get_my_description, get_my_short_description(language_code : String | Nil = nil) get_my_short_description, get_sticker_set(name : String) get_sticker_set, get_updates(offset : Int32 | Int64 | Nil = nil, limit : Int32 | Int64 | Nil = nil, timeout : Int32 | Int64 | Nil = nil, allowed_updates : Array(String) | Nil = nil) get_updates, get_user_profile_photos(user_id : Int32 | Int64, offset : Int32 | Int64 | Nil = nil, limit : Int32 | Int64 | Nil = nil) get_user_profile_photos, get_webhook_info get_webhook_info, hide_general_forum_topic(chat_id : Int32 | Int64 | String) hide_general_forum_topic, leave_chat(chat_id : Int32 | Int64 | String) leave_chat, log_out log_out, pin_chat_message(chat_id : Int32 | Int64 | String, message_id : Int32 | Int64, disable_notification : Bool | Nil = nil) pin_chat_message, promote_chat_member(chat_id : Int32 | Int64 | String, user_id : Int32 | Int64, is_anonymous : Bool | Nil = nil, can_manage_chat : Bool | Nil = nil, can_post_messages : Bool | Nil = nil, can_edit_messages : Bool | Nil = nil, can_delete_messages : Bool | Nil = nil, can_manage_video_chats : Bool | Nil = nil, can_restrict_members : Bool | Nil = nil, can_promote_members : Bool | Nil = nil, can_change_info : Bool | Nil = nil, can_invite_users : Bool | Nil = nil, can_pin_messages : Bool | Nil = nil, can_manage_topics : Bool | Nil = nil) promote_chat_member, reopen_forum_topic(chat_id : Int32 | Int64 | String, message_thread_id : Int32 | Int64) reopen_forum_topic, reopen_general_forum_topic(chat_id : Int32 | Int64 | String) reopen_general_forum_topic, restrict_chat_member(chat_id : Int32 | Int64 | String, user_id : Int32 | Int64, permissions : Tourmaline::ChatPermissions, use_independent_chat_permissions : Bool | Nil = nil, until_date : Int32 | Int64 | Nil = nil) restrict_chat_member, revoke_chat_invite_link(chat_id : Int32 | Int64 | String, invite_link : String) revoke_chat_invite_link, send_animation(chat_id : Int32 | Int64 | String, animation : ::File | String, message_thread_id : Int32 | Int64 | Nil = nil, duration : Int32 | Int64 | Nil = nil, width : Int32 | Int64 | Nil = nil, height : Int32 | Int64 | Nil = nil, thumbnail : ::File | String | Nil = nil, caption : String | Nil = nil, parse_mode : ParseMode = default_parse_mode, caption_entities : Array(Tourmaline::MessageEntity) | Nil = nil, has_spoiler : Bool | Nil = nil, disable_notification : Bool | Nil = nil, protect_content : Bool | Nil = nil, reply_to_message_id : Int32 | Int64 | Nil = nil, allow_sending_without_reply : Bool | Nil = nil, reply_markup : Tourmaline::InlineKeyboardMarkup | Tourmaline::ReplyKeyboardMarkup | Tourmaline::ReplyKeyboardRemove | Tourmaline::ForceReply | Nil = nil) send_animation, send_audio(chat_id : Int32 | Int64 | String, audio : ::File | String, message_thread_id : Int32 | Int64 | Nil = nil, caption : String | Nil = nil, parse_mode : ParseMode = default_parse_mode, caption_entities : Array(Tourmaline::MessageEntity) | Nil = nil, duration : Int32 | Int64 | Nil = nil, performer : String | Nil = nil, title : String | Nil = nil, thumbnail : ::File | String | Nil = nil, disable_notification : Bool | Nil = nil, protect_content : Bool | Nil = nil, reply_to_message_id : Int32 | Int64 | Nil = nil, allow_sending_without_reply : Bool | Nil = nil, reply_markup : Tourmaline::InlineKeyboardMarkup | Tourmaline::ReplyKeyboardMarkup | Tourmaline::ReplyKeyboardRemove | Tourmaline::ForceReply | Nil = nil) send_audio, send_chat_action(chat_id : Int32 | Int64 | String, action : String, message_thread_id : Int32 | Int64 | Nil = nil) send_chat_action, send_contact(chat_id : Int32 | Int64 | String, phone_number : String, first_name : String, message_thread_id : Int32 | Int64 | Nil = nil, last_name : String | Nil = nil, vcard : String | Nil = nil, disable_notification : Bool | Nil = nil, protect_content : Bool | Nil = nil, reply_to_message_id : Int32 | Int64 | Nil = nil, allow_sending_without_reply : Bool | Nil = nil, reply_markup : Tourmaline::InlineKeyboardMarkup | Tourmaline::ReplyKeyboardMarkup | Tourmaline::ReplyKeyboardRemove | Tourmaline::ForceReply | Nil = nil) send_contact, send_dice(chat_id : Int32 | Int64 | String, message_thread_id : Int32 | Int64 | Nil = nil, emoji : String | Nil = nil, disable_notification : Bool | Nil = nil, protect_content : Bool | Nil = nil, reply_to_message_id : Int32 | Int64 | Nil = nil, allow_sending_without_reply : Bool | Nil = nil, reply_markup : Tourmaline::InlineKeyboardMarkup | Tourmaline::ReplyKeyboardMarkup | Tourmaline::ReplyKeyboardRemove | Tourmaline::ForceReply | Nil = nil) send_dice, send_document(chat_id : Int32 | Int64 | String, document : ::File | String, message_thread_id : Int32 | Int64 | Nil = nil, thumbnail : ::File | String | Nil = nil, caption : String | Nil = nil, parse_mode : ParseMode = default_parse_mode, caption_entities : Array(Tourmaline::MessageEntity) | Nil = nil, disable_content_type_detection : Bool | Nil = nil, disable_notification : Bool | Nil = nil, protect_content : Bool | Nil = nil, reply_to_message_id : Int32 | Int64 | Nil = nil, allow_sending_without_reply : Bool | Nil = nil, reply_markup : Tourmaline::InlineKeyboardMarkup | Tourmaline::ReplyKeyboardMarkup | Tourmaline::ReplyKeyboardRemove | Tourmaline::ForceReply | Nil = nil) send_document, send_game(chat_id : Int32 | Int64, game_short_name : String, message_thread_id : Int32 | Int64 | Nil = nil, disable_notification : Bool | Nil = nil, protect_content : Bool | Nil = nil, reply_to_message_id : Int32 | Int64 | Nil = nil, allow_sending_without_reply : Bool | Nil = nil, reply_markup : Tourmaline::InlineKeyboardMarkup | Nil = nil) send_game, send_invoice(chat_id : Int32 | Int64 | String, title : String, description : String, payload : String, provider_token : String, currency : String, prices : Array(Tourmaline::LabeledPrice), message_thread_id : Int32 | Int64 | Nil = nil, max_tip_amount : Int32 | Int64 | Nil = nil, suggested_tip_amounts : Array(Int32 | Int64) | Nil = nil, start_parameter : String | Nil = nil, provider_data : String | Nil = nil, photo_url : String | Nil = nil, photo_size : Int32 | Int64 | Nil = nil, photo_width : Int32 | Int64 | Nil = nil, photo_height : Int32 | Int64 | Nil = nil, need_name : Bool | Nil = nil, need_phone_number : Bool | Nil = nil, need_email : Bool | Nil = nil, need_shipping_address : Bool | Nil = nil, send_phone_number_to_provider : Bool | Nil = nil, send_email_to_provider : Bool | Nil = nil, is_flexible : Bool | Nil = nil, disable_notification : Bool | Nil = nil, protect_content : Bool | Nil = nil, reply_to_message_id : Int32 | Int64 | Nil = nil, allow_sending_without_reply : Bool | Nil = nil, reply_markup : Tourmaline::InlineKeyboardMarkup | Nil = nil) send_invoice, send_location(chat_id : Int32 | Int64 | String, latitude : Float64, longitude : Float64, message_thread_id : Int32 | Int64 | Nil = nil, horizontal_accuracy : Float64 | Nil = nil, live_period : Int32 | Int64 | Nil = nil, heading : Int32 | Int64 | Nil = nil, proximity_alert_radius : Int32 | Int64 | Nil = nil, disable_notification : Bool | Nil = nil, protect_content : Bool | Nil = nil, reply_to_message_id : Int32 | Int64 | Nil = nil, allow_sending_without_reply : Bool | Nil = nil, reply_markup : Tourmaline::InlineKeyboardMarkup | Tourmaline::ReplyKeyboardMarkup | Tourmaline::ReplyKeyboardRemove | Tourmaline::ForceReply | Nil = nil) send_location, send_media_group(chat_id : Int32 | Int64 | String, media : Array(Tourmaline::InputMediaAudio) | Array(Tourmaline::InputMediaDocument) | Array(Tourmaline::InputMediaPhoto) | Array(Tourmaline::InputMediaVideo), message_thread_id : Int32 | Int64 | Nil = nil, disable_notification : Bool | Nil = nil, protect_content : Bool | Nil = nil, reply_to_message_id : Int32 | Int64 | Nil = nil, allow_sending_without_reply : Bool | Nil = nil) send_media_group, send_message(chat_id : Int32 | Int64 | String, text : String, message_thread_id : Int32 | Int64 | Nil = nil, parse_mode : ParseMode = default_parse_mode, entities : Array(Tourmaline::MessageEntity) | Nil = nil, disable_web_page_preview : Bool | Nil = nil, disable_notification : Bool | Nil = nil, protect_content : Bool | Nil = nil, reply_to_message_id : Int32 | Int64 | Nil = nil, allow_sending_without_reply : Bool | Nil = nil, reply_markup : Tourmaline::InlineKeyboardMarkup | Tourmaline::ReplyKeyboardMarkup | Tourmaline::ReplyKeyboardRemove | Tourmaline::ForceReply | Nil = nil) send_message, send_photo(chat_id : Int32 | Int64 | String, photo : ::File | String, message_thread_id : Int32 | Int64 | Nil = nil, caption : String | Nil = nil, parse_mode : ParseMode = default_parse_mode, caption_entities : Array(Tourmaline::MessageEntity) | Nil = nil, has_spoiler : Bool | Nil = nil, disable_notification : Bool | Nil = nil, protect_content : Bool | Nil = nil, reply_to_message_id : Int32 | Int64 | Nil = nil, allow_sending_without_reply : Bool | Nil = nil, reply_markup : Tourmaline::InlineKeyboardMarkup | Tourmaline::ReplyKeyboardMarkup | Tourmaline::ReplyKeyboardRemove | Tourmaline::ForceReply | Nil = nil) send_photo, send_poll(chat_id : Int32 | Int64 | String, question : String, options : Array(String), message_thread_id : Int32 | Int64 | Nil = nil, is_anonymous : Bool | Nil = nil, type : String | Nil = nil, allows_multiple_answers : Bool | Nil = nil, correct_option_id : Int32 | Int64 | Nil = nil, explanation : String | Nil = nil, explanation_parse_mode : String | Nil = nil, explanation_entities : Array(Tourmaline::MessageEntity) | Nil = nil, open_period : Int32 | Int64 | Nil = nil, close_date : Int32 | Int64 | Nil = nil, is_closed : Bool | Nil = nil, disable_notification : Bool | Nil = nil, protect_content : Bool | Nil = nil, reply_to_message_id : Int32 | Int64 | Nil = nil, allow_sending_without_reply : Bool | Nil = nil, reply_markup : Tourmaline::InlineKeyboardMarkup | Tourmaline::ReplyKeyboardMarkup | Tourmaline::ReplyKeyboardRemove | Tourmaline::ForceReply | Nil = nil) send_poll, send_sticker(chat_id : Int32 | Int64 | String, sticker : ::File | String, message_thread_id : Int32 | Int64 | Nil = nil, emoji : String | Nil = nil, disable_notification : Bool | Nil = nil, protect_content : Bool | Nil = nil, reply_to_message_id : Int32 | Int64 | Nil = nil, allow_sending_without_reply : Bool | Nil = nil, reply_markup : Tourmaline::InlineKeyboardMarkup | Tourmaline::ReplyKeyboardMarkup | Tourmaline::ReplyKeyboardRemove | Tourmaline::ForceReply | Nil = nil) send_sticker, send_venue(chat_id : Int32 | Int64 | String, latitude : Float64, longitude : Float64, title : String, address : String, message_thread_id : Int32 | Int64 | Nil = nil, foursquare_id : String | Nil = nil, foursquare_type : String | Nil = nil, google_place_id : String | Nil = nil, google_place_type : String | Nil = nil, disable_notification : Bool | Nil = nil, protect_content : Bool | Nil = nil, reply_to_message_id : Int32 | Int64 | Nil = nil, allow_sending_without_reply : Bool | Nil = nil, reply_markup : Tourmaline::InlineKeyboardMarkup | Tourmaline::ReplyKeyboardMarkup | Tourmaline::ReplyKeyboardRemove | Tourmaline::ForceReply | Nil = nil) send_venue, send_video(chat_id : Int32 | Int64 | String, video : ::File | String, message_thread_id : Int32 | Int64 | Nil = nil, duration : Int32 | Int64 | Nil = nil, width : Int32 | Int64 | Nil = nil, height : Int32 | Int64 | Nil = nil, thumbnail : ::File | String | Nil = nil, caption : String | Nil = nil, parse_mode : ParseMode = default_parse_mode, caption_entities : Array(Tourmaline::MessageEntity) | Nil = nil, has_spoiler : Bool | Nil = nil, supports_streaming : Bool | Nil = nil, disable_notification : Bool | Nil = nil, protect_content : Bool | Nil = nil, reply_to_message_id : Int32 | Int64 | Nil = nil, allow_sending_without_reply : Bool | Nil = nil, reply_markup : Tourmaline::InlineKeyboardMarkup | Tourmaline::ReplyKeyboardMarkup | Tourmaline::ReplyKeyboardRemove | Tourmaline::ForceReply | Nil = nil) send_video, send_video_note(chat_id : Int32 | Int64 | String, video_note : ::File | String, message_thread_id : Int32 | Int64 | Nil = nil, duration : Int32 | Int64 | Nil = nil, length : Int32 | Int64 | Nil = nil, thumbnail : ::File | String | Nil = nil, disable_notification : Bool | Nil = nil, protect_content : Bool | Nil = nil, reply_to_message_id : Int32 | Int64 | Nil = nil, allow_sending_without_reply : Bool | Nil = nil, reply_markup : Tourmaline::InlineKeyboardMarkup | Tourmaline::ReplyKeyboardMarkup | Tourmaline::ReplyKeyboardRemove | Tourmaline::ForceReply | Nil = nil) send_video_note, send_voice(chat_id : Int32 | Int64 | String, voice : ::File | String, message_thread_id : Int32 | Int64 | Nil = nil, caption : String | Nil = nil, parse_mode : ParseMode = default_parse_mode, caption_entities : Array(Tourmaline::MessageEntity) | Nil = nil, duration : Int32 | Int64 | Nil = nil, disable_notification : Bool | Nil = nil, protect_content : Bool | Nil = nil, reply_to_message_id : Int32 | Int64 | Nil = nil, allow_sending_without_reply : Bool | Nil = nil, reply_markup : Tourmaline::InlineKeyboardMarkup | Tourmaline::ReplyKeyboardMarkup | Tourmaline::ReplyKeyboardRemove | Tourmaline::ForceReply | Nil = nil) send_voice, set_chat_administrator_custom_title(chat_id : Int32 | Int64 | String, user_id : Int32 | Int64, custom_title : String) set_chat_administrator_custom_title, set_chat_description(chat_id : Int32 | Int64 | String, description : String | Nil = nil) set_chat_description, set_chat_menu_button(chat_id : Int32 | Int64 | Nil = nil, menu_button : Tourmaline::MenuButton | Nil = nil) set_chat_menu_button, set_chat_permissions(chat_id : Int32 | Int64 | String, permissions : Tourmaline::ChatPermissions, use_independent_chat_permissions : Bool | Nil = nil) set_chat_permissions, set_chat_photo(chat_id : Int32 | Int64 | String, photo : ::File) set_chat_photo, set_chat_sticker_set(chat_id : Int32 | Int64 | String, sticker_set_name : String) set_chat_sticker_set, set_chat_title(chat_id : Int32 | Int64 | String, title : String) set_chat_title, set_custom_emoji_sticker_set_thumbnail(name : String, custom_emoji_id : String | Nil = nil) set_custom_emoji_sticker_set_thumbnail, set_game_score(user_id : Int32 | Int64, score : Int32 | Int64, force : Bool | Nil = nil, disable_edit_message : Bool | Nil = nil, chat_id : Int32 | Int64 | Nil = nil, message_id : Int32 | Int64 | Nil = nil, inline_message_id : String | Nil = nil) set_game_score, set_my_commands(commands : Array(Tourmaline::BotCommand), scope : Tourmaline::BotCommandScope | Nil = nil, language_code : String | Nil = nil) set_my_commands, set_my_default_administrator_rights(rights : Tourmaline::ChatAdministratorRights | Nil = nil, for_channels : Bool | Nil = nil) set_my_default_administrator_rights, set_my_description(description : String | Nil = nil, language_code : String | Nil = nil) set_my_description, set_my_short_description(short_description : String | Nil = nil, language_code : String | Nil = nil) set_my_short_description, set_passport_data_errors(user_id : Int32 | Int64, errors : Array(Tourmaline::PassportElementError)) set_passport_data_errors, set_sticker_emoji_list(sticker : String, emoji_list : Array(String)) set_sticker_emoji_list, set_sticker_keywords(sticker : String, keywords : Array(String) | Nil = nil) set_sticker_keywords, set_sticker_mask_position(sticker : String, mask_position : Tourmaline::MaskPosition | Nil = nil) set_sticker_mask_position, set_sticker_position_in_set(sticker : String, position : Int32 | Int64) set_sticker_position_in_set, set_sticker_set_thumbnail(name : String, user_id : Int32 | Int64, thumbnail : ::File | String | Nil = nil) set_sticker_set_thumbnail, set_sticker_set_title(name : String, title : String) set_sticker_set_title, set_webhook(url : String, certificate : ::File | Nil = nil, ip_address : String | Nil = nil, max_connections : Int32 | Int64 | Nil = nil, allowed_updates : Array(String) | Nil = nil, drop_pending_updates : Bool | Nil = nil, secret_token : String | Nil = nil) set_webhook, stop_message_live_location(chat_id : Int32 | Int64 | String | Nil = nil, message_id : Int32 | Int64 | Nil = nil, inline_message_id : String | Nil = nil, reply_markup : Tourmaline::InlineKeyboardMarkup | Nil = nil) stop_message_live_location, stop_poll(chat_id : Int32 | Int64 | String, message_id : Int32 | Int64, reply_markup : Tourmaline::InlineKeyboardMarkup | Nil = nil) stop_poll, unban_chat_member(chat_id : Int32 | Int64 | String, user_id : Int32 | Int64, only_if_banned : Bool | Nil = nil) unban_chat_member, unban_chat_sender_chat(chat_id : Int32 | Int64 | String, sender_chat_id : Int32 | Int64) unban_chat_sender_chat, unhide_general_forum_topic(chat_id : Int32 | Int64 | String) unhide_general_forum_topic, unpin_all_chat_messages(chat_id : Int32 | Int64 | String) unpin_all_chat_messages, unpin_all_forum_topic_messages(chat_id : Int32 | Int64 | String, message_thread_id : Int32 | Int64) unpin_all_forum_topic_messages, unpin_chat_message(chat_id : Int32 | Int64 | String, message_id : Int32 | Int64 | Nil = nil) unpin_chat_message, upload_sticker_file(user_id : Int32 | Int64, sticker : ::File, sticker_format : String) upload_sticker_file

Constructor Detail

def self.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


[View source]

Class Method Detail

def self.build_inline_keyboard_markup(*args, columns = nil, **options, &block : InlineKeyboardMarkupBuilder -> ) #

[View source]
def self.build_inline_query_result(&block : InlineQueryResultBuilder -> ) #

[View source]
def self.build_reply_keyboard_markup(*args, columns = nil, **options, &block : ReplyKeyboardMarkupBuilder -> ) #

[View source]

Instance Method Detail

def bot : User #

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


[View source]
def bot? : User | Nil #

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


[View source]
def bot_token : String #

[View source]
def build_inline_keyboard_markup(*args, columns = nil, **options, &block : InlineKeyboardMarkupBuilder -> ) #

[View source]
def build_inline_query_result(&block : InlineQueryResultBuilder -> ) #

[View source]
def build_reply_keyboard_markup(*args, columns = nil, **options, &block : ReplyKeyboardMarkupBuilder -> ) #

[View source]
def default_parse_mode : ParseMode #

[View source]
def default_parse_mode=(default_parse_mode : ParseMode) #

[View source]
def dispatcher #

[View source]
def on(action : UpdateAction, &block : Context -> ) #

[View source]
def on(*actions : Symbol | UpdateAction, &block : Context -> ) #

[View source]
def poll #

[View source]
def register(*handlers : EventHandler) #

[View source]
def 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.


[View source]
def request_raw(method : String, params = {} of String => String) #

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


[View source]
def serve(path = "/", host = "127.0.0.1", port = 8081, ssl_certificate_path = nil, ssl_key_path = nil, no_middleware_check = false) #

[View source]
def use(middleware : Middleware) #

[View source]