dialog_ruby 0.1.8 → 0.1.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE +7 -0
- data/exec/systemd/{dialog_bot@.path → _fix/dialog_bot@.path} +0 -0
- data/exec/systemd/{dialog_bot_dev@.path → _fix/dialog_bot_dev@.path} +0 -0
- data/exec/systemd/{dialog_bot_dev_pre@.service → _fix/dialog_bot_dev_pre@.service} +0 -0
- data/exec/systemd/{dialog_bot@.service → dialog_runMode@.service} +2 -2
- data/lib/configuration.rb +1 -1
- data/lib/dialog_ruby.rb +1 -1
- data/lib/{naming.rb → metamess/naming.rb} +0 -0
- data/lib/require.rb +13 -4
- data/lib/tdlib/init.rb +3 -3
- data/lib/triggers/deploy/deploy.rb +29 -9
- data/lib/triggers/start/{start.rb → _main.rb} +7 -1
- data/lib/triggers/start/{start_pre.rb → _pre_bot.rb} +0 -0
- data/lib/triggers/start/{start_bot.rb → bot.rb} +1 -20
- data/lib/triggers/start/tdlib.rb +42 -0
- data/lib/version.rb +1 -1
- metadata +12 -12
- data/exec/systemd/deploy.sh +0 -31
- data/exec/systemd/dialog_bot_pre@.service +0 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: de8a1266c971e423750e588c68386da28060d0f111e273925acfeac6fd53fdf2
|
4
|
+
data.tar.gz: bf7448b451fe7963009e2b1323d3be6fc28e9f05d53750c1ca939492a7f50b20
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ce6bc8eafa36ce596ac2e7a4d5a1d36e2df955ea18fc5cf2e7f47a27ec8ba4c2a5b55978af936a88de1e0bf68c46055993e30f47fb3d170dfb652960072f7822
|
7
|
+
data.tar.gz: 31078ef9e5041b07f23777cbc936683e7381f4a1bcf978dfc40c059486771f285bbecc50cc2d91812381cb12dbee37eeb00300238e47d4eabbe58b0dcced4dbb
|
data/LICENSE
ADDED
@@ -0,0 +1,7 @@
|
|
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
|
+
######## ####### ######## ####### ######## ########
|
File without changes
|
File without changes
|
File without changes
|
@@ -7,7 +7,7 @@ Type=simple
|
|
7
7
|
WorkingDirectory=<%=Dialog.config.path.dialog%>
|
8
8
|
EnvironmentFile=<%=Dialog.config.path.dialog%>/_env/%i
|
9
9
|
Environment=runScope=start
|
10
|
-
Environment=runMode
|
10
|
+
Environment=runMode=<%=mode%>
|
11
11
|
Environment=BotFullname=%i
|
12
12
|
|
13
13
|
# Greatly reduce Ruby memory fragmentation and heap usage
|
@@ -20,7 +20,7 @@ TimeoutStopSec=5
|
|
20
20
|
Restart=on-failure
|
21
21
|
StandardOutput=syslog
|
22
22
|
StandardError=syslog
|
23
|
-
SyslogIdentifier=dialog_%i
|
23
|
+
SyslogIdentifier=dialog_<%=mode%>_%i
|
24
24
|
|
25
25
|
[Install]
|
26
26
|
WantedBy=multi-user.target
|
data/lib/configuration.rb
CHANGED
data/lib/dialog_ruby.rb
CHANGED
@@ -17,7 +17,7 @@ module Dialog
|
|
17
17
|
version = RUBY_VERSION.split('.').map { |x| x.to_i }
|
18
18
|
if (version <=> [2, 5, 0]) >= 1
|
19
19
|
require_relative './require.rb'
|
20
|
-
|
20
|
+
_require_min
|
21
21
|
send("trigger_#{Dialog.config.run.scope}".to_sym)
|
22
22
|
else
|
23
23
|
puts "Minimum required Ruby version - 2.5.0"
|
File without changes
|
data/lib/require.rb
CHANGED
@@ -13,21 +13,31 @@
|
|
13
13
|
module Dialog
|
14
14
|
class << self
|
15
15
|
|
16
|
-
|
16
|
+
def _require_min
|
17
17
|
### SYSTEM
|
18
18
|
require 'pp'
|
19
19
|
require 'timeout'
|
20
20
|
require 'logger'
|
21
21
|
require 'socket'
|
22
22
|
require 'fileutils'
|
23
|
-
require 'uri'
|
24
23
|
require 'open3'
|
24
|
+
|
25
|
+
### DRY
|
26
|
+
require 'dry-configurable'
|
27
|
+
require_relative './version.rb'
|
28
|
+
require_relative './configuration.rb'
|
29
|
+
Dir.glob(File.join("#{File.dirname(__FILE__)}/triggers/**", "*.rb")).each{|f| require f}
|
30
|
+
end
|
31
|
+
|
32
|
+
|
33
|
+
def _require
|
34
|
+
### SYSTEM
|
35
|
+
require 'uri'
|
25
36
|
require 'erb'
|
26
37
|
require 'shellwords'
|
27
38
|
|
28
39
|
### GEMS
|
29
40
|
require 'dialect_lookup'
|
30
|
-
require 'tdlib-ruby'
|
31
41
|
require 'telegram/bot'
|
32
42
|
require 'i18n'
|
33
43
|
require 'redis'
|
@@ -38,7 +48,6 @@ module Dialog
|
|
38
48
|
#lazy_object
|
39
49
|
|
40
50
|
### DRY
|
41
|
-
require 'dry-configurable'
|
42
51
|
# require 'dry-monads'
|
43
52
|
# require 'dry-matcher'
|
44
53
|
# require 'dry-transaction'
|
data/lib/tdlib/init.rb
CHANGED
@@ -15,13 +15,13 @@ module Dialog
|
|
15
15
|
|
16
16
|
def tdlibInit(name)
|
17
17
|
|
18
|
-
FileUtils.mkdir_p("#{Dialog.config.path.
|
18
|
+
FileUtils.mkdir_p("#{Dialog.config.path.dialogData}/tdlib/#{name}")
|
19
19
|
config = {
|
20
20
|
api_id: Dialog.config.api.id,
|
21
21
|
api_hash: Dialog.config.api.hash_s,
|
22
22
|
device_model: Dialog.config.naming.app,
|
23
|
-
database_directory: "#{Dialog.config.path.
|
24
|
-
files_directory: "#{Dialog.config.path.
|
23
|
+
database_directory: "#{Dialog.config.path.dialogData}/tdlib/#{name}",
|
24
|
+
files_directory: "#{Dialog.config.path.dialogData}/tdlib/#{name}",
|
25
25
|
}
|
26
26
|
|
27
27
|
TD.configure do |config|
|
@@ -14,11 +14,13 @@ module Dialog
|
|
14
14
|
class << self
|
15
15
|
|
16
16
|
def trigger_deploy
|
17
|
+
require 'erb'
|
17
18
|
deploy_redis
|
18
19
|
deploy_bot
|
20
|
+
deploy_binaries
|
19
21
|
end
|
20
22
|
|
21
|
-
def erb(erbFile, dst)
|
23
|
+
def erb(erbFile, dst, mode='')
|
22
24
|
if not File.file?(dst)
|
23
25
|
tmpl = ERB.new(File.read("#{Dialog.config.path.dialog_ruby}/exec/#{erbFile}")).result(binding)
|
24
26
|
File.open(dst, 'w') do |f| f.write tmpl; end
|
@@ -26,23 +28,40 @@ module Dialog
|
|
26
28
|
end
|
27
29
|
|
28
30
|
def deploy_redis
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
31
|
+
if File.file?('/usr/sbin/redis-server')
|
32
|
+
redisDir = "#{Dialog.config.path.dialogData}/redis"
|
33
|
+
FileUtils.mkdir_p redisDir
|
34
|
+
erb('systemd/dialog_redis.service', "#{Dir.home}/.config/systemd/user/dialog_redis.service")
|
35
|
+
erb('conf/redis_local.conf', "#{redisDir}/redis_local.conf")
|
36
|
+
erb('conf/redis_global.conf', "#{redisDir}/redis_global.conf")
|
37
|
+
systemd('dialog_redis')
|
38
|
+
else
|
39
|
+
Dialog.logger.error "Please install Redis binary"
|
40
|
+
Dialog.logger.info "openSUSE: zypper --no-gpg-checks --non-interactive in redis"
|
41
|
+
exit(false)
|
42
|
+
end
|
35
43
|
end
|
36
44
|
|
37
45
|
|
38
46
|
def deploy_bot
|
39
|
-
erb('systemd/
|
47
|
+
erb('systemd/dialog_runMode@.service', "#{Dir.home}/.config/systemd/user/dialog_bot_pre@.service", 'check')
|
40
48
|
systemd("dialog_bot@#{Dialog.config.naming.full}")
|
49
|
+
|
50
|
+
erb('systemd/dialog_runMode@.service', "#{Dir.home}/.config/systemd/user/dialog_bot@.service", Dialog.config.run.mode)
|
51
|
+
systemd("dialog_bot@#{Dialog.config.naming.full}")
|
41
52
|
end
|
42
53
|
|
43
54
|
def deploy_tdlib
|
55
|
+
erb('systemd/dialog_runMode@.service', "#{Dir.home}/.config/systemd/user/dialog_tdlib@.service", Dialog.config.run.mode)
|
56
|
+
systemd("dialog_tdlib@#{Dialog.config.naming.full}")
|
44
57
|
end
|
45
58
|
|
59
|
+
def deploy_binaries
|
60
|
+
Dialog.logger.info "openSUSE: zypper ar -cf https://download.opensuse.org/repositories/home:/in4ops:/4wrap/openSUSE_Leap_15.0/home:in4ops:4wrap.repo"
|
61
|
+
#will be 'home:in4ops:Innosense:libs'
|
62
|
+
Dialog.logger.info "openSUSE: zypper --no-gpg-checks --non-interactive in zbar tdlib"
|
63
|
+
end
|
64
|
+
|
46
65
|
def deploy_devenv
|
47
66
|
end
|
48
67
|
|
@@ -51,7 +70,8 @@ module Dialog
|
|
51
70
|
|
52
71
|
def systemd(service)
|
53
72
|
Open3.popen3('/usr/bin/systemctl', '--user', 'daemon-reload')
|
54
|
-
|
73
|
+
# Open3.popen3('/usr/bin/systemctl', '--user', 'restart', service)
|
74
|
+
#enable
|
55
75
|
end
|
56
76
|
|
57
77
|
end
|
@@ -17,17 +17,23 @@ module Dialog
|
|
17
17
|
args = {}
|
18
18
|
case Dialog.config.common.mode
|
19
19
|
when 'check'
|
20
|
+
_require
|
20
21
|
jsonDriven(args, :check)
|
21
22
|
when 'bot'
|
23
|
+
_require
|
22
24
|
jsonDriven(args, :prod)
|
23
25
|
bot(args)
|
24
26
|
when 'dev'
|
27
|
+
_require
|
25
28
|
dialectDriven(args)
|
26
29
|
jsonDriven(args, :prod)
|
27
30
|
bot(args)
|
28
31
|
when 'dev_offline'
|
32
|
+
_require
|
29
33
|
dialectDriven(args)
|
30
|
-
jsonDriven(args, :check)
|
34
|
+
jsonDriven(args, :check)
|
35
|
+
when 'tdlib'
|
36
|
+
start_tdlib(args)
|
31
37
|
else
|
32
38
|
Dialog.logger.error "ERROR: no such mode - '#{Dialog.config.common.mode}'"
|
33
39
|
end
|
File without changes
|
@@ -13,32 +13,13 @@
|
|
13
13
|
module Dialog
|
14
14
|
class << self
|
15
15
|
|
16
|
-
def tdlibInit(args)
|
17
|
-
inits = ['cli']
|
18
|
-
args[:tdlib] = {}
|
19
|
-
inits.each do |init|
|
20
|
-
unless File.exists?("#{Dialog.config.path.data}/tdlib/#{init}/td.binlog")
|
21
|
-
Dialog.logger.error "ERROR: please make init of the '#{init}' using 'ruby dialog.rb init #{init}"
|
22
|
-
exit(false)
|
23
|
-
end
|
24
|
-
args[:tdlib][init.to_sym] = Dialog::TDLib.tdlibInit(init)
|
25
|
-
end
|
26
|
-
args[:tdlib].freeze
|
27
|
-
end
|
28
|
-
|
29
16
|
|
30
17
|
def bot(args)
|
31
18
|
args[:globals] = {}
|
32
19
|
|
33
20
|
### LANG
|
34
21
|
i18n = Dialog::Lang.initial
|
35
|
-
|
36
|
-
## BUG - TEMPORARY DISABLE
|
37
|
-
# tdlibInit(args)
|
38
|
-
# args[:tdlib][:cli].on_ready do |client|
|
39
|
-
# a = client.fetch('@type' => 'getMe')
|
40
|
-
# args[:globals][:cliId] = a['id'].to_i
|
41
|
-
# end
|
22
|
+
|
42
23
|
begin
|
43
24
|
Dialog::redis.call(['info', 'clients'])
|
44
25
|
rescue
|
@@ -0,0 +1,42 @@
|
|
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
|
+
class << self
|
15
|
+
|
16
|
+
def start_tdlib(args)
|
17
|
+
require 'tdlib-ruby'
|
18
|
+
args[:globals] = {}
|
19
|
+
Dir.glob(File.join("#{Dialog.config.path.dialog_rubyLib}/tdlib/**", "*.rb")).each{|f| require f}
|
20
|
+
tdlibInit(args)
|
21
|
+
args[:tdlib][:cli].on_ready do |client|
|
22
|
+
a = client.fetch('@type' => 'getMe')
|
23
|
+
args[:globals][:cliId] = a['id'].to_i
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
|
28
|
+
def tdlibInit(args)
|
29
|
+
inits = ['cli']
|
30
|
+
args[:tdlib] = {}
|
31
|
+
inits.each do |init|
|
32
|
+
unless File.exists?("#{Dialog.config.path.dialogData}/tdlib/#{init}/td.binlog")
|
33
|
+
Dialog.logger.error "ERROR: please make init of the '#{init}' using 'ruby dialog.rb init #{init}"
|
34
|
+
exit(false)
|
35
|
+
end
|
36
|
+
args[:tdlib][init.to_sym] = Dialog::TDLib.tdlibInit(init)
|
37
|
+
end
|
38
|
+
args[:tdlib].freeze
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
end
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dialog_ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9
|
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-
|
11
|
+
date: 2018-10-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dialect_lookup
|
@@ -173,6 +173,7 @@ extra_rdoc_files: []
|
|
173
173
|
files:
|
174
174
|
- ".gitignore"
|
175
175
|
- Gemfile
|
176
|
+
- LICENSE
|
176
177
|
- _dev/get_full_botapi.rb
|
177
178
|
- _dev/inlinekb_pubsub.rb
|
178
179
|
- _dev/main.rb
|
@@ -189,13 +190,11 @@ files:
|
|
189
190
|
- exec/git_sync/dialog__sync.service
|
190
191
|
- exec/git_sync/dialog__sync.timer
|
191
192
|
- exec/git_sync/post-merge
|
192
|
-
- exec/systemd/
|
193
|
-
- exec/systemd/
|
194
|
-
- exec/systemd/
|
195
|
-
- exec/systemd/dialog_bot_dev@.path
|
196
|
-
- exec/systemd/dialog_bot_dev_pre@.service
|
197
|
-
- exec/systemd/dialog_bot_pre@.service
|
193
|
+
- exec/systemd/_fix/dialog_bot@.path
|
194
|
+
- exec/systemd/_fix/dialog_bot_dev@.path
|
195
|
+
- exec/systemd/_fix/dialog_bot_dev_pre@.service
|
198
196
|
- exec/systemd/dialog_redis.service
|
197
|
+
- exec/systemd/dialog_runMode@.service
|
199
198
|
- lang/global_ru.yml
|
200
199
|
- lib/configuration.rb
|
201
200
|
- lib/dialect/canvas/canvas.rb
|
@@ -254,10 +253,10 @@ files:
|
|
254
253
|
- lib/metamess/event/notify_o.rb
|
255
254
|
- lib/metamess/event_c.rb
|
256
255
|
- lib/metamess/func.rb
|
256
|
+
- lib/metamess/naming.rb
|
257
257
|
- lib/metamess/service/service_o-callback_f.rb
|
258
258
|
- lib/metamess/service/service_o-inline_f.rb
|
259
259
|
- lib/metamess/service/service_o.rb
|
260
|
-
- lib/naming.rb
|
261
260
|
- lib/require.rb
|
262
261
|
- lib/storage/redis/redisPubSub.rb
|
263
262
|
- lib/storage/redis/rediscached.rb
|
@@ -274,9 +273,10 @@ files:
|
|
274
273
|
- lib/triggers/deploy/deploy.rb
|
275
274
|
- lib/triggers/false.rb
|
276
275
|
- lib/triggers/init.rb
|
277
|
-
- lib/triggers/start/
|
278
|
-
- lib/triggers/start/
|
279
|
-
- lib/triggers/start/
|
276
|
+
- lib/triggers/start/_main.rb
|
277
|
+
- lib/triggers/start/_pre_bot.rb
|
278
|
+
- lib/triggers/start/bot.rb
|
279
|
+
- lib/triggers/start/tdlib.rb
|
280
280
|
- lib/version.rb
|
281
281
|
- logo.png
|
282
282
|
homepage: https://gitlab.com/Innosense/MVP/dialog_ruby
|
data/exec/systemd/deploy.sh
DELETED
@@ -1,31 +0,0 @@
|
|
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 = bash
|
10
|
-
## Indent = space; 2 chars;
|
11
|
-
######## ####### ######## ####### ######## ########
|
12
|
-
set -e
|
13
|
-
|
14
|
-
runInitMain() (
|
15
|
-
if [ ! -f ~/.config/systemd/user/dialog_bot@.service ] || [ ! -f ~/.config/systemd/user/dialog_redis@.service ] ; then
|
16
|
-
cp dialog*@.service ~/.config/systemd/user
|
17
|
-
sed -i "s#{RunPath}#`echo $PWD`#" ~/.config/systemd/user/dialog*@.service
|
18
|
-
fi
|
19
|
-
systemctl --user daemon-reload
|
20
|
-
)
|
21
|
-
|
22
|
-
botRunInit() (
|
23
|
-
mkdir -p ~/.config/systemd/user ./_data/${BotFullname}
|
24
|
-
runInitMain
|
25
|
-
|
26
|
-
if [ ! -f ./_data/${BotFullname}/redis.conf ]; then
|
27
|
-
cp ../conf/redis_local.conf ./_data/${BotFullname}/redis.conf
|
28
|
-
sed -i "s/{INSTANCE}/${BotFullname}/" ./_data/${BotFullname}/redis.conf
|
29
|
-
fi
|
30
|
-
systemctl --user daemon-reload
|
31
|
-
)
|
@@ -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 check %i
|
10
|
-
ExecStart=/usr/bin/systemctl --user restart dialog_bot@%i
|
11
|
-
StandardOutput=syslog
|
12
|
-
StandardError=syslog
|
13
|
-
SyslogIdentifier=dialog_pre_%i
|
14
|
-
|
15
|
-
[Install]
|
16
|
-
WantedBy=multi-user.target
|