Skip to content

Instantly share code, notes, and snippets.

@lucianoshl
Last active February 19, 2016 21:03
Show Gist options
  • Save lucianoshl/a7ba578a9c9b67b4aaa9 to your computer and use it in GitHub Desktop.
Save lucianoshl/a7ba578a9c9b67b4aaa9 to your computer and use it in GitHub Desktop.
Kimsufi server buyer
require 'mechanize'
require 'pry-byebug'
require 'json'
require 'colorize'
require 'watir'
require 'nokogiri'
loop do
client = Mechanize.new
variable = (rand*100000).ceil
page = client.get('https://www.kimsufi.com/pt/js/dedicatedAvailability/availability-data.json?'+variable.to_s)
json = JSON.parse(page.body)
server_id = '160sk1' # replace with id server
server = json["availability"].select{|a| a["reference"].include? server_id }.first
is_available = (server["zones"].map{|a| a["availability"]}.uniq - ["unavailable", "unknown"]).size > 0
if (is_available) then
`notify-send kimsufi-available!!!`
browser = Watir::Browser.new
browser.goto "https://www.kimsufi.com/en/order/kimsufi.cgi?hard=#{server_id}&dedicatedQuantity=1"
values = {
firstName: "<name>",
lastName: "<lastName>",
address: "<address>",
zip: "<zip>",
city: "<city>",
mail: "<mail>",
phone: "<phone>",
password: "<password>"
}
browser.link(:id =>"aButtonValidation").when_present.click
browser.link(:id =>"aButtonValidation").when_present.click
browser.link(:id =>"aButtonValidation").when_present.click
browser.radio(:id =>"isNewOrExisting_new").when_present.click
browser.text_field(:id => "textFirstname").set(values[:firstName])
browser.text_field(:id => "textName").set(values[:lastName])
browser.select_list(:id => "session_nicData_country_selectCountries").select_value('BR')
browser.textarea(:id => "textAddress").set(values[:address])
browser.text_field(:id => "textZip").set(values[:zip])
browser.text_field(:id => "textCity").set(values[:city])
browser.text_field(:id => "textEmail").set(values[:mail])
browser.text_field(:id => "textEmailConfirm").set(values[:mail])
browser.text_field(:id => "textPhone").set(values[:phone])
browser.select_list(:id => "session_nicData_language").select_value('pt')
browser.checkbox(:id => 'nicData_checkboxConfirmInfos').when_present.set
browser.radio(:value => 'searchEngine').set
browser.text_field(:name => 'session_nicData_heardOfOvhOther').set("google")
browser.link(:id =>"aButtonValidation").when_present.click
browser.text_field(:id => 'textPassword').set(values[:password])
browser.text_field(:id => 'textPasswordConfirm').set(values[:password])
browser.link(:id =>"aButtonValidation").when_present.click
browser.link(:id =>"aButtonValidation").when_present.click
browser.checkbox(:id => 'acceptAllContracts').when_present.set
browser.link(:id =>"aButtonValidation").when_present.click
puts "#{Time.now} Available".red
abort
else
puts "#{Time.now} Not available".blue
end
sleep(10)
end
source "https://rubygems.org"
gem "mechanize"
gem "colorize"
gem "pry-byebug"
gem "watir"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment