module ConfirmationCommands

Public Instance Methods

confirm_all() click to toggle source
# File lib/Confirmation.rb, line 16
def confirm_all()
  send_array_confirmation(get_confirmations())
end
send_trade_allow_request(trade_id) click to toggle source
# File lib/Confirmation.rb, line 10
def send_trade_allow_request(trade_id) ###FIRST
      confirmations = get_confirmations() ###second
      confirmationhash = select_trade_offer_confirmation(trade_id, confirmations) #seventh
      send_confirmation(confirmationhash) #tenth
end

Private Instance Methods

create_confirmation_params(tag_string) click to toggle source
# File lib/Confirmation.rb, line 34
def create_confirmation_params(tag_string) #FOURTH FINISHED
      timestamp = Time.new.to_i
      confirmation_key = generate_confirmation_key(tag_string,timestamp) # FIFTH other  FILE FINISHED
      android_id = generate_device_id() # SIXTH other  FILE FINISHED
      res = {
            'p' => android_id,
            'a' => @steamid,
            'k' => confirmation_key,
            't' => timestamp,
            'm' => 'android',
            'tag' => tag_string
      }
      return res
end
fetch_confirmation_details_page(hash) click to toggle source
# File lib/Confirmation.rb, line 78
def fetch_confirmation_details_page(hash) ##eigth
      var = hash['id']
      tag = 'details' + var
      params = create_confirmation_params(tag) ## EXISTS
      response = @session.get("https://steamcommunity.com/mobileconf/details/#{var}", params)
      return JSON.parse(response.content)["html"]
end
fetch_confirmations_page() click to toggle source
# File lib/Confirmation.rb, line 49
def fetch_confirmations_page() ## THIRD FINISHED
      tag = 'conf'
      params =   create_confirmation_params(tag) ## FOURTH FIISHED
      headers = {'X-Requested-With' => 'com.valvesoftware.android.steam.community'}

      no = nil
      response = @session.get('https://steamcommunity.com/mobileconf/conf', params, no, headers)
      html = response.content
      if html.include?('Steam Guard Mobile Authenticator is providing incorrect Steam Guard codes.')
            raise("identity secret: #{@identity_secret} is incorrect")
      end
      return html
end
get_confirmation_trade_offer_id(html) click to toggle source
# File lib/Confirmation.rb, line 86
def get_confirmation_trade_offer_id(html) ## nineth
      full_offer_id = Nokogiri::HTML(html).css('.tradeoffer')[0]['id']
      return full_offer_id.split('_', 2)[1]
end
get_confirmations() click to toggle source
# File lib/Confirmation.rb, line 20
def get_confirmations() ##SECOND
      confirmations = []
      confirmations_page = fetch_confirmations_page()
      Nokogiri::HTML(confirmations_page).css('#mobileconf_list').css('.mobileconf_list_entry').each { |trade|
            add = {
                  'id' => trade['id'].sub('conf', ''),
                  'data_confid' => trade['data-confid'],
                  'data_key' => trade['data-key']
            }
            confirmations <<  add
      }
      return confirmations
end
select_trade_offer_confirmation(trade_id, confirmations) click to toggle source
# File lib/Confirmation.rb, line 66
def select_trade_offer_confirmation(trade_id, confirmations) ## seventh

      confirmations.each { |confirmhash|
            confirmation_details_page = fetch_confirmation_details_page(confirmhash) ## eighteth
            confirm_id = get_confirmation_trade_offer_id(confirmation_details_page) ## nineth
            if confirm_id == trade_id
                  return confirmhash
            end
      }
      raise("Could not find the offer to confirm")
end
send_array_confirmation(conf_array) click to toggle source
# File lib/Confirmation.rb, line 108
def send_array_confirmation(conf_array)
  i = 0
  conf_array.each { |confirmationhash|
    begin
      tag = 'allow'
      params = create_confirmation_params('conf') ## EXISTS
      params['op'] = tag
      params['cid'] = confirmationhash["data_confid"]
      params['ck'] = confirmationhash["data_key"]
      headers = {'X-Requested-With' => 'XMLHttpRequest'}
      #@session.pre_connect_hooks << lambda do |agent, request|
      #     request['X-Requested-With'] = 'XMLHttpRequest'
      #end
      no = nil
      page = @session.get('https://steamcommunity.com/mobileconf/ajaxop', params,no ,headers)
      i = i + 1
      puts "confirmed #{i} / #{cof_array.length}"
    rescue
      sleep(2)
    end
  }

end
send_confirmation(confirmationhash) click to toggle source
# File lib/Confirmation.rb, line 91
def send_confirmation(confirmationhash) ## tenth
      tag = 'allow'
      params = create_confirmation_params('conf') ## EXISTS
      params['op'] = tag
      params['cid'] = confirmationhash["data_confid"]
      params['ck'] = confirmationhash["data_key"]
      headers = {'X-Requested-With' => 'XMLHttpRequest'}
      #@session.pre_connect_hooks << lambda do |agent, request|
      #     request['X-Requested-With'] = 'XMLHttpRequest'
      #end
      no = nil
      page = @session.get('https://steamcommunity.com/mobileconf/ajaxop', params,no ,headers)
      return JSON.parse(page.content)
end