class Telebot::Bot

Constants

DEFAULT_UPDATE_TIME

Default update time

Attributes

client[R]
processed_update_ids[R]
update_time[R]

Public Class Methods

new(token, update_time: DEFAULT_UPDATE_TIME) click to toggle source
# File lib/telebot/bot.rb, line 8
def initialize(token, update_time: DEFAULT_UPDATE_TIME)
  @client = Client.new(token)
  @processed_update_ids = []
  @update_time = update_time
end

Public Instance Methods

run(&block) click to toggle source
# File lib/telebot/bot.rb, line 14
def run(&block)
  loop do
    # Note: https://core.telegram.org/bots/api#getupdates
    # To mark an update as confirmed need to use offset+1
    offset = @processed_update_ids.last && @processed_update_ids.last + 1
    updates = @client.get_updates(offset: offset)

    updates.each do |update|
      next if @processed_update_ids.include?(update.update_id)
      process_update(update, block)
      @processed_update_ids << update.update_id
    end

    sleep(@update_time)
  end
end

Private Instance Methods

process_update(update, block) click to toggle source
# File lib/telebot/bot.rb, line 31
        def process_update(update, block)
  block.call(client, update.message)
end