dialog_ruby 0.1.1
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 +7 -0
- data/.gitignore +1 -0
- data/Gemfile +0 -0
- data/_dev/get_full_botapi.rb +59 -0
- data/_dev/inlinekb_pubsub.rb +69 -0
- data/_dev/main.rb +127 -0
- data/_dev/restriction.rb +32 -0
- data/_dev/ru.yml +79 -0
- data/_dev/sidekiq.rb +28 -0
- data/_dev/tdlib.rb +154 -0
- data/dialog.sh +51 -0
- data/dialog_ruby.gemspec +41 -0
- data/lib/architecture.md +22 -0
- data/lib/configuration.rb +117 -0
- data/lib/dialogStart.rb +189 -0
- data/lib/dialog_ruby.rb +59 -0
- data/lib/exec.sh +61 -0
- data/lib/exec_conf/cli_config +7 -0
- data/lib/exec_conf/dialog__sync.service +14 -0
- data/lib/exec_conf/dialog__sync.timer +11 -0
- data/lib/exec_conf/dialog_bot@.path +6 -0
- data/lib/exec_conf/dialog_bot@.service +18 -0
- data/lib/exec_conf/dialog_bot_dev@.path +6 -0
- data/lib/exec_conf/dialog_bot_dev_pre@.service +16 -0
- data/lib/exec_conf/dialog_bot_pre@.service +16 -0
- data/lib/exec_conf/dialog_redis@.service +14 -0
- data/lib/exec_conf/post-merge +5 -0
- data/lib/exec_conf/redis_global.conf +49 -0
- data/lib/exec_conf/redis_local.conf +4 -0
- data/lib/lang/global_ru.yml +29 -0
- data/lib/lib/dialect/canvas/canvas.rb +35 -0
- data/lib/lib/dialect/canvas/element/convert/SearchBaloo.rb +45 -0
- data/lib/lib/dialect/canvas/element/data/search.rb +34 -0
- data/lib/lib/dialect/canvas/element/send/Inline_query_result.rb +32 -0
- data/lib/lib/dialect/canvas/element/send/bot_message.rb +38 -0
- data/lib/lib/dialect/canvas/element/send/keyboards.rb +59 -0
- data/lib/lib/dialect/canvas/element/send/recognize.rb +51 -0
- data/lib/lib/dialect/canvas/element/send/restrict.rb +42 -0
- data/lib/lib/dialect/canvas/element/send/tdlib_chat.rb +33 -0
- data/lib/lib/dialect/canvas/element/send/tdlib_message.rb +38 -0
- data/lib/lib/dialect/canvas/mod/send/_Inline_query_result.rb +38 -0
- data/lib/lib/dialect/canvas/mod/send/_keyboards.rb +40 -0
- data/lib/lib/dialect/canvas/mod/send/func.rb +98 -0
- data/lib/lib/dialect/canvas/mod/send/general/_heads.rb +27 -0
- data/lib/lib/dialect/canvas/mod/send/general/chat.rb +38 -0
- data/lib/lib/dialect/canvas/mod/send/general/common.rb +32 -0
- data/lib/lib/dialect/canvas/mod/send/general/message.rb +37 -0
- data/lib/lib/dialect/canvas/mod/send/general/user.rb +36 -0
- data/lib/lib/dialect/canvas/mod/send/inline_query_result/common.rb +36 -0
- data/lib/lib/dialect/codegen/codegen.rb +74 -0
- data/lib/lib/dialect/codegen/erb/data/1.ModReceive2GetData.erb +27 -0
- data/lib/lib/dialect/codegen/erb/data/2.GetData2Elements.erb +27 -0
- data/lib/lib/dialect/codegen/erb/data/3.GenData2Dest.erb +34 -0
- data/lib/lib/dialect/codegen/erb/functional/1.Expect2Events.erb +37 -0
- data/lib/lib/dialect/codegen/erb/functional/2.1.Events2AppEvent.erb +26 -0
- data/lib/lib/dialect/codegen/erb/functional/2.2.1.Events2ModReceive.erb +73 -0
- data/lib/lib/dialect/codegen/erb/functional/2.2.2.ModReceive2AppEvent.erb +59 -0
- data/lib/lib/dialect/codegen/erb/functional/3.Appevent2EventBus.erb +35 -0
- data/lib/lib/dialect/codegen/erb/functional/4.1.AppEvent2Elements.erb +72 -0
- data/lib/lib/dialect/codegen/erb/functional/5.1.Element2ModElements.erb +70 -0
- data/lib/lib/dialect/codegen/erb/functional/5.2.Element2ModSend.erb +69 -0
- data/lib/lib/dialect/codegen/erb/functional/7.ElementChains.erb +91 -0
- data/lib/lib/dialect/codegen/repack/constructor/DockedGroupings2AppFunctions.rb +36 -0
- data/lib/lib/dialect/codegen/repack/constructor/Element2ModSend.rb +49 -0
- data/lib/lib/dialect/codegen/repack/constructor/ElementsInElements.rb +34 -0
- data/lib/lib/dialect/codegen/repack/functional/1.Expect2Events.rb +35 -0
- data/lib/lib/dialect/codegen/repack/functional/2.2.1.Events2ModReceive.rb +71 -0
- data/lib/lib/dialect/codegen/repack/functional/2.2.2.ModReceive2AppEvent.rb +45 -0
- data/lib/lib/dialect/codegen/repack/functional/5.1.Element2ModElements.rb +90 -0
- data/lib/lib/dialect/codegen/repack/functional/5.2.Element2ModSend.rb +60 -0
- data/lib/lib/dialect/codegen/repack/functional/7.ElementChains.rb +88 -0
- data/lib/lib/dialect/codegen/run.rb +79 -0
- data/lib/lib/metamess/_run.rb +162 -0
- data/lib/lib/metamess/content/content_o-command_f.rb +100 -0
- data/lib/lib/metamess/content/content_o-media_f.rb +149 -0
- data/lib/lib/metamess/content/content_o-simple_f.rb +35 -0
- data/lib/lib/metamess/content/content_o.rb +245 -0
- data/lib/lib/metamess/event/notify_o-chatmember_f.rb +124 -0
- data/lib/lib/metamess/event/notify_o-chattitle_f.rb +34 -0
- data/lib/lib/metamess/event/notify_o-create_f.rb +42 -0
- data/lib/lib/metamess/event/notify_o-migrate_f.rb +34 -0
- data/lib/lib/metamess/event/notify_o-pinned_f.rb +34 -0
- data/lib/lib/metamess/event/notify_o.rb +28 -0
- data/lib/lib/metamess/event_c.rb +26 -0
- data/lib/lib/metamess/func.rb +220 -0
- data/lib/lib/metamess/service/service_o-callback_f.rb +33 -0
- data/lib/lib/metamess/service/service_o-inline_f.rb +55 -0
- data/lib/lib/metamess/service/service_o.rb +26 -0
- data/lib/lib/naming.rb +130 -0
- data/lib/lib/storage/redis/redisPubSub.rb +51 -0
- data/lib/lib/storage/redis/rediscached.rb +97 -0
- data/lib/lib/tdlib/auth.rb +141 -0
- data/lib/lib/tdlib/func.rb +34 -0
- data/lib/lib/tdlib/init.rb +39 -0
- data/lib/lib/telegram/botapi.rb +71 -0
- data/lib/lib/telegram/infra_info.rb +50 -0
- data/lib/lib/telegram/wrappers.rb +41 -0
- data/lib/lib/tooling/lang.rb +24 -0
- data/lib/lib/tooling/log.rb +54 -0
- data/lib/lib/tooling/ruby.rb +25 -0
- data/lib/version.rb +3 -0
- data/logo.png +0 -0
- metadata +305 -0
|
@@ -0,0 +1,59 @@
|
|
|
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 ElementSend
|
|
15
|
+
class << self
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def kbForming(args, key)
|
|
19
|
+
if args[:smsg].has_key?(key)
|
|
20
|
+
|
|
21
|
+
args[:smsg][:reply_markup][key] = args[:smsg][key]
|
|
22
|
+
args[:smsg].delete(key)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def send_DialogElementSendReply_keyboardStatic(args)
|
|
27
|
+
args[:smsg][:reply_markup] = {}
|
|
28
|
+
kbForming(args, :one_time_keyboard)
|
|
29
|
+
kbForming(args, :selective)
|
|
30
|
+
kbForming(args, :resize_keyboard)
|
|
31
|
+
args[:smsg][:reply_markup][:keyboard] = Dialog::ModSend.makeKeyboard(
|
|
32
|
+
args,
|
|
33
|
+
:reply,
|
|
34
|
+
args[:x][:exec][:DialogElementSendReply_keyboardStatic][:DialogModElementReply_keyboardButton])
|
|
35
|
+
send_DialogElementSendBot_messageSend(args)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def send_DialogModSendReply_keyboard(args)
|
|
39
|
+
Telegram::Bot::Types::ForceReply.new(force_reply: true, selective: args[:x][:selective])
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def send_DialogModSendForce_reply(args)
|
|
43
|
+
Telegram::Bot::Types::ReplyKeyboardRemove.new(remove_keyboard: true, selective:args[:x][:selective])
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
###
|
|
47
|
+
def send_DialogElementSendInline_keyboardStatic(args)
|
|
48
|
+
args[:smsg][:reply_markup] = {
|
|
49
|
+
inline_keyboard: Dialog::ModSend.makeKeyboard(
|
|
50
|
+
args,
|
|
51
|
+
:inline,
|
|
52
|
+
args[:x][:exec][:DialogElementSendInline_keyboardStatic][:DialogModElementInline_keyboardButton])}
|
|
53
|
+
send_DialogElementSendBot_messageSend(args)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
#
|
|
@@ -0,0 +1,51 @@
|
|
|
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 ElementSend
|
|
15
|
+
class << self
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def send_DialogElementSendRecognizeCode(args)
|
|
19
|
+
name = "#{Dialog.config.path.render}/_tmpfiles/#{Dialog::Wrappers.downloadFile(args)}"
|
|
20
|
+
attrs, stderr_str, status = Open3.capture3('/usr/bin/zbarimg', "-q", name)
|
|
21
|
+
|
|
22
|
+
unless attrs == ""
|
|
23
|
+
Dialog.logger.debug "#### muxFqn #{attrs}"
|
|
24
|
+
response = attrs.split(':')
|
|
25
|
+
codeType = response[0]
|
|
26
|
+
response.shift
|
|
27
|
+
text = answer_DialogModSendRecognizeCommonAction_success(codeType, response.join)
|
|
28
|
+
else
|
|
29
|
+
text = answer_DialogModSendRecognizeCommonAction_fail
|
|
30
|
+
end
|
|
31
|
+
args[:smsg][:text] = text
|
|
32
|
+
args[:x][:dataRespRaw] = response
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def answer_DialogModSendRecognizeCommonAction_success(codeType, response)
|
|
36
|
+
<<-HEREDOC
|
|
37
|
+
*Тип кода*: #{codeType}
|
|
38
|
+
*Содержание*: #{response}
|
|
39
|
+
HEREDOC
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def answer_DialogModSendRecognizeCommonAction_fail
|
|
43
|
+
<<-HEREDOC
|
|
44
|
+
Изображение не содержит какой-либо код или сфотографировано не чётко.
|
|
45
|
+
HEREDOC
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
#
|
|
@@ -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
|
+
module ElementSend
|
|
15
|
+
class << self
|
|
16
|
+
|
|
17
|
+
def send_DialogElementSendPermissionsLimit(args)
|
|
18
|
+
args[:api] = {:op => 'restrictChatMember'}
|
|
19
|
+
args[:smsg][:chat_id] = args[:mmsg][:fqndata][:o][:chat][:id]
|
|
20
|
+
args[:smsg][:until_date] = 0
|
|
21
|
+
args[:smsg][:can_send_messages] = false
|
|
22
|
+
args[:smsg][:can_send_media_messages] = false
|
|
23
|
+
args[:smsg][:can_send_other_messages] = false
|
|
24
|
+
args[:smsg][:can_add_web_page_previews] = false
|
|
25
|
+
|
|
26
|
+
return Dialog::BotApi.apiAction(args)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def send_DialogElementSendPermissionsNormal(args)
|
|
30
|
+
args[:api] = {:op => 'restrictChatMember'}
|
|
31
|
+
args[:smsg][:chat_id] = args[:mmsg][:fqndata][:o][:chat][:id]
|
|
32
|
+
args[:smsg][:can_send_messages] = true
|
|
33
|
+
args[:smsg][:can_send_media_messages] = true
|
|
34
|
+
args[:smsg][:can_send_other_messages] = true
|
|
35
|
+
args[:smsg][:can_add_web_page_previews] = true
|
|
36
|
+
return Dialog::BotApi.apiAction(args)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
#
|
|
@@ -0,0 +1,33 @@
|
|
|
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 ElementSend
|
|
15
|
+
class << self
|
|
16
|
+
|
|
17
|
+
def send_DialogElementSendTdlib_chatCreate(args)
|
|
18
|
+
args[:smsg]['@type'] = 'createNewSupergroupChat'
|
|
19
|
+
args[:smsg]['title'] = 'test'
|
|
20
|
+
args[:smsg]['is_channel'] = false
|
|
21
|
+
args[:smsg]['description'] = 'description'
|
|
22
|
+
args[:tdlib][:cli].on_ready do |client|
|
|
23
|
+
group = client.broadcast_and_receive(args[:smsg])
|
|
24
|
+
Dialog.logger.debug "#### group created - #{group}"
|
|
25
|
+
end
|
|
26
|
+
### CLEAN
|
|
27
|
+
Dialog.clear(args)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
#
|
|
@@ -0,0 +1,38 @@
|
|
|
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 ElementSend
|
|
15
|
+
class << self
|
|
16
|
+
|
|
17
|
+
def send_DialogElementSendTdlib_messageSend(args)
|
|
18
|
+
args[:tdlib][:cli].on_ready do |client|
|
|
19
|
+
args[:smsg]['@type'] = 'sendMessage'
|
|
20
|
+
|
|
21
|
+
if args[:smsg][:chat_id] == args[:mmsg][:fqndata][:o][:from][:id]
|
|
22
|
+
client.fetch('@type' => 'createPrivateChat', 'user_id' => args[:smsg][:chat_id])
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
args[:smsg]['input_message_content'] = {"@type":"inputMessageText","text":{"text": args[:smsg][:text]}}
|
|
26
|
+
args[:smsg].delete('text')
|
|
27
|
+
Dialog.logger.catch "args[:smsg]::#{args[:smsg]}"
|
|
28
|
+
test = client.broadcast_and_receive(args[:smsg])
|
|
29
|
+
Dialog.logger.catch "test::#{test}"
|
|
30
|
+
end
|
|
31
|
+
### CLEAN
|
|
32
|
+
Dialog.clear(args)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
#
|
|
@@ -0,0 +1,38 @@
|
|
|
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 ModSend
|
|
15
|
+
class << self
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def makeInline_query_resultArticle(args, props, viewId)
|
|
19
|
+
result = Array.new
|
|
20
|
+
props[:tProp].to_h.each do |row, hash_col|
|
|
21
|
+
Dialog.logger.debug "%%%%%%%% row - #{row}, hash_col - #{hash_col}"
|
|
22
|
+
|
|
23
|
+
hash_col.sort.each do |col, prop|
|
|
24
|
+
Dialog::ModSend.call_CompileElementFromAtoms(args, {fFqn: prop[:modSend][:fFqn], tFqn: prop[:modSend][:tFqn], tProp: prop[:modSend][:tProp][:value], add: true}, viewId)
|
|
25
|
+
base = args[:x][:send][args[:x][:muxFqn][4].to_sym][args[:x][:muxFqn][:g].to_sym]
|
|
26
|
+
result << {id: rand(1 .. 90000), type: "article", title: "#{prop[:tProp][:value]}", input_message_content: {message_text: prop[:modSend][:tProp][:value]}}
|
|
27
|
+
args[:x][:send][args[:x][:muxFqn][4].to_sym][args[:x][:muxFqn][:g].to_sym] = {}
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
Dialog.logger.debug "%%%%%%%%2 result - #{result}}"
|
|
32
|
+
return result
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
#
|
|
@@ -0,0 +1,40 @@
|
|
|
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 ModSend
|
|
15
|
+
class << self
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def makeKeyboard(args, mode, keyboardButtons)
|
|
19
|
+
keyboard = Array.new
|
|
20
|
+
keyboardButtons.each do |row, hash_col|
|
|
21
|
+
# Dialog.logger.debug "%%%%%%%% row - #{row}, hash_col - #{hash_col}"
|
|
22
|
+
keyboard[row.to_i] ||= Array.new
|
|
23
|
+
hash_col.sort.each do |col, prop|
|
|
24
|
+
case mode
|
|
25
|
+
when :reply
|
|
26
|
+
keyboard[row.to_i] << {text: "#{prop[:tValue]}"}
|
|
27
|
+
when :inline
|
|
28
|
+
keyboard[row.to_i] << {text: "#{prop[:tValue]}", prop[:spec][:key] => "#{prop[:spec][:value]}"}
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
return keyboard.drop(1)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
#
|
|
@@ -0,0 +1,98 @@
|
|
|
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 ModSend
|
|
15
|
+
class << self
|
|
16
|
+
|
|
17
|
+
def call_CompileElementFromAtoms(args, props, viewId)
|
|
18
|
+
args[:smsg] ||= {}
|
|
19
|
+
|
|
20
|
+
if props.has_key?(:add)
|
|
21
|
+
fFqn = props[:fFqn].to_sym
|
|
22
|
+
tFqn = props[:tFqn].to_sym
|
|
23
|
+
if args[:x][:exec].has_key?(fFqn)
|
|
24
|
+
args[:x][:exec][fFqn][tFqn] = props[:tProp]
|
|
25
|
+
end
|
|
26
|
+
atomMux(args, props, viewId, fFqn, tFqn)
|
|
27
|
+
else
|
|
28
|
+
fFqn = props[:tFqn].to_sym
|
|
29
|
+
args[:x][:exec][fFqn].each do |tFqn, prop|
|
|
30
|
+
# Dialog.logger.debug "@@@@@@@@@@@@@ 1 - fFqn::#{fFqn}, tFqn::#{tFqn}, props::#{props}"
|
|
31
|
+
atomMux(args, props, viewId, fFqn, tFqn)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def atomMux(args, props, viewId, fFqn, tFqn)
|
|
38
|
+
muxFqn = tFqn.to_s.split /(?=[A-Z])/
|
|
39
|
+
if muxFqn[0] == 'Dialog'
|
|
40
|
+
if muxFqn[1] == 'Mod' && muxFqn[2] == 'Send'
|
|
41
|
+
Dialog.logger.debug "#### muxFqn #{muxFqn}"
|
|
42
|
+
args[:x][:muxFqn] = {}
|
|
43
|
+
args[:x][:muxFqn][3] = "#{muxFqn[0]}#{muxFqn[1]}#{muxFqn[2]}"
|
|
44
|
+
args[:x][:muxFqn][4] = "#{muxFqn[0]}#{muxFqn[1]}#{muxFqn[2]}#{muxFqn[3]}"
|
|
45
|
+
args[:x][:muxFqn][5] = "#{muxFqn[0]}#{muxFqn[1]}#{muxFqn[2]}#{muxFqn[3]}#{muxFqn[4]}"
|
|
46
|
+
args[:x][:muxFqn][:g] = muxFqn[4]
|
|
47
|
+
run = "set_#{args[:x][:muxFqn][5]}"
|
|
48
|
+
Dialog.logger.debug " @@@ pre-atomMux sender #{run}"
|
|
49
|
+
begin
|
|
50
|
+
send(run.to_sym, args, fFqn, tFqn, props, viewId)
|
|
51
|
+
rescue NoMethodError => @e
|
|
52
|
+
step = @e.message.split('`')[1].split('\'')[0].split /(?=[A-Z])/
|
|
53
|
+
Dialog.logger.debug " @@@@@@@@@@@@@@@@@@@@ #{step.count} - #{@e.message}"
|
|
54
|
+
|
|
55
|
+
case step.count
|
|
56
|
+
when 6 #runner
|
|
57
|
+
begin
|
|
58
|
+
Dialog.logger.debug " @@@ pre-atomMux sender #{step.count} - #{tFqn}"
|
|
59
|
+
send("set_#{tFqn}".to_sym, args, fFqn, tFqn, props, viewId)
|
|
60
|
+
Dialog.logger.debug " @@@ atomMux sender #{step.count} - #{tFqn}"
|
|
61
|
+
rescue NoMethodError
|
|
62
|
+
setterDefault(args, fFqn, tFqn, muxFqn[5].downcase, step.count)
|
|
63
|
+
rescue => @e
|
|
64
|
+
raise
|
|
65
|
+
end
|
|
66
|
+
when 7 #setter
|
|
67
|
+
setterDefault(args, fFqn, tFqn, muxFqn[5].downcase, step.count)
|
|
68
|
+
end
|
|
69
|
+
rescue => @e
|
|
70
|
+
raise
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def setter(args, fFqn, k, v)
|
|
78
|
+
Dialog.logger.debug "## SET to FQN #{fFqn} :: K:#{k}, V:#{v}"
|
|
79
|
+
case v
|
|
80
|
+
when 'True', 'true'
|
|
81
|
+
v = true
|
|
82
|
+
when 'False', 'false'
|
|
83
|
+
v = false
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
args[:smsg][k.to_sym] = v
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def setterDefault(args, fFqn, tFqn, k, step)
|
|
90
|
+
Dialog.logger.debug " @@@ atomMux default pre-setter #{step} tFqn::#{tFqn} - #{k} :: #{args[:x][:exec][fFqn][tFqn]}"
|
|
91
|
+
setter(args, fFqn, k, args[:x][:exec][fFqn][tFqn][:value])
|
|
92
|
+
Dialog.logger.debug " @@@ atomMux default setter #{step} - #{k} :: #{args[:x][:exec][fFqn][tFqn][:value]}"
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
#
|
|
@@ -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
|
+
module ModSend
|
|
15
|
+
class << self
|
|
16
|
+
|
|
17
|
+
## Message
|
|
18
|
+
def set_DialogModSendGeneralMessage(args, fFqn, tFqn, props, viewId)
|
|
19
|
+
args[:api] = { op: 'sendMessage'}
|
|
20
|
+
send("set_#{tFqn}".to_sym, args, fFqn, tFqn, props, viewId)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
#
|
|
@@ -0,0 +1,38 @@
|
|
|
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 ModSend
|
|
15
|
+
class << self
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def set_DialogModSendGeneralChatId(args, fFqn, tFqn, props, viewId)
|
|
19
|
+
|
|
20
|
+
id = args[:x][:exec][fFqn][tFqn][:value]
|
|
21
|
+
case args[:x][:exec][fFqn][tFqn][:value]
|
|
22
|
+
when '{same}'
|
|
23
|
+
chat_id = args[:mmsg][:fqndata][:o][:chat][:id]
|
|
24
|
+
when '{user}'
|
|
25
|
+
chat_id = args[:mmsg][:fqndata][:o][:from][:id]
|
|
26
|
+
when /^[:fqndata]*/
|
|
27
|
+
id = "args[:mmsg]#{id}"
|
|
28
|
+
chat_id = binding.eval("#{id}")
|
|
29
|
+
else
|
|
30
|
+
chat_id = args[:x][:exec][fFqn][tFqn][:value]
|
|
31
|
+
end
|
|
32
|
+
setter(args, fFqn, 'chat_id', chat_id)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
#
|