icqbot 0.1.5 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/bot_with_events_handlers.rb +13 -0
- data/doc/bot.md +14 -0
- data/icqbot.gemspec +25 -25
- data/lib/icqbot.rb +1 -1
- data/lib/icqbot/bot.rb +18 -1
- metadata +3 -3
- data/doc/todolist.md +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8a1b8905027bb3b08fccc7709c576dc9f8d12f3dab7aae4198c7a6f4206eeaf6
|
4
|
+
data.tar.gz: e86af0281b524e830d38368a7956d9c88ff77d87235bcdc2bee3448c736bba7e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b78278215ab10db856f55b908fc045fd1793ca0e1de0d4afc9f7a6b7986c19697e2b3ad6acb1d68d5b023c66bfc14acba9177d092d43f8a13f61321c9677090
|
7
|
+
data.tar.gz: c419c1cfc80b5896666307eb9cb369f9fc4a1f337263f8406313094514717d1bee4cec9e64d9b21c654f5cfbf325af200f54020c2de3db033819708518f74604
|
data/doc/bot.md
CHANGED
@@ -23,6 +23,20 @@ def listen
|
|
23
23
|
bot.loop = false
|
24
24
|
```
|
25
25
|
|
26
|
+
## Добавить event handler(обработчик событий)
|
27
|
+
```ruby
|
28
|
+
def add_event_handler name, handler
|
29
|
+
```
|
30
|
+
1. `name` - имя события.
|
31
|
+
2. `handler` - анонимная функция(принимает объект типа [Event](./event.md)), которая сработает при получение события с текстом идентичном названию обработчику.
|
32
|
+
|
33
|
+
## Добавить callback event handler
|
34
|
+
```ruby
|
35
|
+
def add_callback_event_handler name, handler
|
36
|
+
```
|
37
|
+
1. `name` - имя события.
|
38
|
+
2. `handler` - анонимная функция(принимает объект типа [Event](./event.md)), которая сработает при получение callback события с идентификатор идентичным названию обработчика.
|
39
|
+
|
26
40
|
## Отправить сообщение
|
27
41
|
```ruby
|
28
42
|
def send_msg msg, chat_id # -> Hash
|
data/icqbot.gemspec
CHANGED
@@ -1,26 +1,26 @@
|
|
1
|
-
require_relative './lib/icqbot.rb'
|
2
|
-
|
3
|
-
lib = File.expand_path('../lib', __FILE__)
|
4
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
-
|
6
|
-
Gem::Specification.new do |s|
|
7
|
-
s.name = "icqbot"
|
8
|
-
s.version = ICQ::VERSION
|
9
|
-
s.authors = ["sheyber"]
|
10
|
-
s.email = ["ukt1@ro.ru"]
|
11
|
-
s.license = '0BSD'
|
12
|
-
|
13
|
-
s.summary = %q{Ruby wrapper for ICQ Bot API.}
|
14
|
-
s.description = %q{This gem is a simple and minimalistic library for creating ICQ bots.}
|
15
|
-
s.homepage = "https://github.com/sheyber/icqbot"
|
16
|
-
s.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
|
17
|
-
|
18
|
-
s.metadata["homepage_uri"] = s.homepage
|
19
|
-
|
20
|
-
s.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
21
|
-
s.bindir = 'exe'
|
22
|
-
s.executables = s.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
23
|
-
s.require_paths = ['lib']
|
24
|
-
|
25
|
-
s.add_dependency 'requests', '~> 1.0', '>= 1.0.2'
|
1
|
+
require_relative './lib/icqbot.rb'
|
2
|
+
|
3
|
+
lib = File.expand_path('../lib', __FILE__)
|
4
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = "icqbot"
|
8
|
+
s.version = ICQ::VERSION
|
9
|
+
s.authors = ["sheyber"]
|
10
|
+
s.email = ["ukt1@ro.ru"]
|
11
|
+
s.license = '0BSD'
|
12
|
+
|
13
|
+
s.summary = %q{Ruby wrapper for ICQ Bot API.}
|
14
|
+
s.description = %q{This gem is a simple and minimalistic library for creating ICQ bots.}
|
15
|
+
s.homepage = "https://github.com/sheyber/icqbot"
|
16
|
+
s.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
|
17
|
+
|
18
|
+
s.metadata["homepage_uri"] = s.homepage
|
19
|
+
|
20
|
+
s.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
21
|
+
s.bindir = 'exe'
|
22
|
+
s.executables = s.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
23
|
+
s.require_paths = ['lib']
|
24
|
+
|
25
|
+
s.add_dependency 'requests', '~> 1.0', '>= 1.0.2'
|
26
26
|
end
|
data/lib/icqbot.rb
CHANGED
data/lib/icqbot/bot.rb
CHANGED
@@ -25,6 +25,8 @@ module ICQ
|
|
25
25
|
@pool_time = pool_time
|
26
26
|
@last_event_id = 0
|
27
27
|
@loop = true
|
28
|
+
@event_handlers = {}
|
29
|
+
@callback_event_handlers = {}
|
28
30
|
yield self if block_given?
|
29
31
|
end
|
30
32
|
|
@@ -43,11 +45,26 @@ module ICQ
|
|
43
45
|
if events and events['events'] and events['events'] != []
|
44
46
|
last_event = events['events'].last
|
45
47
|
@last_event_id = last_event['eventId']
|
46
|
-
|
48
|
+
last_event = ICQ::Event.new last_event
|
49
|
+
if @event_handlers.has_key? last_event.text
|
50
|
+
@event_handlers[last_event.text].call last_event
|
51
|
+
elsif last_event.type == ICQ::TypeEvent::CALLBACK and @callback_event_handlers.has_key? last_event.data
|
52
|
+
@callback_event_handlers[last_event.text].call last_event
|
53
|
+
else
|
54
|
+
yield last_event
|
55
|
+
end
|
47
56
|
end
|
48
57
|
end
|
49
58
|
end
|
50
59
|
|
60
|
+
def add_event_handler name, handler
|
61
|
+
@event_handlers[name] = handler
|
62
|
+
end
|
63
|
+
|
64
|
+
def add_callback_event_handler name, handler
|
65
|
+
@callback_event_handlers[name] = handler
|
66
|
+
end
|
67
|
+
|
51
68
|
private
|
52
69
|
def base_req chat_id
|
53
70
|
{
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: icqbot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sheyber
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-11-
|
11
|
+
date: 2020-11-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: requests
|
@@ -41,6 +41,7 @@ files:
|
|
41
41
|
- Gemfile
|
42
42
|
- README.md
|
43
43
|
- bin/5time_echo_and_end.rb
|
44
|
+
- bin/bot_with_events_handlers.rb
|
44
45
|
- bin/echo_bot.rb
|
45
46
|
- bin/send_text_with_button.rb
|
46
47
|
- doc/bot.md
|
@@ -48,7 +49,6 @@ files:
|
|
48
49
|
- doc/event.md
|
49
50
|
- doc/message.md
|
50
51
|
- doc/overview.md
|
51
|
-
- doc/todolist.md
|
52
52
|
- icqbot.gemspec
|
53
53
|
- lib/icqbot.rb
|
54
54
|
- lib/icqbot/bot.rb
|