when'/setname'then@telegram.set_name(args[0]||'',args[1]||'')# set My Name
when'/setbio'then@telegram.set_bio(args[0]||'')# set About
when'/setpassword'then@telegram.set_password((args[1]?args[0]:''),args[1])# set password
else@xmpp.send_message(@jid,nil,::HELP_GATE_CMD)
when'/config'then@xmpp.send_message(@jid,nil,args[1]?"%s set to %s"%[args[0],@session.store(args[0].to_sym,args[1])]:@session.map{|attr|"%s is set to %s"%attr}.join("\n"))
when'/d'then@telegram.delete_messages(chat.id,@telegram.search_chat_messages(chat.id,0,args[0]||1,sender_user_id:@me.id,filter:TD::Types::SearchMessagesFilter::Empty.new).value.messages.map(&:id),true)# delete last message(s)
when'/s'then@telegram.search_chat_messages(chat.id,0,1,sender_user_id:@me.id,filter:TD::Types::SearchMessagesFilter::Empty.new).value.messages.eachdo|msg|self.process_outgoing_message(chat.id,msg.content.text.text.to_s.gsub(Regexp.new(args[0]),args[1..-1].join(' ')),msg.id)end# edit last message
when'/supergroup'then@telegram.create_new_supergroup_chat(args[0],args[1..-1].join(' '),is_channel:false)# create new supergroup
when'/channel'then@telegram.create_new_supergroup_chat(args[0],args[1..-1].join(' '),is_channel:true)# create new channel
when'/secret'then@telegram.create_new_secret_chat(chat.id)ifuser# create secret chat with current user
when'/group'then@telegram.create_new_basic_group_chat(chat.id,args[0])ifuser# create group chat with current user
when'/block'then@telegram.block_user(chat.id)ifuser# blacklists current user
when'/unblock'then@telegram.unblock_user(chat.id)ifuser# unblacklists current user
when'/invite'then@telegram.add_chat_member(chat.id,(args[0].to_i==0?@telegram.search_public_chat(args[0]).value.id:args[0].to_i))ifchat.id<0# invite @username to current groupchat
when'/kick'then@telegram.set_chat_member_status(chat.id,(args[0].to_i==0?@telegram.search_public_chat(args[0]).value.id:args[0].to_i))ifchat.id<0# kick @username from current group chat
when'/ban'then@telegram.set_chat_member_status(chat.id,(args[0].to_i==0?@telegram.search_public_chat(args[0]).value.id:args[0].to_i),TD::Types::ChatMemberStatus::Banned(banned_until_date:(args[1].to_i>0?Time.now.getutc.to_i+(args[1].to_i*3600):0)))ifchat.id<0# ban @username from current chat [for N hours]
when'/leave'then@telegram.leave_chat(chat.id).then{|result|@xmpp.send_presence(@jid,chat_id,:unsubscribed)}ifchat.type.instance_of?TD::Types::ChatType::Supergrouporchat.type.instance_of?TD::Types::ChatType::BasicGroup# leave current chat
when'/close'then@telegram.close_secret_chat(chat.type.secret_chat_id).then{|result|@xmpp.send_presence(@jid,chat_id,:unsubscribed)}ifchat.type.instance_of?TD::Types::ChatType::Secret# close secret chat
when'/delete'then@telegram.delete_chat_history(chat.id,true).then{|result|@xmpp.send_presence(@jid,chat_id,:unsubscribed)}# delete current chat
when'/search'then@telegram.search_chat_messages(chat.id,0,args[1]||10,query:args[0]||nil,filter:TD::Types::SearchMessagesFilter::Empty.new).value.messages.reverse.eachdo|msg|@xmpp.send_message(@jid,chat_id,self.format_message(nil,nil,nil,msg))end# search messages within current chat
when'/history'then@telegram.get_chat_history(chat.id,0,0,args[0]||10).value.messages.reverse.eachdo|msg|@xmpp.send_message(@jid,chat_id,self.format_message(nil,nil,msg))end# get latest entries from history
when'/d'then@telegram.delete_messages(chat.id,@telegram.search_chat_messages(chat.id,0,args[0]||1,sender_user_id:@me.id,filter:TD::Types::SearchMessagesFilter::Empty.new).value.messages.map(&:id),true)# delete last message(s)
when'/s'then@telegram.search_chat_messages(chat.id,0,1,sender_user_id:@me.id,filter:TD::Types::SearchMessagesFilter::Empty.new).value.messages.eachdo|msg|self.process_outgoing_message(chat.id,msg.content.text.text.to_s.gsub(Regexp.new(args[0]),args[1..-1].join(' ')),msg.id)end# edit last message
when'/supergroup'then@telegram.create_new_supergroup_chat(args[0],args[1..-1].join(' '),is_channel:false)# create new supergroup
when'/channel'then@telegram.create_new_supergroup_chat(args[0],args[1..-1].join(' '),is_channel:true)# create new channel
when'/secret'then@telegram.create_new_secret_chat(chat.id)ifuser# create secret chat with current user
when'/group'then@telegram.create_new_basic_group_chat(chat.id,args[0])ifchat.id>0# create group chat with current user
when'/block'then@telegram.block_user(chat.id)ifchat.id>0# blacklists current user
when'/unblock'then@telegram.unblock_user(chat.id)ifchat.id>0# unblacklists current user
when'/invite'then@telegram.add_chat_member(chat.id,(args[0].to_i==0?@telegram.search_public_chat(args[0]).value.id:args[0].to_i))ifchat.id<0# invite @username to current groupchat
when'/kick'then@telegram.set_chat_member_status(chat.id,(args[0].to_i==0?@telegram.search_public_chat(args[0]).value.id:args[0].to_i))ifchat.id<0# kick @username from current group chat
when'/ban'then@telegram.set_chat_member_status(chat.id,(args[0].to_i==0?@telegram.search_public_chat(args[0]).value.id:args[0].to_i),TD::Types::ChatMemberStatus::Banned(banned_until_date:(args[1].to_i>0?Time.now.getutc.to_i+(args[1].to_i*3600):0)))ifchat.id<0# ban @username from current chat [for N hours]
when'/leave'then@telegram.leave_chat(chat.id).then{@xmpp.send_presence(@jid,chat_id,:unsubscribed)}ifchat.type.instance_of?TD::Types::ChatType::Supergrouporchat.type.instance_of?TD::Types::ChatType::BasicGroup# leave current chat
when'/close'then@telegram.close_secret_chat(chat.type.secret_chat_id).then{@xmpp.send_presence(@jid,chat_id,:unsubscribed)}ifchat.type.instance_of?TD::Types::ChatType::Secret# close secret chat
when'/delete'then@telegram.delete_chat_history(chat.id,true).then{@xmpp.send_presence(@jid,chat_id,:unsubscribed)}# delete current chat
when'/search'then@telegram.search_chat_messages(chat.id,0,args[1]||10,query:args[0]||nil,filter:TD::Types::SearchMessagesFilter::Empty.new).value.messages.reverse.eachdo|msg|@xmpp.send_message(@jid,chat_id,self.format_message(nil,nil,nil,msg))end# search messages within current chat
when'/history'then@telegram.get_chat_history(chat.id,0,0,args[0]||10).value.messages.reverse.eachdo|msg|@xmpp.send_message(@jid,chat_id,self.format_message(nil,nil,msg))end# get latest entries from history
when'/members'then@telegram.search_chat_members(chat.id,9999,query:args[0],filter:TD::Types::ChatMembersFilter::Members.new).then{|members|@xmpp.send_message(@jid,chat_id,(members.members.mapdo|user|"%s | role: %s"%[self.fmt_chat(user.user_id),user.status.class]end).join("\n"))}# members list (for admins)