dialog_ruby 0.1.10 → 0.1.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/Dockerfile +13 -0
  3. data/{lib/storage/redis → _dev}/redisPubSub.rb +1 -1
  4. data/background/_init.rb +43 -0
  5. data/background/batch.rb +69 -0
  6. data/background/redis.rb +34 -0
  7. data/dialog_ruby.gemspec +6 -7
  8. data/exec/conf/redis_global.conf +4 -2
  9. data/exec/dialog.sh +28 -26
  10. data/exec/git_sync/dialog__sync.service +1 -1
  11. data/exec/prereq.sh +18 -1
  12. data/exec/systemd/dialog_background.service +29 -0
  13. data/exec/systemd/dialog_redis.service +1 -1
  14. data/exec/systemd/dialog_runMode@.service +16 -6
  15. data/exec/systemd/dialog_runner@.path +8 -0
  16. data/lib/{triggers/start → begin}/_main.rb +29 -21
  17. data/lib/begin/_pre_bot.rb +58 -0
  18. data/lib/begin/background.rb +24 -0
  19. data/lib/{triggers/start → begin}/bot.rb +27 -6
  20. data/lib/{triggers/start → begin}/tdlib.rb +12 -16
  21. data/lib/configuration.rb +39 -27
  22. data/lib/dialect/canvas/element/send/Inline_query_result.rb +2 -0
  23. data/lib/dialect/canvas/element/send/background.rb +28 -0
  24. data/lib/dialect/canvas/element/send/recognize.rb +3 -2
  25. data/lib/dialect/canvas/element/send/restrict.rb +0 -1
  26. data/lib/dialect/canvas/element/send/tdlib_chat.rb +1 -1
  27. data/lib/dialect/canvas/element/send/tdlib_message.rb +1 -1
  28. data/lib/dialect/codegen/codegen.rb +9 -9
  29. data/lib/dialect/codegen/erb/functional/2.2.1.Events2ModReceive.erb +27 -4
  30. data/lib/dialect/codegen/erb/functional/4.1.AppEvent2Elements.erb +7 -2
  31. data/lib/dialect/codegen/erb/functional/5.1.Element2ModElements.erb +1 -1
  32. data/lib/dialect/codegen/erb/functional/7.ElementChains.erb +7 -6
  33. data/lib/dialog_ruby.rb +5 -2
  34. data/lib/metamess/_run.rb +1 -0
  35. data/lib/metamess/content/content_o-contact_f.rb +41 -0
  36. data/lib/metamess/content/content_o.rb +7 -6
  37. data/lib/metamess/func.rb +0 -24
  38. data/lib/metamess/naming.rb +8 -5
  39. data/lib/metamess/service/service_o-inline_f.rb +4 -3
  40. data/lib/require.rb +21 -2
  41. data/lib/statistics/func.rb +72 -0
  42. data/lib/statistics/general.rb +44 -0
  43. data/lib/statistics/redisDump.rb +49 -0
  44. data/lib/storage/redis/cached/pullpush.rb +76 -0
  45. data/lib/storage/redis/cached/pushPreproc.rb +41 -0
  46. data/lib/storage/redis/func.rb +47 -0
  47. data/lib/storage/redis/stat/push.rb +33 -0
  48. data/lib/tdlib/auth.rb +8 -7
  49. data/lib/tdlib/init.rb +5 -5
  50. data/lib/telegram/botapi.rb +2 -1
  51. data/lib/telegram/wrappers.rb +1 -2
  52. data/lib/tooling/log.rb +0 -1
  53. data/lib/tooling/strings.rb +12 -0
  54. data/lib/triggers/_func.rb +39 -0
  55. data/lib/triggers/{_meta/full.rb → console_start.rb} +8 -5
  56. data/lib/triggers/deploy.rb +104 -0
  57. data/lib/triggers/false.rb +8 -6
  58. data/lib/triggers/init.rb +23 -10
  59. data/lib/triggers/systemd_start.rb +24 -0
  60. data/lib/version.rb +1 -1
  61. metadata +83 -41
  62. data/_dev/sidekiq.rb +0 -28
  63. data/exec/systemd/_fix/dialog_bot@.path +0 -6
  64. data/exec/systemd/_fix/dialog_bot_dev@.path +0 -6
  65. data/exec/systemd/_fix/dialog_bot_dev_pre@.service +0 -16
  66. data/lib/storage/redis/rediscached.rb +0 -97
  67. data/lib/triggers/deploy/deploy.rb +0 -78
  68. data/lib/triggers/start/_pre_bot.rb +0 -43
