Module: Dialog::ElementSend

Defined in:
lib/dialect/canvas/element/send/restrict.rb,
lib/dialect/canvas/element/send/keyboards.rb,
lib/dialect/canvas/element/send/recognize.rb,
lib/dialect/canvas/element/send/background.rb,
lib/dialect/canvas/element/send/tdlib_chat.rb,
lib/dialect/canvas/element/send/bot_message.rb,
lib/dialect/canvas/element/send/tdlib_message.rb,
lib/dialect/canvas/element/send/Inline_query_result.rb

Class Method Summary collapse

Class Method Details

.answer_DialogModSendRecognizeCommonAction_failObject



43
44
45
46
47
# File 'lib/dialect/canvas/element/send/recognize.rb', line 43

def answer_DialogModSendRecognizeCommonAction_fail
  <<-HEREDOC
  Изображение не содержит какой-либо код или сфотографировано не чётко.
  HEREDOC
end

.answer_DialogModSendRecognizeCommonAction_success(codeType, response) ⇒ Object



36
37
38
39
40
41
# File 'lib/dialect/canvas/element/send/recognize.rb', line 36

def answer_DialogModSendRecognizeCommonAction_success(codeType, response)
  <<-HEREDOC
  *Тип кода*: #{codeType} 
  *Содержание*: #{response}
  HEREDOC
end

.kbForming(args, key) ⇒ Object



18
19
20
21
22
23
24
# File 'lib/dialect/canvas/element/send/keyboards.rb', line 18

def kbForming(args, key)
  if args[:smsg].has_key?(key) 

    args[:smsg][:reply_markup][key] = args[:smsg][key]
    args[:smsg].delete(key)
  end
end

.send_DialogElementSendBot_messageDelete(args) ⇒ Object



22
23
24
25
26
# File 'lib/dialect/canvas/element/send/bot_message.rb', line 22

def send_DialogElementSendBot_messageDelete(args)
  args[:api] = {:op => 'deleteMessage'}
  args[:smsg][:message_id] = args[:mmsg][:fqndata][:o][:msg][:id]
  return Dialog::BotApi.apiAction(args)        
end

.send_DialogElementSendBot_messageForward(args) ⇒ Object



28
29
30
31
32
33
# File 'lib/dialect/canvas/element/send/bot_message.rb', line 28

def send_DialogElementSendBot_messageForward(args)
  args[:api] = {:op => 'forwardMessage'}
  args[:smsg][:message_id] = args[:mmsg][:fqndata][:o][:msg][:id]
  args[:smsg][:chat_id] = args[:mmsg][:fqndata][:o][:chat][:id]  
  return Dialog::BotApi.apiAction(args)
end

.send_DialogElementSendBot_messageSend(args) ⇒ Object



17
18
19
20
# File 'lib/dialect/canvas/element/send/bot_message.rb', line 17

def send_DialogElementSendBot_messageSend(args)
  args[:api] = {:op => 'sendMessage'}
  return Dialog::BotApi.apiAction(args)
end

.send_DialogElementSendExecBackground(args) ⇒ Object



18
19
20
21
22
# File 'lib/dialect/canvas/element/send/background.rb', line 18

def send_DialogElementSendExecBackground(args)
  require "#{Dialog.config.path.dialog_ruby}/background/batch"        
  res = Dialog::Background::BotApi.perform_async(Dialog.config.naming.instance, args[:mmsg])               
  Dialog.logger.debug "Async result: '#{res}'"      
end

.send_DialogElementSendInline_keyboardStatic(args) ⇒ Object



47
48
49
50
51
52
53
54
# File 'lib/dialect/canvas/element/send/keyboards.rb', line 47

def send_DialogElementSendInline_keyboardStatic(args)     
  args[:smsg][:reply_markup] = { 
    inline_keyboard: Dialog::ModSend.makeKeyboard(
      args, 
      :inline, 
      args[:x][:exec][:DialogElementSendInline_keyboardStatic][:DialogModElementInline_keyboardButton])}
  send_DialogElementSendBot_messageSend(args)
end

.send_DialogElementSendInline_query_resultArticle(args) ⇒ Object



17
18
19
20
21
22
# File 'lib/dialect/canvas/element/send/Inline_query_result.rb', line 17

def send_DialogElementSendInline_query_resultArticle(args)
    args[:smsg] ||={}
    args[:x].has_key?(:dataResp) ? results = args[:x][:dataResp] : results = makeInline_query_resultArticle(args, props, viewId)        
    args[:smsg][:results] = results
    return Dialog::BotApi.apiAction(args)        
end

.send_DialogElementSendInline_query_resultDocument(args) ⇒ Object



24
25
26
27
28
29
# File 'lib/dialect/canvas/element/send/Inline_query_result.rb', line 24

def send_DialogElementSendInline_query_resultDocument(args)
    args[:smsg] ||={}
    args[:x].has_key?(:dataResp) ? results = args[:x][:dataResp] : results = makeInline_query_resultDocument(args, props, viewId)        
    args[:smsg][:results] = results
    return Dialog::BotApi.apiAction(args)        
end

.send_DialogElementSendPermissionsLimit(args) ⇒ Object



