dialog_ruby 0.1.7 → 0.1.8
Sign up to get free protection for your applications and to get access to all the features.
- 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
|