@@ -10,12 +10,14 @@
10
10
  ## Indent = space; 2 chars;
11
11
  ######## ####### ######## ####### ######## ########
12
12
 
13
- module Dialog
14
- class << self
15
-
16
- def trigger_false
17
- Dialog.logger.error "Something wrong in runtime scenario"
18
- end
13
+ module Dialog
14
+ module Triggers
15
+ class << self
16
+
17
+ def trigger_false
18
+ Dialog.logger.error "Something wrong in runtime scenario, please use dialog.sh"
19
+ end
19
20
 
21
+ end
20
22
  end
21
23
  end
@@ -10,18 +10,31 @@
10
10
  ## Indent = space; 2 chars;
11
11
  ######## ####### ######## ####### ######## ########
12
12
 
13
- module Dialog
14
- class << self
13
+ module Dialog
14
+ module Triggers
15
+ class << self
15
16
 
16
- def trigger_init
17
- Dialog.tdlibAuth
18
- end
17
+ def trigger_init
18
+ require 'erb'
19
+ send("trigger_init_#{Dialog.config.run.mode.to_sym}", Dialog.config.run.mode)
20
+ Dialog.logger.info "#{Dialog.config.run.mode} init finished successfully!"
21
+ end
22
+
23
+ def trigger_init_tdlib(mode)
24
+ require 'tdlib-ruby'
25
+ Dir.glob(File.join("#{Dialog.config.path.dialog_rubyLib}/tdlib/**", "*.rb")).each{|f| require f}
26
+ sess = Dialog::TDLib.tdlibInit
27
+ Dialog::TDLib.tdlibAuth('user', sess)
28
+ end
29
+
30
+ def trigger_init_bot(mode)
31
+ true
32
+ end
33
+
34
+ def trigger_init_bot_dev(mode)
35
+ true
36
+ end
19
37
 
20
- def tdlibAuth
21
- sess = Dialog::TDLib.tdlibInit(Dialog.config.run.mode)
22
- Dialog::TDLib.tdlibAuth(Dialog.config.run.mode, sess)
23
38
  end
24
-
25
-
26
39
  end
27
40
  end
@@ -0,0 +1,24 @@
1
+ ######## ####### ######## ####### ######## ########
2
+ ## / / / / License \ \ \ \
3
+ ## Copyleft culture, Copyright (C) is prohibited here
4
+ ## This work is licensed under a CC BY-SA 4.0
5
+ ## Creative Commons Attribution-ShareAlike 4.0 License
6
+ ## Refer to the http://creativecommons.org/licenses/by-sa/4.0/
7
+ ######## ####### ######## ####### ######## ########
8
+ ## / / / / Code Climate \ \ \ \
9
+ ## Language = ruby
10
+ ## Indent = space; 2 chars;
11
+ ######## ####### ######## ####### ######## ########
12
+
13
+ module Dialog
14
+ module Triggers
15
+ class << self
16
+
17
+ def trigger_systemd_start
18
+ systemd("dialog_#{Dialog.config.run.mode}@#{Dialog.config.naming.instance}", 'enstart')
19
+ systemd("dialog_#{Dialog.config.run.mode}_pre@#{Dialog.config.naming.instance}.path", 'enstart')
20
+ end
21
+
22
+ end
23
+ end
24
+ end
@@ -11,5 +11,5 @@
11
11
  ######## ####### ######## ####### ######## ########
12
12
 
13
13
  module Dialog
14
- VERSION = '0.1.10'.freeze
14
+ VERSION = '0.1.11'.freeze
15
15
  end
metadata CHANGED
@@ -1,141 +1,155 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dialog_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.10
4
+ version: 0.1.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eugene Istomin
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-10-27 00:00:00.000000000 Z
11
+ date: 2018-10-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: dialect_lookup
14
+ name: tdlib-ruby
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.0.4
19
+ version: '1.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.0.4
26
+ version: '1.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: dialog_bot_ruby
28
+ name: activesupport
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.8.7
33
+ version: '5.2'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.8.7
40
+ version: '5.2'
41
41
  - !ruby/object:Gem::Dependency