17
18
19
20
21
22
23
24
25
26
# File 'lib/dialect/canvas/element/send/restrict.rb', line 17

def send_DialogElementSendPermissionsLimit(args)
  args[:api] = {:op => 'restrictChatMember'}
  args[:smsg][:chat_id] = args[:mmsg][:fqndata][:o][:chat][:id]  
  args[:smsg][:until_date] = 0
  args[:smsg][:can_send_messages] = false
  args[:smsg][:can_send_media_messages] = false
  args[:smsg][:can_send_other_messages] = false
  args[:smsg][:can_add_web_page_previews] = false
  return Dialog::BotApi.apiAction(args)        
end

.send_DialogElementSendPermissionsNormal(args) ⇒ Object



28
29
30
31
32
33
34
35
36
# File 'lib/dialect/canvas/element/send/restrict.rb', line 28

def send_DialogElementSendPermissionsNormal(args)
  args[:api] = {:op => 'restrictChatMember'}
  args[:smsg][:chat_id] = args[:mmsg][:fqndata][:o][:chat][:id]  
  args[:smsg][:can_send_messages] = true
  args[:smsg][:can_send_media_messages] = true
  args[:smsg][:can_send_other_messages] = true
  args[:smsg][:can_add_web_page_previews] = true 
  return Dialog::BotApi.apiAction(args)
end

.send_DialogElementSendRecognizeCode(args) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/dialect/canvas/element/send/recognize.rb', line 18

def send_DialogElementSendRecognizeCode(args)
  name = "#{Dialog.config.path.dialogTmpfiles}/#{Dialog::Wrappers.downloadFile(args)}"
  attrs, stderr_str, status = Open3.capture3('/usr/bin/zbarimg', "-q", name)
  
  unless attrs == ""
    Dialog.logger.debug "#### muxFqn #{attrs}"
    response = attrs.split(':')
    codeType = response[0]
    response.shift
    text = answer_DialogModSendRecognizeCommonAction_success(codeType, response.join)
  else
    text = answer_DialogModSendRecognizeCommonAction_fail
  end
  args[:smsg][:text] = text
  args[:x][:dataRespRaw] = response  
  send_DialogElementSendBot_messageSend(args)                
end

.send_DialogElementSendReply_keyboardStatic(args) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/dialect/canvas/element/send/keyboards.rb', line 26

def send_DialogElementSendReply_keyboardStatic(args) 
  args[:smsg][:reply_markup] = {}
  kbForming(args, :one_time_keyboard)
  kbForming(args, :selective)
  kbForming(args, :resize_keyboard)
  args[:smsg][:reply_markup][:keyboard] = Dialog::ModSend.makeKeyboard(
    args, 
    :reply, 
    args[:x][:exec][:DialogElementSendReply_keyboardStatic][:DialogModElementReply_keyboardButton])
  send_DialogElementSendBot_messageSend(args)        
end

.send_DialogElementSendTdlib_chatCreate(args) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/dialect/canvas/element/send/tdlib_chat.rb', line 17

def send_DialogElementSendTdlib_chatCreate(args)
  args[:smsg]['@type'] = 'createNewSupergroupChat'
  args[:smsg]['title'] = 'test'    
  args[:smsg]['is_channel'] = false
  args[:smsg]['description'] = 'description'           
  args[:globals][:tdlibUser].on_ready do |client| 
    group = client.broadcast_and_receive(args[:smsg]) 
    Dialog.logger.debug "#### group created - #{group}"
  end
  ### CLEAN
  Dialog.clear(args) 
end

.send_DialogElementSendTdlib_messageSend(args) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/dialect/canvas/element/send/tdlib_message.rb', line 17

def send_DialogElementSendTdlib_messageSend(args)
  args[:globals][:tdlibUser].on_ready do |client|
    args[:smsg]['@type'] = 'sendMessage'
    
    if args[:smsg][:chat_id] == args[:mmsg][:fqndata][:o][:from][:id]
      client.fetch('@type' => 'createPrivateChat', 'user_id' => args[:smsg][:chat_id])
    end
    
    args[:smsg]['input_message_content'] = {"@type":"inputMessageText","text":{"text": args[:smsg][:text]}}          
    args[:smsg].delete('text')
    Dialog.logger.catch "args[:smsg]::#{args[:smsg]}"          
    test = client.broadcast_and_receive(args[:smsg])
    Dialog.logger.catch "test::#{test}"           
  end
  ### CLEAN
  Dialog.clear(args)     
end

.send_DialogModSendForce_reply(args) ⇒ Object



42
43
44
# File 'lib/dialect/canvas/element/send/keyboards.rb', line 42

def send_DialogModSendForce_reply(args)
  Telegram::Bot::Types::ReplyKeyboardRemove.new(remove_keyboard: true, selective:args[:x][:selective])
end

.send_DialogModSendReply_keyboard(args) ⇒ Object



38
39
40
# File 'lib/dialect/canvas/element/send/keyboards.rb', line 38

def send_DialogModSendReply_keyboard(args)
    Telegram::Bot::Types::ForceReply.new(force_reply: true, selective: args[:x][:selective])
end