Class: VkCozy::BotPolling
- Inherits:
-
Object
- Object
- VkCozy::BotPolling
- Defined in:
- lib/vk_cozy/polling/bot_polling.rb
Instance Method Summary collapse
- #get_event(server) ⇒ Object
- #get_server ⇒ Object
-
#initialize(api, group_id = nil, wait = 25, rps_delay = 0) ⇒ BotPolling
constructor
A new instance of BotPolling.
- #listen ⇒ Object
Constructor Details
#initialize(api, group_id = nil, wait = 25, rps_delay = 0) ⇒ BotPolling
Returns a new instance of BotPolling.
3 4 5 6 7 8 9 10 11 12 13 |
# File 'lib/vk_cozy/polling/bot_polling.rb', line 3 def initialize(api, group_id=nil, wait=25, rps_delay=0) @api = api if group_id.nil? @group_id = @api.request('groups.getById', {})['response'][0]['id'] else @group_id = group_id end @rps_delay = rps_delay @stop = false end |
Instance Method Details
#get_event(server) ⇒ Object
19 20 21 22 23 |
# File 'lib/vk_cozy/polling/bot_polling.rb', line 19 def get_event(server) uri = URI.parse('%s?act=a_check&key=%s&ts=%s&wait=%s&rps_delay=%s' % [server['server'], server['key'], server['ts'], @wait, @rps_delay]) http_response = Net::HTTP.get(uri) return JSON.parse(http_response) end |
#get_server ⇒ Object
15 16 17 |
# File 'lib/vk_cozy/polling/bot_polling.rb', line 15 def get_server return @api.request('groups.getLongPollServer', {:group_id => @group_id})['response'] end |
#listen ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/vk_cozy/polling/bot_polling.rb', line 25 def listen server = get_server until @stop do event = get_event(server) if not event['ts'] server = get_server next end server['ts'] = event['ts'] yield event end end |