42
- name: tdlib-ruby
42
+ name: i18n
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.0'
47
+ version: '1.1'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.0'
54
+ version: '1.1'
55
55
  - !ruby/object:Gem::Dependency
56
- name: i18n
56
+ name: redis
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.1'
61
+ version: '4.0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.1'
68
+ version: '4.0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: redis
70
+ name: concurrent-ruby
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '4.0'
75
+ version: '1.0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '4.0'
82
+ version: '1.0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: concurrent-ruby
84
+ name: oj
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 1.0.5
89
+ version: '3.6'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 1.0.5
96
+ version: '3.6'
97
97
  - !ruby/object:Gem::Dependency
98
- name: oj
98
+ name: sidekiq
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '3.6'
103
+ version: '5.2'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '3.6'
110
+ version: '5.2'
111
111
  - !ruby/object:Gem::Dependency
112
- name: sidekiq-cron
112
+ name: sidekiq-batch
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '1.0'
117
+ version: '0.1'
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '1.0'
124
+ version: '0.1'
125
125
  - !ruby/object:Gem::Dependency
126
- name: sidekiq
126
+ name: sidekiq-status
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: '5.2'
131
+ version: '1.1'
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: '5.2'
138
+ version: '1.1'
139
+ - !ruby/object:Gem::Dependency
140
+ name: sidekiq-cron
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '1.0'
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '1.0'
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: sidekiq-rate-limiter
141
155
  requirement: !ruby/object:Gem::Requirement
@@ -164,6 +178,20 @@ dependencies:
164
178
  - - "~>"
165
179
  - !ruby/object:Gem::Version
166
180
  version: '0.7'
181
+ - !ruby/object:Gem::Dependency
182
+ name: redis-dump
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: '0.4'
188
+ type: :runtime
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: '0.4'
167
195
  description: Communication prototyping platform
168
196
  email:
169
197
  - info@innosense.org
@@ -172,15 +200,19 @@ extensions: []
172
200
  extra_rdoc_files: []
173
201
  files:
174
202
  - ".gitignore"
203
+ - Dockerfile
175
204
  - Gemfile
176
205
  - LICENSE
177
206
  - _dev/get_full_botapi.rb
178
207
  - _dev/inlinekb_pubsub.rb
179
208
  - _dev/main.rb
209
+ - _dev/redisPubSub.rb
180
210
  - _dev/restriction.rb
181
211
  - _dev/ru.yml
182
- - _dev/sidekiq.rb
183
212
  - _dev/tdlib.rb
213
+ - background/_init.rb
214
+ - background/batch.rb
215
+ - background/redis.rb
184
216
  - dialog_ruby.gemspec
185
217
  - exec/conf/redis_global.conf
186
218
  - exec/conf/redis_local.conf
@@ -191,17 +223,22 @@ files:
191
223
  - exec/git_sync/dialog__sync.timer
192
224
  - exec/git_sync/post-merge
193
225
  - exec/prereq.sh
194
- - exec/systemd/_fix/dialog_bot@.path
195
- - exec/systemd/_fix/dialog_bot_dev@.path
196
- - exec/systemd/_fix/dialog_bot_dev_pre@.service
226
+ - exec/systemd/dialog_background.service
197
227
  - exec/systemd/dialog_redis.service
198
228
  - exec/systemd/dialog_runMode@.service
229
+ - exec/systemd/dialog_runner@.path
199
230
  - lang/global_ru.yml
231
+ - lib/begin/_main.rb
232
+ - lib/begin/_pre_bot.rb
233
+ - lib/begin/background.rb
234
+ - lib/begin/bot.rb
235
+ - lib/begin/tdlib.rb
200
236
  - lib/configuration.rb
201
237
  - lib/dialect/canvas/canvas.rb
202
238
  - lib/dialect/canvas/element/convert/SearchBaloo.rb
203
239
  - lib/dialect/canvas/element/data/search.rb
204
240
  - lib/dialect/canvas/element/send/Inline_query_result.rb
241
+ - lib/dialect/canvas/element/send/background.rb
205
242
  - lib/dialect/canvas/element/send/bot_message.rb
206
243
  - lib/dialect/canvas/element/send/keyboards.rb
207
244
  - lib/dialect/canvas/element/send/recognize.rb
@@ -243,6 +280,7 @@ files:
243
280
  - lib/dialog_ruby.rb
