dialog_ruby 0.1.7 → 0.1.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 +4 -4
- data/exec/conf/redis_global.conf +49 -0
- data/exec/conf/redis_local.conf +4 -0
- data/exec/dev/run_dev.sh +42 -0
- data/exec/dev/tmpfiles.conf +5 -0
- data/exec/dialog.sh +52 -0
- data/exec/git_sync/dialog__sync.service +14 -0
- data/exec/git_sync/dialog__sync.timer +11 -0
- data/exec/git_sync/post-merge +5 -0
- data/exec/systemd/deploy.sh +31 -0
- data/exec/systemd/dialog_bot@.path +6 -0
- data/exec/systemd/dialog_bot@.service +26 -0
- data/exec/systemd/dialog_bot_dev@.path +6 -0
- data/exec/systemd/dialog_bot_dev_pre@.service +16 -0
- data/exec/systemd/dialog_bot_pre@.service +16 -0
- data/exec/systemd/dialog_redis.service +15 -0
- data/lib/configuration.rb +25 -17
- data/lib/dialect/codegen/codegen.rb +3 -3
- data/lib/dialog_ruby.rb +17 -38
- data/lib/require.rb +58 -0
- data/lib/tooling/lang.rb +2 -1
- data/lib/triggers/_meta/full.rb +21 -0
- data/lib/triggers/deploy/deploy.rb +58 -0
- data/lib/triggers/false.rb +21 -0
- data/lib/triggers/init.rb +27 -0
- data/lib/triggers/start/start.rb +68 -0
- data/lib/{dialogStart.rb → triggers/start/start_bot.rb} +15 -87
- data/lib/triggers/start/start_pre.rb +43 -0
- data/lib/version.rb +13 -1
- metadata +26 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 50b52161687990f23ad7cff84999068743836e72ac832d43071b46c19b724518
|
4
|
+
data.tar.gz: 2c4085bbe8b9b1cc4303a3013090e8be6bae7a54d2f8ff724b85bde4531ad23c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 684b298d0a10b2f839ae392b5ced57a2947c64797c7597f7c38dca8477b86e297cc40dc2b2f466700b615cc542f3173eae1b5bc6637e745a61bb2774d07377bb
|
7
|
+
data.tar.gz: 0b5fdb43a58eaba5995fdcb7946043b1577602da46b438671926dd9287bb472204b4d5556a1aa434609d3663abaca4994bb65229341ef42a5d921cef9600102d
|
@@ -0,0 +1,49 @@
|
|
1
|
+
daemonize no
|
2
|
+
port 0
|
3
|
+
unixsocketperm 700
|
4
|
+
loglevel notice
|
5
|
+
syslog-enabled yes
|
6
|
+
syslog-facility local1
|
7
|
+
databases 2
|
8
|
+
save 600 1
|
9
|
+
save 300 5
|
10
|
+
save 180 10
|
11
|
+
save 60 50
|
12
|
+
save 10 100
|
13
|
+
|
14
|
+
stop-writes-on-bgsave-error yes
|
15
|
+
rdbcompression yes
|
16
|
+
rdbchecksum yes
|
17
|
+
dbfilename dump.rdb
|
18
|
+
appendonly no
|
19
|
+
appendfsync everysec
|
20
|
+
no-appendfsync-on-rewrite no
|
21
|
+
maxclients 1000
|
22
|
+
|
23
|
+
auto-aof-rewrite-percentage 100
|
24
|
+
auto-aof-rewrite-min-size 64mb
|
25
|
+
aof-rewrite-incremental-fsync yes
|
26
|
+
|
27
|
+
|
28
|
+
aof-load-truncated yes
|
29
|
+
lua-time-limit 5000
|
30
|
+
slowlog-log-slower-than 10000
|
31
|
+
slowlog-max-len 128
|
32
|
+
latency-monitor-threshold 0
|
33
|
+
notify-keyspace-events ""
|
34
|
+
|
35
|
+
hash-max-ziplist-entries 512
|
36
|
+
hash-max-ziplist-value 64
|
37
|
+
list-max-ziplist-entries 512
|
38
|
+
list-max-ziplist-value 64
|
39
|
+
set-max-intset-entries 512
|
40
|
+
|
41
|
+
zset-max-ziplist-entries 128
|
42
|
+
zset-max-ziplist-value 64
|
43
|
+
hll-sparse-max-bytes 3000
|
44
|
+
activerehashing yes
|
45
|
+
client-output-buffer-limit normal 0 0 0
|
46
|
+
client-output-buffer-limit slave 256mb 64mb 60
|
47
|
+
client-output-buffer-limit pubsub 32mb 8mb 60
|
48
|
+
|
49
|
+
hz 10
|
data/exec/dev/run_dev.sh
ADDED
@@ -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 = bash
|
10
|
+
## Indent = space; 2 chars;
|
11
|
+
######## ####### ######## ####### ######## ########
|
12
|
+
set -e
|
13
|
+
|
14
|
+
|
15
|
+
#####
|
16
|
+
DialogBotExec() (
|
17
|
+
systemctl --user restart dialog_redis@${BotFullname}
|
18
|
+
systemctl --user restart dialog_bot@${BotFullname}
|
19
|
+
|
20
|
+
case $Mode in
|
21
|
+
'prod')
|
22
|
+
echo "Ready!"
|
23
|
+
systemctl --user enable dialog_redis@${BotFullname}
|
24
|
+
systemctl --user enable dialog_bot@${BotFullname}
|
25
|
+
;;
|
26
|
+
'dev')
|
27
|
+
mkdir -p /tmp/_render
|
28
|
+
|
29
|
+
inotifywait -r -e DELETE --format '%w %f' -m ./engine |\
|
30
|
+
(
|
31
|
+
while read; do
|
32
|
+
echo "Bot restarting"
|
33
|
+
systemctl --user restart dialog_bot@${BotFullname}
|
34
|
+
done
|
35
|
+
)
|
36
|
+
|
37
|
+
systemctl --user stop dialog_bot@${BotFullname}
|
38
|
+
systemctl --user stop dialog_redis@${BotFullname}
|
39
|
+
;;
|
40
|
+
esac
|
41
|
+
)
|
42
|
+
#####
|
data/exec/dialog.sh
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
######## ####### ######## ####### ######## ########
|
3
|
+
## / / / / License \ \ \ \
|
4
|
+
## Copyleft culture, Copyright (C) is prohibited here
|
5
|
+
## This work is licensed under a CC BY-SA 4.0
|
6
|
+
## Creative Commons Attribution-ShareAlike 4.0 License
|
7
|
+
## Refer to the http://creativecommons.org/licenses/by-sa/4.0/
|
8
|
+
######## ####### ######## ####### ######## ########
|
9
|
+
## / / / / Code Climate \ \ \ \
|
10
|
+
## Language = bash
|
11
|
+
## Indent = space; 2 chars;
|
12
|
+
######## ####### ######## ####### ######## ########
|
13
|
+
set -e
|
14
|
+
|
15
|
+
## PRE - ENV ##
|
16
|
+
# . ./engine/exec.sh
|
17
|
+
|
18
|
+
if [[ -z $RunMethod ]]; then
|
19
|
+
DialogMsg="Please specify run method"
|
20
|
+
echo $DialogMsg; select RunMethod in console systemd; do break ; done
|
21
|
+
fi
|
22
|
+
|
23
|
+
if [[ -z $BotFullname ]]; then
|
24
|
+
DialogMsg="Please specify BotFullname"
|
25
|
+
echo $DialogMsg; select BotFullname in `ls ./_env/*|grep -v tmpl|sed -e 's/.*.\///'`; do break ; done
|
26
|
+
fi
|
27
|
+
|
28
|
+
case $RunMethod in
|
29
|
+
'sytemd')
|
30
|
+
;;
|
31
|
+
|
32
|
+
'console')
|
33
|
+
|
34
|
+
if [[ -z $runScope ]]; then
|
35
|
+
DialogMsg="Please specify scope"
|
36
|
+
echo $DialogMsg; select runScope in init start stop; do break ; done
|
37
|
+
fi
|
38
|
+
|
39
|
+
if [[ -z $runMode ]]; then
|
40
|
+
DialogMsg="Please specify mode: "
|
41
|
+
echo $DialogMsg; select runMode in check bot dev dev_offline; do break ; done
|
42
|
+
fi
|
43
|
+
|
44
|
+
export $(grep -v '^#' ./_env/$BotFullname | xargs)
|
45
|
+
ruby ./dialog.rb
|
46
|
+
|
47
|
+
;;
|
48
|
+
|
49
|
+
*)
|
50
|
+
echo 'Wrong run method!'
|
51
|
+
;;
|
52
|
+
esac
|
@@ -0,0 +1,14 @@
|
|
1
|
+
[Unit]
|
2
|
+
Description= Dialog sync
|
3
|
+
After=syslog.target network.target
|
4
|
+
|
5
|
+
[Service]
|
6
|
+
Type=oneshot
|
7
|
+
WorkingDirectory={RunPath}
|
8
|
+
ExecStart=/usr/bin/git pull
|
9
|
+
StandardOutput=syslog
|
10
|
+
StandardError=syslog
|
11
|
+
SyslogIdentifier=dialog_sync
|
12
|
+
|
13
|
+
[Install]
|
14
|
+
WantedBy=multi-user.target
|
@@ -0,0 +1,31 @@
|
|
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
|
+
)
|
@@ -0,0 +1,26 @@
|
|
1
|
+
[Unit]
|
2
|
+
Description= Dialog (Telegram Bot abstraction layer) - instance %i
|
3
|
+
After=syslog.target network.target
|
4
|
+
|
5
|
+
[Service]
|
6
|
+
Type=simple
|
7
|
+
WorkingDirectory=<%=Dialog.config.path.dialog%>
|
8
|
+
EnvironmentFile=<%=Dialog.config.path.dialog%>/_env/%i
|
9
|
+
Environment=runScope=start
|
10
|
+
Environment=runMode=bot
|
11
|
+
Environment=BotFullname=%i
|
12
|
+
|
13
|
+
# Greatly reduce Ruby memory fragmentation and heap usage
|
14
|
+
# https://www.mikeperham.com/2018/04/25/taming-rails-memory-bloat/
|
15
|
+
Environment=MALLOC_ARENA_MAX=2
|
16
|
+
|
17
|
+
ExecStart=/usr/bin/ruby ./dialog.rb
|
18
|
+
RestartSec=5
|
19
|
+
TimeoutStopSec=5
|
20
|
+
Restart=on-failure
|
21
|
+
StandardOutput=syslog
|
22
|
+
StandardError=syslog
|
23
|
+
SyslogIdentifier=dialog_%i
|
24
|
+
|
25
|
+
[Install]
|
26
|
+
WantedBy=multi-user.target
|
@@ -0,0 +1,16 @@
|
|
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
|
@@ -0,0 +1,16 @@
|
|
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
|
@@ -0,0 +1,15 @@
|
|
1
|
+
[Unit]
|
2
|
+
Description=Redis
|
3
|
+
After=network.target
|
4
|
+
PartOf=redis.target
|
5
|
+
|
6
|
+
[Service]
|
7
|
+
Type=simple
|
8
|
+
#PrivateTmp=true
|
9
|
+
WorkingDirectory=<%=Dialog.config.path.dialogData%>/redis
|
10
|
+
PIDFile=<%=Dialog.config.path.dialogData%>/redis/redis.pid
|
11
|
+
ExecStart=/usr/sbin/redis-server ./redis_local.conf
|
12
|
+
Restart=on-failure
|
13
|
+
|
14
|
+
[Install]
|
15
|
+
WantedBy=multi-user.target
|
data/lib/configuration.rb
CHANGED
@@ -13,6 +13,10 @@
|
|
13
13
|
module Dialog
|
14
14
|
extend Dry::Configurable
|
15
15
|
|
16
|
+
require_relative './tooling/log.rb'
|
17
|
+
def self.getDialogPath; return @dialogPath; end
|
18
|
+
def self.getDialog_rubyPath; return File.dirname(__FILE__); end
|
19
|
+
|
16
20
|
def self.checkEnv(env, val, err=[])
|
17
21
|
if ENV[env].nil?
|
18
22
|
case val
|
@@ -21,33 +25,30 @@ module Dialog
|
|
21
25
|
else res = val
|
22
26
|
end
|
23
27
|
else res = ENV[env]; end
|
28
|
+
puts err
|
24
29
|
return res
|
25
30
|
end
|
26
31
|
|
27
|
-
|
28
32
|
err = []
|
29
|
-
app = 'Dialog'
|
30
|
-
ARGV[0] ? scope = ARGV[0] : err << "There is no scope as ARGV[0]" && scope = false
|
31
|
-
ARGV[1] ? mode = ARGV[1] : err << "There is no mode as ARGV[1]" && mode = false
|
33
|
+
app = 'Dialog'
|
32
34
|
|
33
35
|
setting :api do
|
34
|
-
setting :id,
|
36
|
+
setting :id, Dialog.checkEnv('ApiID', false, err)
|
35
37
|
setting :hash_s, Dialog.checkEnv('ApiHash', false, err)
|
36
38
|
end
|
37
39
|
|
38
40
|
setting :run do
|
39
|
-
setting :scope,
|
40
|
-
setting :mode,
|
41
|
+
setting :scope, Dialog.checkEnv('runScope', false, err)
|
42
|
+
setting :mode, Dialog.checkEnv('runMode', false, err)
|
41
43
|
end
|
42
44
|
|
43
45
|
setting :naming do
|
44
46
|
setting :app, app
|
45
47
|
end
|
46
48
|
|
47
|
-
unless
|
48
|
-
|
49
|
-
|
50
|
-
token = Dialog.checkEnv('BotToken', false, err)
|
49
|
+
unless Dialog.checkEnv('runScope', false, err) == 'init'
|
50
|
+
namingFull = Dialog.checkEnv('BotFullname', false, err)
|
51
|
+
token = Dialog.checkEnv('BotToken', false, err)
|
51
52
|
|
52
53
|
setting :naming do
|
53
54
|
setting :app, app
|
@@ -58,7 +59,7 @@ module Dialog
|
|
58
59
|
else
|
59
60
|
err << "Error in naming!"
|
60
61
|
end
|
61
|
-
setting :id, token.split(':')[0].to_i
|
62
|
+
setting :id, token.split(':')[0].to_i unless token == false
|
62
63
|
end
|
63
64
|
|
64
65
|
setting :dialect do
|
@@ -67,7 +68,7 @@ module Dialog
|
|
67
68
|
end
|
68
69
|
|
69
70
|
setting :db do
|
70
|
-
setting :redis_url, "./_data
|
71
|
+
setting :redis_url, "./_data/redis/redis.sock"
|
71
72
|
end
|
72
73
|
|
73
74
|
setting :secure do
|
@@ -84,13 +85,15 @@ module Dialog
|
|
84
85
|
end
|
85
86
|
|
86
87
|
setting :path do
|
87
|
-
setting :
|
88
|
-
setting :
|
89
|
-
setting :
|
88
|
+
setting :dialog_ruby, "#{Dialog.getDialog_rubyPath}/../"
|
89
|
+
setting :dialog_rubyLib,"#{Dialog.getDialog_rubyPath}"
|
90
|
+
setting :dialog, "#{Dialog.getDialogPath}"
|
91
|
+
setting :dialogData, "#{Dialog.getDialogPath}/_data"
|
92
|
+
setting :dialogRender, "#{Dialog.getDialogPath}/_render"
|
90
93
|
end
|
91
94
|
|
92
95
|
setting :common do
|
93
|
-
setting :mode,
|
96
|
+
setting :mode, Dialog.checkEnv('runMode', false, err)
|
94
97
|
end
|
95
98
|
|
96
99
|
setting :log do
|
@@ -109,6 +112,11 @@ module Dialog
|
|
109
112
|
setting :web_hook_url, "https://#{botInstanceHostName}/telegram/api/web_hook"
|
110
113
|
end
|
111
114
|
|
115
|
+
if Dialog.checkEnv('runScope', false, err) == false and Dialog.checkEnv('runMode', false, err) == false
|
116
|
+
FileUtils.cp "#{Dialog.getDialog_rubyPath}/../exec/dialog.sh", "#{Dialog.getDialogPath}/" if not File.file?("#{Dialog.getDialogPath}/dialog.sh")
|
117
|
+
Dialog.logger.info "dialog.sh is copied to your dialog folder, please use it for correct ENV exports!"
|
118
|
+
end
|
119
|
+
|
112
120
|
unless err.empty?
|
113
121
|
err << "EXITING!"
|
114
122
|
puts err
|
@@ -42,7 +42,7 @@ module Dialog
|
|
42
42
|
|
43
43
|
|
44
44
|
def makeAErb(args, type, stage)
|
45
|
-
FileUtils.mkdir_p("#{Dialog.config.path.
|
45
|
+
FileUtils.mkdir_p("#{Dialog.config.path.dialogRender}/code_#{type}/")
|
46
46
|
|
47
47
|
args[:tmp][:stages][stage].each do |runProps|
|
48
48
|
nameSym = runProps[:name].to_sym
|
@@ -54,9 +54,9 @@ module Dialog
|
|
54
54
|
fullName = "#{runProps[:order]}_#{runProps[:name]}_#{viewId}"
|
55
55
|
fullNameSym = fullName.to_sym
|
56
56
|
|
57
|
-
tmpl = ERB.new(File.read("#{
|
57
|
+
tmpl = ERB.new(File.read("#{File.dirname(__FILE__)}/erb/#{stage}/#{runProps[:order]}.#{runProps[:name]}.erb")).result(binding)
|
58
58
|
runProps.has_key?(:erb_order) ? rname = "#{runProps[:erb_order]}_#{fullName}" : rname = fullName
|
59
|
-
File.open("#{Dialog.config.path.
|
59
|
+
File.open("#{Dialog.config.path.dialogRender}/code_#{type}/#{stage}__#{rname}.rb", 'w') do |f| f.write tmpl; end
|
60
60
|
end
|
61
61
|
end
|
62
62
|
end
|
data/lib/dialog_ruby.rb
CHANGED
@@ -10,41 +10,20 @@
|
|
10
10
|
## Indent = space; 2 chars;
|
11
11
|
######## ####### ######## ####### ######## ########
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
require 'oj'
|
31
|
-
require 'sidekiq-cron'
|
32
|
-
require 'sidekiq-rate-limiter'
|
33
|
-
#lazy_object
|
34
|
-
|
35
|
-
### DRY
|
36
|
-
require 'dry-configurable'
|
37
|
-
# require 'dry-monads'
|
38
|
-
# require 'dry-matcher'
|
39
|
-
# require 'dry-transaction'
|
40
|
-
# require 'dry/inflector'
|
41
|
-
# require 'dry-validation'
|
42
|
-
# require 'dry-struct'
|
43
|
-
# require 'dry-types'
|
44
|
-
|
45
|
-
#dry-events - pub/sub
|
46
|
-
|
47
|
-
### CODE
|
48
|
-
require_relative './configuration.rb'
|
49
|
-
require_relative './dialogStart.rb'
|
50
|
-
Dir.glob(File.join("#{Dialog.config.path.run}/**", "*.rb")).each{|f| require f}
|
13
|
+
module Dialog
|
14
|
+
class << self
|
15
|
+
|
16
|
+
def create
|
17
|
+
version = RUBY_VERSION.split('.').map { |x| x.to_i }
|
18
|
+
if (version <=> [2, 5, 0]) >= 1
|
19
|
+
require_relative './require.rb'
|
20
|
+
_require
|
21
|
+
send("trigger_#{Dialog.config.run.scope}".to_sym)
|
22
|
+
else
|
23
|
+
puts "Minimum required Ruby version - 2.5.0"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
data/lib/require.rb
ADDED
@@ -0,0 +1,58 @@
|
|
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 _require
|
17
|
+
### SYSTEM
|
18
|
+
require 'pp'
|
19
|
+
require 'timeout'
|
20
|
+
require 'logger'
|
21
|
+
require 'socket'
|
22
|
+
require 'fileutils'
|
23
|
+
require 'uri'
|
24
|
+
require 'open3'
|
25
|
+
require 'erb'
|
26
|
+
require 'shellwords'
|
27
|
+
|
28
|
+
### GEMS
|
29
|
+
require 'dialect_lookup'
|
30
|
+
require 'tdlib-ruby'
|
31
|
+
require 'telegram/bot'
|
32
|
+
require 'i18n'
|
33
|
+
require 'redis'
|
34
|
+
require 'concurrent'
|
35
|
+
require 'oj'
|
36
|
+
require 'sidekiq-cron'
|
37
|
+
require 'sidekiq-rate-limiter'
|
38
|
+
#lazy_object
|
39
|
+
|
40
|
+
### DRY
|
41
|
+
require 'dry-configurable'
|
42
|
+
# require 'dry-monads'
|
43
|
+
# require 'dry-matcher'
|
44
|
+
# require 'dry-transaction'
|
45
|
+
# require 'dry/inflector'
|
46
|
+
# require 'dry-validation'
|
47
|
+
# require 'dry-struct'
|
48
|
+
# require 'dry-types'
|
49
|
+
|
50
|
+
#dry-events - pub/sub
|
51
|
+
|
52
|
+
### CODE
|
53
|
+
Dir.glob(File.join("#{File.dirname(__FILE__)}/**", "*.rb")).each{|f| require f}
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
data/lib/tooling/lang.rb
CHANGED
@@ -14,7 +14,8 @@ module Dialog
|
|
14
14
|
class << self
|
15
15
|
|
16
16
|
def initial
|
17
|
-
I18n.load_path = Dir["#{Dialog.config.path.
|
17
|
+
I18n.load_path = Dir["#{Dialog.config.path.dialog_ruby}/lang/*.yml"]
|
18
|
+
I18n.available_locales = [:en, :ru]
|
18
19
|
I18n.default_locale = :ru
|
19
20
|
I18n.backend.load_translations
|
20
21
|
end
|
@@ -0,0 +1,21 @@
|
|
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 trigger_full
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,58 @@
|
|
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 trigger_deploy
|
17
|
+
deploy_redis
|
18
|
+
deploy_bot
|
19
|
+
end
|
20
|
+
|
21
|
+
def erb(erbFile, dst)
|
22
|
+
if not File.file?(dst)
|
23
|
+
tmpl = ERB.new(File.read("#{Dialog.config.path.dialog_ruby}/exec/#{erbFile}")).result(binding)
|
24
|
+
File.open(dst, 'w') do |f| f.write tmpl; end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def deploy_redis
|
29
|
+
redisDir = "#{Dialog.config.path.dialogData}/redis"
|
30
|
+
FileUtils.mkdir_p redisDir
|
31
|
+
erb('systemd/dialog_redis.service', "#{Dir.home}/.config/systemd/user/dialog_redis.service")
|
32
|
+
erb('conf/redis_local.conf', "#{redisDir}/redis_local.conf")
|
33
|
+
erb('conf/redis_global.conf', "#{redisDir}/redis_global.conf")
|
34
|
+
systemd('dialog_redis')
|
35
|
+
end
|
36
|
+
|
37
|
+
|
38
|
+
def deploy_bot
|
39
|
+
erb('systemd/dialog_bot@.service', "#{Dir.home}/.config/systemd/user/dialog_bot@.service")
|
40
|
+
systemd("dialog_bot@#{Dialog.config.naming.full}")
|
41
|
+
end
|
42
|
+
|
43
|
+
def deploy_tdlib
|
44
|
+
end
|
45
|
+
|
46
|
+
def deploy_devenv
|
47
|
+
end
|
48
|
+
|
49
|
+
def deploy_gitsync
|
50
|
+
end
|
51
|
+
|
52
|
+
def systemd(service)
|
53
|
+
Open3.popen3('/usr/bin/systemctl', '--user', 'daemon-reload')
|
54
|
+
Open3.popen3('/usr/bin/systemctl', '--user', 'restart', service)
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,21 @@
|
|
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 trigger_false
|
17
|
+
Dialog.logger.error "Something wrong in runtime scenario"
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,27 @@
|
|
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 trigger_init
|
17
|
+
Dialog.tdlibAuth
|
18
|
+
end
|
19
|
+
|
20
|
+
def tdlibAuth
|
21
|
+
sess = Dialog::TDLib.tdlibInit(Dialog.config.run.mode)
|
22
|
+
Dialog::TDLib.tdlibAuth(Dialog.config.run.mode, sess)
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,68 @@
|
|
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 trigger_start
|
17
|
+
args = {}
|
18
|
+
case Dialog.config.common.mode
|
19
|
+
when 'check'
|
20
|
+
jsonDriven(args, :check)
|
21
|
+
when 'bot'
|
22
|
+
jsonDriven(args, :prod)
|
23
|
+
bot(args)
|
24
|
+
when 'dev'
|
25
|
+
dialectDriven(args)
|
26
|
+
jsonDriven(args, :prod)
|
27
|
+
bot(args)
|
28
|
+
when 'dev_offline'
|
29
|
+
dialectDriven(args)
|
30
|
+
jsonDriven(args, :check)
|
31
|
+
else
|
32
|
+
Dialog.logger.error "ERROR: no such mode - '#{Dialog.config.common.mode}'"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
|
38
|
+
def dialectDriven(args)
|
39
|
+
require 'dialect_lookup'
|
40
|
+
state = {
|
41
|
+
dialectFolder: Dialog.config.dialect.folder,
|
42
|
+
myAppName: Dialog.config.naming.app,
|
43
|
+
sqlite: Dialog.config.dialect.sqlite,
|
44
|
+
jsonFolder: "#{Dialog.config.path.dialogRender}/json/"
|
45
|
+
}
|
46
|
+
::Dialect::Lookup.new.run(state)
|
47
|
+
# File.delete(Dialog.config.dialect.sqlite)
|
48
|
+
end
|
49
|
+
|
50
|
+
|
51
|
+
def jsonDriven(args, type)
|
52
|
+
FileUtils.rm_rf(Dir.glob("#{Dialog.config.path.dialogRender}/code_#{type}/*.rb"))
|
53
|
+
args[:dialect] = {}
|
54
|
+
|
55
|
+
json = "#{Dialog.config.path.dialogRender}/json/#{Dialog.config.dialect.folder}_#{Dialog.config.naming.app}.json"
|
56
|
+
jsonLoad = Oj.load(File.read(json), symbol_keys: true)
|
57
|
+
args[:dialect] = jsonLoad[:stages][Dialog.config.dialect.folder.to_sym]
|
58
|
+
Dialog::Dialect.run(args, type)
|
59
|
+
|
60
|
+
args[:dialect] ={}
|
61
|
+
args[:tmp] = {}
|
62
|
+
Dir.glob(File.join("#{Dialog.config.path.dialogRender}/code_#{type}/**", "*.rb")).sort.each{|f| require f}
|
63
|
+
Dialog.logger.info "Rendered bot code is ok"
|
64
|
+
end
|
65
|
+
|
66
|
+
|
67
|
+
end
|
68
|
+
end
|
@@ -11,73 +11,7 @@
|
|
11
11
|
######## ####### ######## ####### ######## ########
|
12
12
|
|
13
13
|
module Dialog
|
14
|
-
class << self
|
15
|
-
|
16
|
-
def redis
|
17
|
-
@redis ||= Redis.new(path: Dialog.config.db.redis_url)
|
18
|
-
end
|
19
|
-
|
20
|
-
def clear(args)
|
21
|
-
args[:x] = {metamess: {}, redis: {}, data: {}, labels: {}, send: {}, exec: {}}
|
22
|
-
args[:smsg] = {}
|
23
|
-
end
|
24
|
-
|
25
|
-
def clearRedis(args)
|
26
|
-
args[:x][:redis] = {}
|
27
|
-
end
|
28
|
-
|
29
|
-
def clearApi(args)
|
30
|
-
args[:api] = {}
|
31
|
-
end
|
32
|
-
|
33
|
-
def start
|
34
|
-
args = {}
|
35
|
-
case Dialog.config.common.mode
|
36
|
-
when 'check'
|
37
|
-
jsonDriven(args, :check)
|
38
|
-
when 'bot'
|
39
|
-
jsonDriven(args, :prod)
|
40
|
-
bot(args)
|
41
|
-
when 'dev'
|
42
|
-
dialectDriven(args)
|
43
|
-
jsonDriven(args, :prod)
|
44
|
-
bot(args)
|
45
|
-
when 'dev_offline'
|
46
|
-
dialectDriven(args)
|
47
|
-
jsonDriven(args, :check)
|
48
|
-
else
|
49
|
-
Dialog.logger.error "ERROR: no such mode - '#{Dialog.config.common.mode}'"
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
|
54
|
-
def dialectDriven(args)
|
55
|
-
state = {
|
56
|
-
dialectFolder: Dialog.config.dialect.folder,
|
57
|
-
myAppName: Dialog.config.naming.app,
|
58
|
-
sqlite: Dialog.config.dialect.sqlite,
|
59
|
-
jsonFolder: "#{Dialog.config.path.render}/json/"
|
60
|
-
}
|
61
|
-
::Dialect::Lookup.new.run(state)
|
62
|
-
File.delete(Dialog.config.dialect.sqlite)
|
63
|
-
end
|
64
|
-
|
65
|
-
|
66
|
-
def jsonDriven(args, type)
|
67
|
-
FileUtils.rm_rf(Dir.glob("#{Dialog.config.path.render}/code_#{type}/*.rb"))
|
68
|
-
args[:dialect] = {}
|
69
|
-
|
70
|
-
json = "#{Dialog.config.path.render}/json/#{Dialog.config.dialect.folder}_#{Dialog.config.naming.app}.json"
|
71
|
-
jsonLoad = Oj.load(File.read(json), symbol_keys: true)
|
72
|
-
args[:dialect] = jsonLoad[:stages][Dialog.config.dialect.folder.to_sym]
|
73
|
-
Dialog::Dialect.run(args, type)
|
74
|
-
|
75
|
-
args[:dialect] ={}
|
76
|
-
args[:tmp] = {}
|
77
|
-
Dir.glob(File.join("#{Dialog.config.path.render}/code_#{type}/**", "*.rb")).sort.each{|f| require f}
|
78
|
-
Dialog.logger.info "Rendered bot code is ok"
|
79
|
-
end
|
80
|
-
|
14
|
+
class << self
|
81
15
|
|
82
16
|
def tdlibInit(args)
|
83
17
|
inits = ['cli']
|
@@ -93,25 +27,25 @@ module Dialog
|
|
93
27
|
end
|
94
28
|
|
95
29
|
|
96
|
-
|
97
|
-
def tdlibAuth
|
98
|
-
sess = Dialog::TDLib.tdlibInit(Dialog.config.run.mode)
|
99
|
-
Dialog::TDLib.tdlibAuth(Dialog.config.run.mode, sess)
|
100
|
-
end
|
101
|
-
|
102
|
-
|
103
30
|
def bot(args)
|
104
31
|
args[:globals] = {}
|
105
32
|
|
106
33
|
### LANG
|
107
34
|
i18n = Dialog::Lang.initial
|
108
35
|
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
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
|
42
|
+
begin
|
43
|
+
Dialog::redis.call(['info', 'clients'])
|
44
|
+
rescue
|
45
|
+
Dialog.logger.error "No Redis connection!"
|
46
|
+
sleep(2)
|
47
|
+
retry
|
48
|
+
end
|
115
49
|
Telegram::Bot::Client.run Dialog.config.secure.token do |bot|
|
116
50
|
args[:bot]= bot; args[:bot].freeze
|
117
51
|
|
@@ -177,13 +111,7 @@ module Dialog
|
|
177
111
|
raise
|
178
112
|
end
|
179
113
|
end
|
180
|
-
|
181
|
-
def perf(perf)
|
182
|
-
a = []
|
183
|
-
a << "mmsg: #{perf[:metamess] - perf[:init]}s" if perf.has_key?(:metamess)
|
184
|
-
a << "preApiAction: #{perf[:preApiAction] - perf[:init]}s" if perf.has_key?(:preApiAction)
|
185
|
-
a << "full: #{perf[:fullend] - perf[:init]}s"
|
186
|
-
end
|
114
|
+
|
187
115
|
|
188
116
|
end
|
189
117
|
end
|
@@ -0,0 +1,43 @@
|
|
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
|
+
|
17
|
+
def redis
|
18
|
+
@redis ||= Redis.new(path: Dialog.config.db.redis_url)
|
19
|
+
end
|
20
|
+
|
21
|
+
def clear(args)
|
22
|
+
args[:x] = {metamess: {}, redis: {}, data: {}, labels: {}, send: {}, exec: {}}
|
23
|
+
args[:smsg] = {}
|
24
|
+
end
|
25
|
+
|
26
|
+
def clearRedis(args)
|
27
|
+
args[:x][:redis] = {}
|
28
|
+
end
|
29
|
+
|
30
|
+
def clearApi(args)
|
31
|
+
args[:api] = {}
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
def perf(perf)
|
36
|
+
a = []
|
37
|
+
a << "mmsg: #{perf[:metamess] - perf[:init]}s" if perf.has_key?(:metamess)
|
38
|
+
a << "preApiAction: #{perf[:preApiAction] - perf[:init]}s" if perf.has_key?(:preApiAction)
|
39
|
+
a << "full: #{perf[:fullend] - perf[:init]}s"
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
data/lib/version.rb
CHANGED
@@ -1,3 +1,15 @@
|
|
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
|
+
|
1
13
|
module Dialog
|
2
|
-
VERSION = '0.1.
|
14
|
+
VERSION = '0.1.8'.freeze
|
3
15
|
end
|
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.8
|
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-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dialect_lookup
|
@@ -181,6 +181,21 @@ files:
|
|
181
181
|
- _dev/sidekiq.rb
|
182
182
|
- _dev/tdlib.rb
|
183
183
|
- dialog_ruby.gemspec
|
184
|
+
- exec/conf/redis_global.conf
|
185
|
+
- exec/conf/redis_local.conf
|
186
|
+
- exec/dev/run_dev.sh
|
187
|
+
- exec/dev/tmpfiles.conf
|
188
|
+
- exec/dialog.sh
|
189
|
+
- exec/git_sync/dialog__sync.service
|
190
|
+
- exec/git_sync/dialog__sync.timer
|
191
|
+
- exec/git_sync/post-merge
|
192
|
+
- exec/systemd/deploy.sh
|
193
|
+
- exec/systemd/dialog_bot@.path
|
194
|
+
- exec/systemd/dialog_bot@.service
|
195
|
+
- exec/systemd/dialog_bot_dev@.path
|
196
|
+
- exec/systemd/dialog_bot_dev_pre@.service
|
197
|
+
- exec/systemd/dialog_bot_pre@.service
|
198
|
+
- exec/systemd/dialog_redis.service
|
184
199
|
- lang/global_ru.yml
|
185
200
|
- lib/configuration.rb
|
186
201
|
- lib/dialect/canvas/canvas.rb
|
@@ -225,7 +240,6 @@ files:
|
|
225
240
|
- lib/dialect/codegen/repack/functional/5.2.Element2ModSend.rb
|
226
241
|
- lib/dialect/codegen/repack/functional/7.ElementChains.rb
|
227
242
|
- lib/dialect/codegen/run.rb
|
228
|
-
- lib/dialogStart.rb
|
229
243
|
- lib/dialog_ruby.rb
|
230
244
|
- lib/metamess/_run.rb
|
231
245
|
- lib/metamess/content/content_o-command_f.rb
|
@@ -244,6 +258,7 @@ files:
|
|
244
258
|
- lib/metamess/service/service_o-inline_f.rb
|
245
259
|
- lib/metamess/service/service_o.rb
|
246
260
|
- lib/naming.rb
|
261
|
+
- lib/require.rb
|
247
262
|
- lib/storage/redis/redisPubSub.rb
|
248
263
|
- lib/storage/redis/rediscached.rb
|
249
264
|
- lib/tdlib/auth.rb
|
@@ -255,6 +270,13 @@ files:
|
|
255
270
|
- lib/tooling/lang.rb
|
256
271
|
- lib/tooling/log.rb
|
257
272
|
- lib/tooling/ruby.rb
|
273
|
+
- lib/triggers/_meta/full.rb
|
274
|
+
- lib/triggers/deploy/deploy.rb
|
275
|
+
- lib/triggers/false.rb
|
276
|
+
- lib/triggers/init.rb
|
277
|
+
- lib/triggers/start/start.rb
|
278
|
+
- lib/triggers/start/start_bot.rb
|
279
|
+
- lib/triggers/start/start_pre.rb
|
258
280
|
- lib/version.rb
|
259
281
|
- logo.png
|
260
282
|
homepage: https://gitlab.com/Innosense/MVP/dialog_ruby
|
@@ -277,7 +299,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
277
299
|
version: '0'
|
278
300
|
requirements: []
|
279
301
|
rubyforge_project:
|
280
|
-
rubygems_version: 2.7.
|
302
|
+
rubygems_version: 2.7.6
|
281
303
|
signing_key:
|
282
304
|
specification_version: 4
|
283
305
|
summary: Communication prototyping platform
|