vk_cozy 0.3.6 → 0.3.8
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 88f8d21019678635297581f40f48e83e71cc79bfe2db701cd3c6b6815df8c5d0
|
4
|
+
data.tar.gz: 2a3e5cfce38ec22b4d20f36b3f50e6c2d5b508a09e854186c5aeb90fa858ff80
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b02bf27e35dd324d7497ff0d2bd7f4a952b313cb94fc897c3e190b510881d870efe4e17c1c912dcdf5a596aaf2842608d94d44f6b6432c8cbae7778cb38340e9
|
7
|
+
data.tar.gz: f2b9dbac5adb7488dcf8db32189ab9d80c514ed8acefc20782ba9ded4275ea6214c8023747e0d5dee8bef70f9bdb804911a31c58f856d8ffce100a4d2160401e
|
@@ -1,39 +1,76 @@
|
|
1
1
|
module VkCozy
|
2
|
+
|
3
|
+
class Bothandler
|
4
|
+
attr_reader :stop
|
5
|
+
|
6
|
+
def initialize(filter, func, stop: true)
|
7
|
+
@stop = stop
|
8
|
+
@filter = filter
|
9
|
+
@func = func
|
10
|
+
end
|
11
|
+
|
12
|
+
def check(event)
|
13
|
+
check_bot = @filter.check_bot(event)
|
14
|
+
if check_bot
|
15
|
+
if check_bot.is_a?(Symbol)
|
16
|
+
return true
|
17
|
+
elsif check_bot.is_a?(Hash)
|
18
|
+
@func.call(event, check_bot)
|
19
|
+
else
|
20
|
+
@func.call(event)
|
21
|
+
end
|
22
|
+
if @stop
|
23
|
+
return true
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
|
2
30
|
class BotLabeler
|
3
31
|
attr_reader :api
|
4
32
|
|
5
33
|
def initialize(api)
|
6
34
|
@api = api
|
7
|
-
@
|
35
|
+
@handlers = {'*' => []} # * - обрабатывает события в не зависимости от их типа.
|
36
|
+
end
|
37
|
+
|
38
|
+
def get_handlers(type)
|
39
|
+
if @handlers[type].nil?
|
40
|
+
return []
|
41
|
+
else
|
42
|
+
return @handlers[type]
|
43
|
+
end
|
8
44
|
end
|
9
45
|
|
10
46
|
def filter(event)
|
11
|
-
for
|
12
|
-
|
13
|
-
check = f.check_bot(event)
|
14
|
-
if check
|
15
|
-
if check.is_a?(Symbol)
|
16
|
-
check = [Symbol]
|
17
|
-
elsif check.is_a?(Array)
|
18
|
-
i[:func].call(event, *check)
|
19
|
-
elsif check.is_a?(Hash)
|
20
|
-
i[:func].call(event, **check)
|
21
|
-
else
|
22
|
-
i[:func].call(event)
|
23
|
-
end
|
47
|
+
for handler in get_handlers(event.type) + @handlers['*']
|
48
|
+
if handler.check(event)
|
24
49
|
return true
|
25
50
|
end
|
26
51
|
end
|
27
52
|
end
|
28
53
|
|
29
|
-
def
|
54
|
+
def add_handler(filter, func, type: '*')
|
30
55
|
if func.is_a?(Symbol)
|
31
56
|
func = method(func)
|
32
57
|
end
|
33
|
-
@
|
34
|
-
|
35
|
-
|
36
|
-
|
58
|
+
if @handlers[type].nil?
|
59
|
+
@handlers[type] = []
|
60
|
+
end
|
61
|
+
@handlers[type] << Bothandler.new(filter, func)
|
62
|
+
end
|
63
|
+
|
64
|
+
def event_handler(filter, func)
|
65
|
+
add_handler(filter, func, type: 'message_event')
|
66
|
+
end
|
67
|
+
|
68
|
+
def message_handler(filter, func)
|
69
|
+
add_handler(filter, func, type: 'message_new')
|
70
|
+
end
|
71
|
+
|
72
|
+
def handler(filter, func)
|
73
|
+
add_handler(filter, func)
|
37
74
|
end
|
38
75
|
end
|
39
76
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
module
|
1
|
+
module Filter
|
2
2
|
class BaseFilter
|
3
3
|
def check_user(event) # Method check for user-bot
|
4
4
|
raise 'Method check_user not implemented'
|
@@ -9,7 +9,17 @@ module VkCozy
|
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
-
class
|
12
|
+
class MockedFilter < BaseFilter
|
13
|
+
def check_bot(event)
|
14
|
+
return true
|
15
|
+
end
|
16
|
+
|
17
|
+
def user_bot(event)
|
18
|
+
return true
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
class YaScan < BaseFilter
|
13
23
|
def initialize(pattern, flags: Regexp::IGNORECASE)
|
14
24
|
@flags = flags
|
15
25
|
@pattern = valid_pattern(pattern) # Pattern example: my name is <name>
|
@@ -32,25 +42,20 @@ module VkCozy
|
|
32
42
|
end
|
33
43
|
|
34
44
|
def check_bot(event)
|
35
|
-
|
36
|
-
check_text(event.message.text)
|
37
|
-
end
|
45
|
+
check_text(event.message.text)
|
38
46
|
end
|
39
47
|
|
40
48
|
def check_user(event)
|
41
|
-
if event.
|
42
|
-
|
43
|
-
return false
|
44
|
-
end
|
45
|
-
check_text(event.text)
|
49
|
+
if event.from_me
|
50
|
+
return false
|
46
51
|
end
|
52
|
+
check_text(event.text)
|
47
53
|
end
|
48
54
|
end
|
49
55
|
|
50
56
|
class Text < BaseFilter
|
51
|
-
def initialize(regex
|
57
|
+
def initialize(regex)
|
52
58
|
@regex = regex
|
53
|
-
@raw = kwargs
|
54
59
|
end
|
55
60
|
|
56
61
|
def check_user(event)
|
@@ -25,7 +25,7 @@ module VkCozy
|
|
25
25
|
|
26
26
|
define :VIDEO_NEW, 'video_new'
|
27
27
|
|
28
|
-
|
28
|
+
define :VIDEO_COMMENT_NEW, 'video_comment_new'
|
29
29
|
define :VIDEO_COMMENT_EDIT, 'video_comment_edit'
|
30
30
|
define :VIDEO_COMMENT_RESTORE, 'video_comment_restore'
|
31
31
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vk_cozy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Danil Konenko
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-06-
|
11
|
+
date: 2022-06-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: inum
|
@@ -52,7 +52,8 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
-
description:
|
55
|
+
description: vk_cozy является фреймворком для vk api, имеет удобные хэндлеры и фильтры,
|
56
|
+
создан чтобы упростить разработку ботов для вк
|
56
57
|
email: googloldanil@gmail.com
|
57
58
|
executables: []
|
58
59
|
extensions: []
|
@@ -88,7 +89,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
88
89
|
requirements:
|
89
90
|
- - ">="
|
90
91
|
- !ruby/object:Gem::Version
|
91
|
-
version:
|
92
|
+
version: 2.7.0
|
92
93
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
93
94
|
requirements:
|
94
95
|
- - ">="
|
@@ -98,5 +99,5 @@ requirements: []
|
|
98
99
|
rubygems_version: 3.3.7
|
99
100
|
signing_key:
|
100
101
|
specification_version: 4
|
101
|
-
summary:
|
102
|
+
summary: vk_cozy framework for vk-api
|
102
103
|
test_files: []
|