244
281
  - lib/metamess/_run.rb
245
282
  - lib/metamess/content/content_o-command_f.rb
283
+ - lib/metamess/content/content_o-contact_f.rb
246
284
  - lib/metamess/content/content_o-media_f.rb
247
285
  - lib/metamess/content/content_o-simple_f.rb
248
286
  - lib/metamess/content/content_o.rb
@@ -259,8 +297,13 @@ files:
259
297
  - lib/metamess/service/service_o-inline_f.rb
260
298
  - lib/metamess/service/service_o.rb
261
299
  - lib/require.rb
262
- - lib/storage/redis/redisPubSub.rb
263
- - lib/storage/redis/rediscached.rb
300
+ - lib/statistics/func.rb
301
+ - lib/statistics/general.rb
302
+ - lib/statistics/redisDump.rb
303
+ - lib/storage/redis/cached/pullpush.rb
304
+ - lib/storage/redis/cached/pushPreproc.rb
305
+ - lib/storage/redis/func.rb
306
+ - lib/storage/redis/stat/push.rb
264
307
  - lib/tdlib/auth.rb
265
308
  - lib/tdlib/func.rb
266
309
  - lib/tdlib/init.rb
@@ -270,14 +313,13 @@ files:
270
313
  - lib/tooling/lang.rb
271
314
  - lib/tooling/log.rb
272
315
  - lib/tooling/ruby.rb
273
- - lib/triggers/_meta/full.rb
274
- - lib/triggers/deploy/deploy.rb
316
+ - lib/tooling/strings.rb
317
+ - lib/triggers/_func.rb
318
+ - lib/triggers/console_start.rb
319
+ - lib/triggers/deploy.rb
275
320
  - lib/triggers/false.rb
276
321
  - lib/triggers/init.rb
277
- - lib/triggers/start/_main.rb
278
- - lib/triggers/start/_pre_bot.rb
279
- - lib/triggers/start/bot.rb
280
- - lib/triggers/start/tdlib.rb
322
+ - lib/triggers/systemd_start.rb
281
323
  - lib/version.rb
282
324
  - logo.png
283
325
  homepage: https://gitlab.com/Innosense/MVP/dialog_ruby
@@ -1,28 +0,0 @@
1
- class TelegramHandlerWorker
2
- include Sidekiq::Worker
3
- sidekiq_options queue: :telegram
4
-
5
- TYPES = %w(inline_query
6
- chosen_inline_result
7
- callback_query
8
- edited_message
9
- message
10
- channel_post
11
- edited_channel_post)
12
-
13
- def perform(params)
14
- update = Telegram::Bot::Types::Update.new(params)
15
- message = TYPES.reduce(nil) { |m, t| m || update.public_send(t) }
16
-
17
- if message.present?
18
- RedmineBots::Telegram.update_manager.handle_message(message)
19
- else
20
- logger.fatal "Can't find message: #{params.to_json}"
21
- end
22
- end
23
-
24
- def logger
25
- @logger ||= Logger.new(Rails.root.join('log/redmine_bots',
26
- 'telegram-handler.log'))
27
- end
28
- end
@@ -1,6 +0,0 @@
1
- [Unit]
2
- Description=Monitor /tmp/ready
3
-
4
- [Path]
5
- Unit=dialog_bot_pre@%i.service
6
- PathChanged=/tmp/ready_%i
@@ -1,6 +0,0 @@
1
- [Unit]
2
- Description=Monitor sqlite export
3
-
4
- [Path]
5
- Unit=dialog_bot_dev_pre@%i.service
6
- PathChanged={RunPath}/_data/Dialect.sqlite
@@ -1,16 +0,0 @@
1
- [Unit]
2
- Description= Dialog (Telegram Bot abstraction layer) - instance %i
3
- After=syslog.target network.target
4
-
5
- [Service]
6
- Type=oneshot
7
- WorkingDirectory={RunPath}
8
- EnvironmentFile={RunPath}/_env/%i
9
- ExecStartPre=/usr/bin/ruby.ruby2.5 ./dialog.rb start dev_offline %i
10
- ExecStart=/usr/bin/systemctl --user restart dialog_bot@%i
11
- StandardOutput=syslog
12
- StandardError=syslog
13
- SyslogIdentifier=dialog_dev_pre_%i
14
-
15
- [Install]
16
- WantedBy=multi-user.target