module Dialog::Metamess
Constants
- ALL_CAPS
Public Class Methods
chatmemberCommon(args)
click to toggle source
# File lib/metamess/event/notify_o-chatmember_f.rb, line 45 def chatmemberCommon(args) metamessGen(args,eval2mmsg = { :from => {f1: '[:chat]'}, :to => {t1: '[:fqndata][:o][:chat]'}, :fFields => {v1: :title}, :fFieldsOpt => {v1: :username}, }) end
chatmemberInCommon(args)
click to toggle source
# File lib/metamess/event/notify_o-chatmember_f.rb, line 54 def chatmemberInCommon(args) chatmemberCommon(args) content_messageDefaults(args) content_messageDefaultsGet(args) content_userDefaults(args) metamessGen(args,eval2mmsg = { :from => {f1: '[:new_chat_members][0]'}, :to => {t1: '[:fqndata][:g][:user]'}, :fFields => args[:x][:metamess][:userDefaults_fFields], :fFieldsOpt => args[:x][:metamess][:userDefaults_fFieldsOpt], }) end
chatmemberOutCommon(args)
click to toggle source
# File lib/metamess/event/notify_o-chatmember_f.rb, line 92 def chatmemberOutCommon(args) chatmemberCommon(args) content_messageDefaults(args) content_messageDefaultsGet(args) content_userDefaults(args) metamessGen(args,eval2mmsg = { :from => {f1: '[:left_chat_member]'}, :to => {t1: '[:fqndata][:g][:user]'}, :fFields => args[:x][:metamess][:userDefaults_fFields], :fFieldsOpt => args[:x][:metamess][:userDefaults_fFieldsOpt], }) end
collect(args,fqnrun)
click to toggle source
# File lib/metamess/_run.rb, line 131 def collect(args,fqnrun) until fqnrun.nil? fqn = args[:mmsg][:fqn] # Dialog.logger.debug "RUN Metamess - collect: #{fqnrun}" if fqnrun.key?(:g) && !fqnrun.key?(:f) && !fqnrun.key?(:o) && !fqnrun.key?(:c) run = "#{fqn[:c].to_s.capitalize}#{fqn[:o].to_s.capitalize}#{fqn[:f].to_s.capitalize}#{fqnrun[:g].to_s.capitalize}" elsif fqnrun.key?(:f) && !fqnrun.key?(:o) && !fqnrun.key?(:c) run = "#{fqn[:c].to_s.capitalize}#{fqn[:o].to_s.capitalize}#{fqnrun[:f].to_s.capitalize}" elsif fqnrun.key?(:o) && !fqnrun.key?(:c) run = "#{fqn[:c].to_s.capitalize}#{fqnrun[:o].to_s.capitalize}" elsif fqnrun.key?(:c) run = "#{fqnrun[:c].to_s.capitalize}" else Dialog.logger.error "LOST MESSAGE!! " raise 'LostMessage' end run = "collect_#{run}" # Dialog.logger.debug "RUN Metamess - begin: #{run}" Dialog.clear(args) args[:mmsg][:fqnrun] = fqnrun send(run.to_sym, args) fqnrun = args[:mmsg][:fqnrun] Dialog.clear(args) # Dialog.logger.debug "RUN Metamess - end: #{run}" end end
collect_DialogEventNotifyMigrateChannel(args)
click to toggle source
# File lib/metamess/event/notify_o-create_f.rb, line 32 def collect_DialogEventNotifyMigrateChannel(args) metaStep(args, __method__.to_s) ### BODY ### EOF BODY return final(args) end
collect_DialogEventNotifyMigrateGroup(args)
click to toggle source
# File lib/metamess/event/notify_o-create_f.rb, line 24 def collect_DialogEventNotifyMigrateGroup(args) metaStep(args, __method__.to_s) ### BODY ### EOF BODY return final(args) end
collect_DialogEventNotifyMigrateMain(args)
click to toggle source
# File lib/metamess/event/notify_o-migrate_f.rb, line 24 def collect_DialogEventNotifyMigrateMain(args) metaStep(args, __method__.to_s) ### BODY ### EOF BODY return final(args) end
collect_DialogEventNotifyPinnedMain(args)
click to toggle source
# File lib/metamess/event/notify_o-pinned_f.rb, line 24 def collect_DialogEventNotifyPinnedMain(args) metaStep(args, __method__.to_s) ### BODY ### EOF BODY return final(args) end
collect_Event(args)
click to toggle source
# File lib/metamess/event_c.rb, line 16 def collect_Event(args) metaStep(args, __method__.to_s) ### BODY ### EOF BODY return final(args) end
collect_EventContent(args)
click to toggle source
# File lib/metamess/content/content_o.rb, line 16 def collect_EventContent(args) metaStep(args, __method__.to_s) ### BODY ### Message content_message(args) ### User content_user(args) unless args[:rmsg][:chat][:type] == 'channel' ### Chat content_chat(args) ### Chat - private content_chat_private(args) if args[:rmsg][:chat][:type] == 'private' ### Chat - group content_chat_adv(args) unless args[:rmsg][:chat][:type] == 'private' ### Channel content_channel(args) if args[:rmsg][:chat][:type] == 'channel' ### Reply content_reply(args) unless args[:rmsg][:reply_to_message].nil? ### Forward content_forward(args) unless args[:rmsg][:forward_date].nil? ### Edit content_edit(args) unless args[:rmsg][:edit_date].nil? getChatContext(args) content_getFQN(args) ### EOF BODY return final(args) end
collect_EventContentCommand(args)
click to toggle source
# File lib/metamess/content/content_o-command_f.rb, line 16 def collect_EventContentCommand(args) metaStep(args, __method__.to_s) ### BODY commandType(args) ### EOF BODY return final(args) end
collect_EventContentCommandDialog(args)
click to toggle source
# File lib/metamess/content/content_o-command_f.rb, line 82 def collect_EventContentCommandDialog(args) metaStep(args, __method__.to_s) ### BODY ### EOF BODY return final(args) end
collect_EventContentCommandTelegram(args)
click to toggle source
# File lib/metamess/content/content_o-command_f.rb, line 90 def collect_EventContentCommandTelegram(args) metaStep(args, __method__.to_s) ### BODY ### EOF BODY return final(args) end
collect_EventContentContact(args)
click to toggle source
# File lib/metamess/content/content_o-contact_f.rb, line 16 def collect_EventContentContact(args) metaStep(args, __method__.to_s) ### BODY args[:mmsg][:fqnrun][:g] = Dialog::Naming::Class::Event::Order::Content::Family::Contact::Genus.Main ### EOF BODY return final(args) end
collect_EventContentContactMain(args)
click to toggle source
# File lib/metamess/content/content_o-contact_f.rb, line 25 def collect_EventContentContactMain(args) metaStep(args, __method__.to_s) ### BODY metamessGen(args,eval2mmsg = { :from => {f1: '[:contact]'}, :to => {t1: '[:fqndata][:f][:contact]'}, :fFields => {v1: :phone_number, v2: :first_name, v3: :last_name, v4: :user_id}, }) ### EOF BODY return final(args) end
collect_EventContentMedia(args)
click to toggle source
# File lib/metamess/content/content_o-media_f.rb, line 16 def collect_EventContentMedia(args) metaStep(args, __method__.to_s) ### BODY metamessGen(args,eval2mmsg = { :to => {t1: '[:fqndata][:f]'}, :fFieldsOpt => {v1: :caption}, }) ### EOF BODY return final(args) end
collect_EventContentMediaAudio(args)
click to toggle source
# File lib/metamess/content/content_o-media_f.rb, line 89 def collect_EventContentMediaAudio(args) metaStep(args, __method__.to_s) ### from = {f1: '[:audio]'} eval2mmsg = defaults_media(eval2mmsg) eval2mmsg[:from] = from metamessGen(args,eval2mmsg) eval2mmsg = defaults_mediaWithDuration(eval2mmsg) eval2mmsg[:from] = from metamessGen(args,eval2mmsg) ### EOF BODY return final(args) end
collect_EventContentMediaDocument(args)
click to toggle source
# File lib/metamess/content/content_o-media_f.rb, line 60 def collect_EventContentMediaDocument(args) metaStep(args, __method__.to_s) ### BODY eval2mmsg = defaults_media(eval2mmsg) eval2mmsg[:from] = {f1: '[:document]'} metamessGen(args,eval2mmsg) metamessGen(args,eval2mmsg = { :from => {f1: '[:document]'}, :to => {t1: '[:fqndata][:f][:file]'}, :fFields => {v1: :file_name}, :fFieldsOpt => {v1: :name}, }) args[:mmsg][:fqndata][:f][:file][:path] = Dialog::Wrappers.apiGetFilePath(args[:mmsg][:fqndata][:f][:file][:id]) ### EOF BODY return final(args) end
collect_EventContentMediaPhoto(args)
click to toggle source
# File lib/metamess/content/content_o-media_f.rb, line 47 def collect_EventContentMediaPhoto(args) metaStep(args, __method__.to_s) ### BODY #args[:rmsg].photo[-1].file_size ## TODO - for array eval2mmsg = defaults_media(eval2mmsg) eval2mmsg[:from] = {f1: '[:photo][-1]'} metamessGen(args,eval2mmsg) args[:mmsg][:fqndata][:f][:file][:path] = Dialog::Wrappers.apiGetFilePath(args[:mmsg][:fqndata][:f][:file][:id]) ### EOF BODY return final(args) end
collect_EventContentMediaSticker(args)
click to toggle source
# File lib/metamess/content/content_o-media_f.rb, line 137 def collect_EventContentMediaSticker(args) metaStep(args, __method__.to_s) ### BODY eval2mmsg = defaults_media(eval2mmsg) eval2mmsg[:from] = {f1: '[:sticker]'} metamessGen(args,eval2mmsg) ### EOF BODY return final(args) end
collect_EventContentMediaVideo(args)
click to toggle source
# File lib/metamess/content/content_o-media_f.rb, line 103 def collect_EventContentMediaVideo(args) metaStep(args, __method__.to_s) ### BODY eval2mmsg = defaults_media(eval2mmsg) eval2mmsg[:from] = {f1: '[:video]'} metamessGen(args,eval2mmsg) ### EOF BODY return final(args) end
collect_EventContentMediaVideo_note(args)
click to toggle source
# File lib/metamess/content/content_o-media_f.rb, line 113 def collect_EventContentMediaVideo_note(args) metaStep(args, __method__.to_s) ### BODY eval2mmsg = defaults_media(eval2mmsg) eval2mmsg[:from] = {f1: '[:video_note]'} metamessGen(args,eval2mmsg) ### EOF BODY return final(args) end
collect_EventContentMediaVoice(args)
click to toggle source
# File lib/metamess/content/content_o-media_f.rb, line 123 def collect_EventContentMediaVoice(args) metaStep(args, __method__.to_s) ### BODY from = {f1: '[:voice]'} eval2mmsg = defaults_media(eval2mmsg) eval2mmsg[:from] = from metamessGen(args,eval2mmsg) eval2mmsg = defaults_mediaWithDuration(eval2mmsg) eval2mmsg[:from] = from metamessGen(args,eval2mmsg) ### EOF BODY return final(args) end
collect_EventContentMediatVoice(args)
click to toggle source
# File lib/metamess/content/content_o-media_f.rb, line 79 def collect_EventContentMediatVoice(args) metaStep(args, __method__.to_s) ### BODY eval2mmsg = defaults_media(eval2mmsg) eval2mmsg[:from] = {f1: '[:tvoice]'} metamessGen(args,eval2mmsg) ### EOF BODY return final(args) end
collect_EventContentSimple(args)
click to toggle source
# File lib/metamess/content/content_o-simple_f.rb, line 16 def collect_EventContentSimple(args) metaStep(args, __method__.to_s) ### BODY args[:mmsg][:fqnrun][:g] = Dialog::Naming::Class::Event::Order::Content::Family::Simple::Genus.Text ### EOF BODY return final(args) end
collect_EventContentSimpleText(args)
click to toggle source
# File lib/metamess/content/content_o-simple_f.rb, line 25 def collect_EventContentSimpleText(args) metaStep(args, __method__.to_s) ### BODY ### EOF BODY return final(args) end
collect_EventNotify(args)
click to toggle source
# File lib/metamess/event/notify_o.rb, line 16 def collect_EventNotify(args) metaStep(args, __method__.to_s) ### BODY content_user(args) unless args[:rmsg][:chat][:type] == 'channel' ### Chat content_chat(args) ### EOF BODY return final(args) end
collect_EventNotifyChatmember(args)
click to toggle source
# File lib/metamess/event/notify_o-chatmember_f.rb, line 16 def collect_EventNotifyChatmember(args) metaStep(args, __method__.to_s) ### BODY args[:rmsg][:new_chat_members].each do |member| args[:mmsg][:fqndata][:g] ||= {} if member[:id] == args[:rmsg][:from][:id] && member[:is_bot] == false if args[:rmsg][:chat][:username].nil? args[:mmsg][:fqnrun][:g] = Dialog::Naming::Class::Event::Order::Notify::Family::ChatMember::Genus.In_link else args[:mmsg][:fqnrun][:g] = Dialog::Naming::Class::Event::Order::Notify::Family::ChatMember::Genus.In_open end else args[:mmsg][:fqnrun][:g] = Dialog::Naming::Class::Event::Order::Notify::Family::ChatMember::Genus.Invite end end unless args[:rmsg][:left_chat_member].nil? args[:mmsg][:fqndata][:g] = {} if args[:rmsg][:left_chat_member][:id] == args[:rmsg][:from][:id] && args[:rmsg][:left_chat_member][:is_bot] == false args[:mmsg][:fqnrun][:g] = Dialog::Naming::Class::Event::Order::Notify::Family::ChatMember::Genus.Leave else args[:mmsg][:fqnrun][:g] = Dialog::Naming::Class::Event::Order::Notify::Family::ChatMember::Genus.Ban end end ### EOF BODY return final(args) end
collect_EventNotifyChatmemberBan(args)
click to toggle source
# File lib/metamess/event/notify_o-chatmember_f.rb, line 114 def collect_EventNotifyChatmemberBan(args) metaStep(args, __method__.to_s) ### BODY chatmemberOutCommon(args) ### EOF BODY return final(args) end
collect_EventNotifyChatmemberIn_link(args)
click to toggle source
# File lib/metamess/event/notify_o-chatmember_f.rb, line 68 def collect_EventNotifyChatmemberIn_link(args) metaStep(args, __method__.to_s) ### BODY chatmemberInCommon(args) ### EOF BODY return final(args) end
collect_EventNotifyChatmemberIn_open(args)
click to toggle source
# File lib/metamess/event/notify_o-chatmember_f.rb, line 76 def collect_EventNotifyChatmemberIn_open(args) metaStep(args, __method__.to_s) ### BODY chatmemberInCommon(args) ### EOF BODY return final(args) end
collect_EventNotifyChatmemberInvite(args)
click to toggle source
# File lib/metamess/event/notify_o-chatmember_f.rb, line 84 def collect_EventNotifyChatmemberInvite(args) metaStep(args, __method__.to_s) ### BODY chatmemberInCommon(args) ### EOF BODY return final(args) end
collect_EventNotifyChatmemberLeave(args)
click to toggle source
# File lib/metamess/event/notify_o-chatmember_f.rb, line 106 def collect_EventNotifyChatmemberLeave(args) metaStep(args, __method__.to_s) ### BODY chatmemberOutCommon(args) ### EOF BODY return final(args) end
collect_EventNotifyChattitle(args)
click to toggle source
# File lib/metamess/event/notify_o-chattitle_f.rb, line 16 def collect_EventNotifyChattitle(args) metaStep(args, __method__.to_s) ### BODY args[:mmsg][:fqn][:g] = 'new' ### EOF BODY return final(args) end
collect_EventNotifyChattitleNew(args)
click to toggle source
# File lib/metamess/event/notify_o-chattitle_f.rb, line 24 def collect_EventNotifyChattitleNew(args) metaStep(args, __method__.to_s) ### BODY ### EOF BODY return final(args) end
collect_EventNotifyCreate(args)
click to toggle source
# File lib/metamess/event/notify_o-create_f.rb, line 16 def collect_EventNotifyCreate(args) metaStep(args, __method__.to_s) ### BODY args[:mmsg][:fqn][:g] = Dialog::Naming::Class::Default::Order::Default::Genus.Main ### EOF BODY return final(args) end
collect_EventNotifyMigrate(args)
click to toggle source
# File lib/metamess/event/notify_o-migrate_f.rb, line 16 def collect_EventNotifyMigrate(args) metaStep(args, __method__.to_s) ### BODY args[:mmsg][:fqn][:g] = Dialog::Naming::Class::Default::Order::Default::Genus.Main ### EOF BODY return final(args) end
collect_EventNotifyPinned(args)
click to toggle source
# File lib/metamess/event/notify_o-pinned_f.rb, line 16 def collect_EventNotifyPinned(args) metaStep(args, __method__.to_s) ### BODY args[:mmsg][:fqn][:g] = Dialog::Naming::Class::Default::Order::Default::Genus.Main ### EOF BODY return final(args) end
collect_EventService(args)
click to toggle source
# File lib/metamess/service/service_o.rb, line 16 def collect_EventService(args) metaStep(args, __method__.to_s) ### BODY ### EOF BODY return final(args) end
collect_EventServiceCallbackQuery(args)
click to toggle source
# File lib/metamess/service/service_o-callback_f.rb, line 16 def collect_EventServiceCallbackQuery(args) metaStep(args, __method__.to_s) ### BODY content_user(args) content_message(args) if args[:rmsg].has_key?(:message) #location # TODO metamessGen(args,eval2mmsg = { :to => {t1: '[:g][:callback]'}, :fFields => {v1: :id, v2: :chat_instance}, :fFieldsOpt => {v1: :inline_message_id, v2: :data}, }) ### EOF BODY return final(args) end
collect_EventServiceInline(args)
click to toggle source
# File lib/metamess/service/service_o-inline_f.rb, line 16 def collect_EventServiceInline(args) metaStep(args, __method__.to_s) ### BODY ### EOF BODY return final(args) end
collect_EventServiceInlineCresult(args)
click to toggle source
# File lib/metamess/service/service_o-inline_f.rb, line 40 def collect_EventServiceInlineCresult(args) metaStep(args, __method__.to_s) ### BODY content_user(args) metamessGen(args,eval2mmsg = { :to => {t1: '[:fqndata][:g][:inline]'}, :fFields => {v1: :result_id, v2: :query}, :tFields => {v1: :id, v2: :query}, :fFieldsOpt => {v1: :inline_message_id}, }) ### EOF BODY return final(args) end
collect_EventServiceInlineQuery(args)
click to toggle source
# File lib/metamess/service/service_o-inline_f.rb, line 25 def collect_EventServiceInlineQuery(args) metaStep(args, __method__.to_s) ### BODY content_user(args) #location # TODO metamessGen(args,eval2mmsg = { :to => {t1: '[:fqndata][:g][:inline]'}, :fFields => {v1: :id, v2: :query}, :fFieldsOpt => {v1: :offset}, }) ### EOF BODY return final(args) end
commandType(args)
click to toggle source
# File lib/metamess/content/content_o-command_f.rb, line 25 def commandType(args) case args[:mmsg][:fqndata][:o][:msg][:textStartWith] when /^_[а-яА-ЯёЁa-zA-Z0-9]..*.:.*[а-яА-ЯёЁa-zA-Z0-9]+$/ delimiter = ":" args[:mmsg][:fqnrun][:g] = Dialog::Naming::Class::Event::Order::Content::Family::Command::Genus.Dialog when /^_[а-яА-ЯёЁa-zA-Z0-9]*[^:]*\s*[а-яА-ЯёЁa-zA-Z0-9]+$/ delimiter = "\s" args[:mmsg][:fqnrun][:g] = Dialog::Naming::Class::Event::Order::Content::Family::Command::Genus.Dialog when /^\/[а-яА-ЯёЁa-zA-Z0-9]..*.:.*[а-яА-ЯёЁa-zA-Z0-9]+$/ delimiter = ":" args[:mmsg][:fqnrun][:g] = Dialog::Naming::Class::Event::Order::Content::Family::Command::Genus.Telegram when /^\/[а-яА-ЯёЁa-zA-Z0-9]*[^:]*\s*[а-яА-ЯёЁa-zA-Z0-9]+$/ delimiter = "\s" args[:mmsg][:fqnrun][:g] = Dialog::Naming::Class::Event::Order::Content::Family::Command::Genus.Telegram else delimiter = false end Dialog.logger.debug("###### delimiter - #{delimiter} ") if ! delimiter == false bot_fullcommand = args[:mmsg][:fqndata][:o][:msg][:textStartWith].split(delimiter) bot_command = bot_fullcommand[0].strip[1..-1].downcase if /.@.*/.match?(bot_command) if /.@#{args[:globals][:botUsername].downcase}.*/.match?(bot_command) bot_command = bot_command.split('@')[0] else Dialog.logger.error("###### COMMAND FOR OTHER BOT! ") raise end end if bot_fullcommand[1].nil? bot_subcommand = '_main' else bot_fullcommand.shift bot_fullcommand.each do |v| if /^#.*|^@.*/.match?(v) next else bot_subcommand = "#{bot_subcommand}_#{v.downcase}" end end bot_subcommand = '_main' if bot_subcommand == '' end else bot_command = args[:mmsg][:fqndata][:o][:msg][:textStartWith].strip[1..-1].downcase bot_subcommand = '_main' end args[:mmsg][:fqndata][:f][:bot_command] = bot_command args[:mmsg][:fqndata][:f][:bot_subcommand] = bot_subcommand end
content_channel(args)
click to toggle source
# File lib/metamess/content/content_o.rb, line 176 def content_channel(args) metamessGen(args,eval2mmsg = { :to => {t1: '[:fqndata][:o][:from]'}, :fFieldsOpt => {v1: :author_signature}, }) end
content_chat(args)
click to toggle source
# File lib/metamess/content/content_o.rb, line 147 def content_chat(args) content_chatDefaults(args) metamessGen(args,eval2mmsg = { :from => {f1: '[:chat]'}, :to => {t1: '[:fqndata][:o][:chat]'}, :fFields => args[:x][:metamess][:chatDefaults_fFields], }) end
content_chatDefaults(args)
click to toggle source
Chat
# File lib/metamess/content/content_o.rb, line 143 def content_chatDefaults(args) args[:x][:metamess][:chatDefaults_fFields] = {v1: :id, v2: :type} end
content_chat_adv(args)
click to toggle source
# File lib/metamess/content/content_o.rb, line 166 def content_chat_adv(args) metamessGen(args,eval2mmsg = { :from => {f1: '[:chat]'}, :to => {t1: '[:fqndata][:o][:chat]'}, :fFields => {v1: :title}, :fFieldsOpt => {v1: :pinned_message, v2: :invite_link, v3: :username}, :tFieldsOpt => {v1: :pinned_message, v2: :invitelink_name, v3: :chatlink_name}, }) end
content_chat_private(args)
click to toggle source
Chat - private
# File lib/metamess/content/content_o.rb, line 157 def content_chat_private(args) metamessGen(args,eval2mmsg = { :from => {f1: '[:chat]'}, :to => {t1: '[:fqndata][:o][:chat]'}, :fFields => {v1: :first_name, v2: :last_name, v3: :username}, }) end
content_edit(args)
click to toggle source
# File lib/metamess/content/content_o.rb, line 232 def content_edit(args) args[:mmsg][:actionsd][:edit] = {} args[:mmsg][:fqndata][:o][:msg][:msgtype] = Dialog::Naming::Class::Event::Order::Content::Type.Edit args[:mmsg][:actions] << args[:mmsg][:fqndata][:o][:msg][:msgtype] metamessGen(args,eval2mmsg = { :to => {t1: '[:actionsd][:edit]'}, :fFields => {v1: :edit_date}, :tFields => {v1: :date}, }) end
content_forward(args)
click to toggle source
# File lib/metamess/content/content_o.rb, line 201 def content_forward(args) args[:mmsg][:fqndata][:o][:msg][:msgtype] = Dialog::Naming::Class::Event::Order::Content::Type.Forward args[:mmsg][:actions] << args[:mmsg][:fqndata][:o][:msg][:msgtype] args[:mmsg][:actionsd][:forward] = {} #forward_signature content_userDefaults(args) metamessGen(args,eval2mmsg = { :from => {f1: '[:forward_from]'}, :to => {t1: '[:actionsd]'}, :fFields => args[:x][:metamess][:userDefaults_fFields], :fFieldsOpt => args[:x][:metamess][:userDefaults_fFieldsOpt], }) metamessGen(args,eval2mmsg = { :to => {t1: '[:actionsd][:forward][:msg]'}, :fFields => {v1: :forward_date}, :tFields => {v1: :date}, :fFieldsOpt => {v1: :forward_from_message_id}, :tFieldsOpt => {v1: :id}, }) metamessGen(args,eval2mmsg = { :to => {t1: '[:actionsd][:forward][:chat]'}, :fFieldsOpt => {v1: :forward_from_chat}, :tFieldsOpt => {v1: :id}, }) end
content_getFQN(args)
click to toggle source
# File lib/metamess/content/content_o.rb, line 60 def content_getFQN(args) content_getFQNMedia(args) if args[:mmsg][:fqnrun][:f].nil? if args[:rmsg].respond_to?(:contact) && !args[:rmsg].contact.nil? args[:mmsg][:fqnrun][:f] = Dialog::Naming::Class::Event::Order::Content::Family.Contact elsif args[:rmsg].respond_to?(:location) && !args[:rmsg].location.nil? args[:mmsg][:fqnrun][:f] = Dialog::Naming::Class::Event::Order::Content::Family.Location elsif args[:rmsg].respond_to?(:invoice) && !args[:rmsg].invoice.nil? args[:mmsg][:fqnrun][:f] = Dialog::Naming::Class::Event::Order::Content::Family.Invoice end end if args[:mmsg][:fqnrun][:f].nil? if args[:mmsg][:fqndata][:o][:msg].key?(:textStartWith) case args[:mmsg][:fqndata][:o][:msg][:textStartWith] when ->(s) { (s.size < 70 and ((s[0] == '_') or (s[0] == '/'))) } args[:mmsg][:fqnrun][:f] = Dialog::Naming::Class::Event::Order::Content::Family.Command else args[:mmsg][:fqnrun][:f] = Dialog::Naming::Class::Event::Order::Content::Family.Simple end else args[:mmsg][:fqnrun][:f] = Dialog::Naming::Class::Event::Order::Content::Family.Notext end end end
content_getFQNMedia(args)
click to toggle source
Content methods
# File lib/metamess/content/content_o.rb, line 48 def content_getFQNMedia(args) args[:mmsg][:fqnrun][:g] = Dialog::Naming::Class::Event::Order::Content::Family::Media::Genus.Photo if args[:rmsg].respond_to?(:photo) && !args[:rmsg].photo.empty? args[:mmsg][:fqnrun][:g] = Dialog::Naming::Class::Event::Order::Content::Family::Media::Genus.Document if args[:rmsg].respond_to?(:document) && !args[:rmsg].document.nil? args[:mmsg][:fqnrun][:g] = Dialog::Naming::Class::Event::Order::Content::Family::Media::Genus.Voice if args[:rmsg].respond_to?(:voice) && !args[:rmsg].voice.nil? args[:mmsg][:fqnrun][:g] = Dialog::Naming::Class::Event::Order::Content::Family::Media::Genus.Audio if args[:rmsg].respond_to?(:audio) && !args[:rmsg].audio.nil? args[:mmsg][:fqnrun][:g] = Dialog::Naming::Class::Event::Order::Content::Family::Media::Genus.Video if args[:rmsg].respond_to?(:video) && !args[:rmsg].video.nil? args[:mmsg][:fqnrun][:g] = Dialog::Naming::Class::Event::Order::Content::Family::Media::Genus.Videonote if args[:rmsg].respond_to?(:video_note) && !args[:rmsg].video_note.nil? args[:mmsg][:fqnrun][:g] = Dialog::Naming::Class::Event::Order::Content::Family::Media::Genus.Sticker if args[:rmsg].respond_to?(:sticker) && !args[:rmsg].sticker.nil? args[:mmsg][:fqnrun][:f] = Dialog::Naming::Class::Event::Order::Content::Family.Media unless args[:mmsg][:fqnrun][:g].nil? end
content_message(args)
click to toggle source
# File lib/metamess/content/content_o.rb, line 116 def content_message(args) content_messageDefaults(args) content_messageDefaultsGet(args) args[:mmsg][:fqndata][:o][:msg][:msgtype] = Dialog::Naming::Class::Event::Order::Content::Type.Original args[:rmsg].text.nil? ? true : args[:mmsg][:fqndata][:o][:msg][:textStartWith] = args[:rmsg].text.split[0..10].join(' ') end
content_messageDefaults(args)
click to toggle source
Message
# File lib/metamess/content/content_o.rb, line 102 def content_messageDefaults(args) args[:x][:metamess][:messageDefaults_fFields] = {v1: :message_id, v2: :date} args[:x][:metamess][:messageDefaults_tFields] = {v1: :id, v2: :date} end
content_messageDefaultsGet(args)
click to toggle source
# File lib/metamess/content/content_o.rb, line 107 def content_messageDefaultsGet(args) metamessGen(args,eval2mmsg = { :to => {t1: '[:fqndata][:o][:msg]'}, :fFields => args[:x][:metamess][:messageDefaults_fFields], :tFields => args[:x][:metamess][:messageDefaults_tFields], :fFieldsOpt => {v1: :text} }) end
content_reply(args)
click to toggle source
# File lib/metamess/content/content_o.rb, line 184 def content_reply(args) args[:mmsg][:fqndata][:o][:msg][:msgtype] = Dialog::Naming::Class::Event::Order::Content::Type.Reply args[:mmsg][:actions] << args[:mmsg][:fqndata][:o][:msg][:msgtype] #callback args[:rmsgMain] = Hash.new.merge(args[:rmsg]) args[:rmsg] = args[:rmsg][:reply_to_message] args[:mmsgMain] = Hash.new.merge(args[:mmsg]) args[:mmsg] = {}; init(args); args[:mmsgCallback] = Dialog::Metamess.collect_EventContent(args) args[:mmsg] = args[:mmsgMain]; args.delete(:mmsgMain) args[:rmsg] = args[:rmsgMain]; args.delete(:rmsgMain) args[:mmsg][:actionsd][:reply] = args[:mmsgCallback]; args.delete(:mmsgCallback) end
content_user(args)
click to toggle source
# File lib/metamess/content/content_o.rb, line 131 def content_user(args) content_userDefaults(args) metamessGen(args,eval2mmsg = { :from => {f1: '[:from]'}, :to => {t1: '[:fqndata][:o][:from]'}, :fFields => args[:x][:metamess][:userDefaults_fFields], :fFieldsOpt => args[:x][:metamess][:userDefaults_fFieldsOpt], }) end
content_userDefaults(args)
click to toggle source
User
# File lib/metamess/content/content_o.rb, line 126 def content_userDefaults(args) args[:x][:metamess][:userDefaults_fFields] = {v1: :id, v2: :first_name, v3: :username, v4: :is_bot} args[:x][:metamess][:userDefaults_fFieldsOpt] = {v1: :last_name, v2: :language_code} end
defaults_media(eval2mmsg)
click to toggle source
# File lib/metamess/content/content_o-media_f.rb, line 28 def defaults_media(eval2mmsg) eval2mmsg = { :to => {t1: '[:fqndata][:f][:file]'}, :fFields => {v1: :file_id, v2: :file_size}, :tFields => {v1: :id, v2: :size}, :fFieldsOpt => {v1: :mime_type}, } return eval2mmsg end
defaults_mediaWithDuration(eval2mmsg)
click to toggle source
# File lib/metamess/content/content_o-media_f.rb, line 38 def defaults_mediaWithDuration(eval2mmsg) eval2mmsg = { :to => {t1: '[:fqndata][:f][:file]'}, :fFieldsOpt => {v1: :duration}, } return eval2mmsg end
eval2mmsg_simplemap(eval2mmsg)
click to toggle source
# File lib/metamess/func.rb, line 114 def eval2mmsg_simplemap(eval2mmsg) # TODO doubled functionality map = {} if eval2mmsg.key?(:fFields) eval2mmsg[:tFields] = eval2mmsg[:fFields] unless eval2mmsg.key?(:tFields) if eval2mmsg[:fFields].size == eval2mmsg[:tFields].size map[:base] = {} i = 1 while i <= eval2mmsg[:tFields].size do map[:base][:"m#{i}".to_sym] = {from: 'f1', to: 't1'} i+=1 end else Dialog.logger.error "EVAL map not equal" raise end end if eval2mmsg.key?(:fFieldsOpt) eval2mmsg[:tFieldsOpt] = eval2mmsg[:fFieldsOpt] unless eval2mmsg.has_key?(:tFieldsOpt) if eval2mmsg[:fFieldsOpt].size == eval2mmsg[:tFieldsOpt].size map[:opt] = {} i = 1 while i <= eval2mmsg[:tFieldsOpt].size do map[:opt][:"m#{i}".to_sym] = {from: 'f1', to: 't1'} i+=1 end else Dialog.logger.error "EVAL map not equal" raise end end # Dialog.logger.debug "#{map}" return map end
final(args)
click to toggle source
# File lib/metamess/func.rb, line 163 def final(args) if args[:mmsg][:fqn].key?(:g) args[:mmsg].delete(:fqnrun) elsif args[:mmsg][:fqn].key?(:f) args[:mmsg][:fqnrun].key?(:g) ? args[:mmsg][:fqnrun].delete(:f) : nofinal(args, 'f->g') elsif args[:mmsg][:fqn].key?(:o) args[:mmsg][:fqnrun].key?(:f) ? args[:mmsg][:fqnrun].delete(:o) : nofinal(args, 'o->f') elsif args[:mmsg][:fqn].key?(:c) args[:mmsg][:fqnrun].key?(:o) ? args[:mmsg][:fqnrun].delete(:c) : nofinal(args, 'c->o') else Dialog.logger.error "### FINAL GOES WRONG" end return args[:mmsg] end
firstpoint(args)
click to toggle source
# File lib/metamess/_run.rb, line 39 def firstpoint(args) Dialog.clear(args) # args[:mmsg] = Concurrent::Hash.new init(args) fqnrun = {} fqnrun[:c] = Dialog::Naming::Class.Event case args[:rmsg].class.to_s when 'Telegram::Bot::Types::InlineQuery' fqnrun[:o] = Dialog::Naming::Class::Event::Order.Service fqnrun[:f] = Dialog::Naming::Class::Event::Order::Service::Family.Inline fqnrun[:g] = Dialog::Naming::Class::Event::Order::Service::Family::Inline::Genus.Query when 'Telegram::Bot::Types::ChosenInlineResult' fqnrun[:o] = Dialog::Naming::Class::Event::Order.Service fqnrun[:f] = Dialog::Naming::Class::Event::Order::Service::Family.Inline fqnrun[:g] = Dialog::Naming::Class::Event::Order::Service::Family::Inline::Genus.Cresult when 'Telegram::Bot::Types::CallbackQuery' fqnrun[:o] = Dialog::Naming::Class::Event::Order.Service fqnrun[:f] = Dialog::Naming::Class::Event::Order::Service::Family.Callback fqnrun[:g] = Dialog::Naming::Class::Event::Order::Service::Family::Callback::Genus.Query when 'Telegram::Bot::Types::Message' message_identificate(args,fqnrun) end collect(args,fqnrun) Dialog.logger.info("## RESULT of Metamess: #{args[:mmsg]}\n") ##needs refactor to lambda args[:rmsg].to_h.each do |k1, v1| unless ['NilClass', 'Array', 'Integer', 'String'].include?(v1.class.to_s) v1.to_h.each do |k2, v2| args[:rmsgcheck][k1.to_sym] ||= {} rmsgcheckForm(args, k1, v1, k2, v2) end else rmsgcheckForm(args, k1, v1) end end ## # Dialog.logger.debug("################## rmsgcheck - #{args[:rmsgcheck]}") # Dialog.logger.debug("################## metacheck - #{args[:metacheck]}") diff = args[:rmsgcheck].diff(args[:metacheck]) unless diff == {} Dialog.logger.error("@@@@ !!!! Metacheck diff: #{diff}") Dialog.logger.info "RAW MSG:\n#{args[:rmsg].to_hash}\n" end args[:metacheck] = {} args[:rmsg] = {} args[:perf][:metamess] = Time.now Dialog::Canvas.run(args) args[:perf][:canvas] = Time.now end
getChatContext(args)
click to toggle source
# File lib/metamess/content/content_o.rb, line 88 def getChatContext(args) case args[:mmsg][:fqndata][:o][:chat][:type] when 'private' context = Naming::ChatContext.Private when 'group' leaveGroup(args) when 'supergroup' context = Dialog::Storage::Redis.pullCached({ :type => 'chat', :key => 'context'}, args) end context.nil? ? nodata(args: args, from: 'context') : args[:mmsg][:fqndata][:o][:chat][:context] = context end
getStep(method)
click to toggle source
# File lib/metamess/func.rb, line 19 def getStep(method) step = {} case method.count(ALL_CAPS) when 1 step[:prev] = false step[:curr] = :c step[:next] = :o when 2 step[:prev] = :c step[:curr] = :o step[:next] = :f when 3 step[:prev] = :o step[:curr] = :f step[:next] = :g when 4 step[:prev] = :g step[:curr] = :g step[:next] = true end return step end
init(args)
click to toggle source
# File lib/metamess/_run.rb, line 18 def init(args) args[:mmsg] = {actions: [], actionsd: {}, fqn: {}, fqndata: {}, fqnrun: {}} nestedHash = lambda {|h,k| h[k] = Hash.new(&nestedHash)} args[:rmsgcheck] = Hash.new args[:metacheck] = Hash.new(&nestedHash) end
leaveGroup(args)
click to toggle source
# File lib/metamess/func.rb, line 153 def leaveGroup(args) args[:api][:op] = 'Message' args[:smsg] = {} args[:smsg][:chat_id] = args[:rmsg].chat.id args[:smsg][:text] = I18n.t('_action_group2supergroup') Dialog::BotApi.apiActionSend(args) args[:api][:op] = 'leaveChat' Dialog::BotApi.apiAction(args) end
message_identificate(args,fqnrun)
click to toggle source
# File lib/metamess/_run.rb, line 94 def message_identificate(args,fqnrun) rmsg= args[:rmsg] if rmsg.respond_to?(:new_chat_members) && !rmsg.new_chat_members.empty? || rmsg.respond_to?(:left_chat_member) && !rmsg.left_chat_member.nil? fqnrun[:o] = Dialog::Naming::Class::Event::Order.Notify fqnrun[:f] = Dialog::Naming::Class::Event::Order::Notify::Family.ChatMember elsif rmsg.respond_to?(:new_chat_photo) && !rmsg.new_chat_photo.empty? || rmsg.respond_to?(:delete_chat_photo) && !rmsg.delete_chat_photo.nil? fqnrun[:o] = Dialog::Naming::Class::Event::Order.Notify fqnrun[:f] = Dialog::Naming::Class::Event::Order::Notify::Family.ChatPhoto elsif rmsg.respond_to?(:new_chat_title) && !rmsg.new_chat_title.nil? fqnrun[:o] = Dialog::Naming::Class::Event::Order.Notify fqnrun[:f] = Dialog::Naming::Class::Event::Order::Notify::Family.ChatTitle elsif rmsg.respond_to?(:group_chat_created)&& !rmsg.group_chat_created.nil? || rmsg.respond_to?(:supergroup_chat_created)&& !rmsg.supergroup_chat_created.nil? rmsg.respond_to?(:channel_chat_created) && !rmsg.channel_chat_created.nil? fqnrun[:o] = Dialog::Naming::Class::Event::Order.Notify fqnrun[:f] = Dialog::Naming::Class::Event::Order::Notify::Family.Create elsif rmsg.respond_to?(:migrate_to_chat_id)&& !rmsg.migrate_to_chat_id.nil? || rmsg.respond_to?(:migrate_from_chat_id) && !rmsg.migrate_from_chat_id.nil? fqnrun[:o] = Dialog::Naming::Class::Event::Order.Notify fqnrun[:f] = Dialog::Naming::Class::Event::Order::Notify::Family.Migrate elsif rmsg.respond_to?(:pinned_message) && !rmsg.pinned_message.nil? fqnrun[:o] = Dialog::Naming::Class::Event::Order.Notify fqnrun[:f] = Dialog::Naming::Class::Event::Order::Notify::Family.Pinned elsif rmsg.respond_to?(:connected_website) && !rmsg.connected_website.nil? fqnrun[:o] = Dialog::Naming::Class::Event::Order.Notify fqnrun[:f] = Dialog::Naming::Class::Event::Order::Notify::Family.Login elsif rmsg.respond_to?(:passport_data) && !rmsg.passport_data.nil? fqnrun[:o] = Dialog::Naming::Class::Event::Order.Notify fqnrun[:f] = Dialog::Naming::Class::Event::Order::Notify::Family.Passport else fqnrun[:o] = Dialog::Naming::Class::Event::Order.Content end end
metaStep(args, method)
click to toggle source
# File lib/metamess/func.rb, line 185 def metaStep(args, method) method = method.split('_')[1] step = getStep(method) args[:mmsg][:fqn][step[:curr]] = args[:mmsg][:fqnrun][step[:curr]] args[:mmsg][:fqndata][step[:curr]] = {} args[:x][:metamess][:m] = method end
metamessGen(args,eval2mmsg)
click to toggle source
# File lib/metamess/func.rb, line 48 def metamessGen(args,eval2mmsg) toPrefix = 'args[:mmsg]' ## BUG !!!! EVAL!!! - migrate to instance_variable_set eval2mmsg[:to].each do |num, val| begin # Dialog.logger.debug "### checking hash: #{val}" val = "#{toPrefix}#{val}" eval("#{val}.length") rescue NoMethodError => @e # Dialog.logger.debug "### create hash: #{val}" eval("#{val} = {}") end end eval2mmsg[:map] = eval2mmsg_simplemap(eval2mmsg) unless eval2mmsg.has_key?(:map) eval2mmsg[:map].each do |mapType, mapTypeData| mapTypeData.each do |pk, pv| pk[1..-1] if mapType.to_s == 'opt' tFields = 'tFieldsOpt'; fFields = 'fFieldsOpt'; opt = true # Dialog.logger.debug "### 1 type: #{mapType}, tFields: #{tFields}, res: #{eval("#{eval2mmsg["#{tFields}".to_sym]}")}" else tFields = 'tFields'; fFields = 'fFields'; opt = false # Dialog.logger.debug "### 2 type: #{mapType}, tFields: #{tFields}, res: #{eval("#{eval2mmsg["#{tFields}".to_sym]}")}" end to = "#{toPrefix}#{eval2mmsg[:to][pv[:to].to_sym]}#{[eval2mmsg["#{tFields}".to_sym]["v#{pk[1..-1]}".to_sym]]}" if eval2mmsg.has_key?(:from) from = "#{eval2mmsg[:from][pv[:from].to_sym]}#{[eval2mmsg["#{fFields}".to_sym]["v#{pk[1..-1]}".to_sym]]}" else from = "#{[eval2mmsg["#{fFields}".to_sym]["v#{pk[1..-1]}".to_sym]]}" end ## refactor to lambda if opt == true begin eval("args[:rmsg]#{from}.nil?") ? metacheck = false : metacheck = "args[:metacheck]#{from}" rescue NoMethodError => @e metacheck = false end else metacheck = "args[:metacheck]#{from}" end # Dialog.logger.catch "### opt::#{opt}, from::#{from}, metacheck::#{metacheck}" eval("#{metacheck} = 1") unless metacheck == false from = "args[:rmsg]#{from}" # Dialog.logger.debug "### Metamessage - FROM #{from};\tTO: #{to}, type: #{mapType}" if mapType.to_s == 'opt' nilFunction = true else nilFunction = "nodata(args: args,from: from)" end begin eval("#{from}.nil? ? #{nilFunction} : #{to} = #{from}") rescue NoMethodError => @e Dialog.logger.debug "No method #{from}" if nilFunction == true rescue TypeError => @e Dialog.logger.error "Problems with mapping type: #{mapType}, #{tFields}->#{fFields}, may be optional?" raise end ## end end end
nodata(args: , from: )
click to toggle source
# File lib/metamess/func.rb, line 42 def nodata(args: , from: ) args[:x][:metamess][:nodata] = "### NO DATA FROM METAMESS RUNNER: Order '#{args[:x][:metamess][:o]}', method '#{args[:x][:metamess][:m]}' from '#{from}' ###" Dialog.logger.error "#{args[:x][:metamess][:nodata]}" raise TypeError end
nofinal(args, step)
click to toggle source
# File lib/metamess/func.rb, line 179 def nofinal(args, step) error = "### NO next FQN step (#{step}) for : '#{args[:mmsg]}' ###" Dialog.logger.error "#{error}" raise 'LostFQN' end
rmsgcheckForm(args, k1, v1, k2=true, v2=true)
click to toggle source
# File lib/metamess/_run.rb, line 25 def rmsgcheckForm(args, k1, v1, k2=true, v2=true) vNext = true v2 == true ? value = v1 : value = v2 value.kind_of?(Array) ? vNext = value.empty? : vNext = value.nil? # Dialog.logger.debug "### k2 - #{k2}, value - #{value}, vNext - #{vNext}" if v2 == true args[:rmsgcheck][k1.to_sym] = 1 if vNext == false else args[:rmsgcheck][k1.to_sym][k2.to_sym] = 1 if vNext == false end end