Skip to content

Instantly share code, notes, and snippets.

@nicolasleander
Last active November 14, 2015 14:55
Show Gist options
  • Select an option

  • Save nicolasleander/f3a947d7999a81335eb0 to your computer and use it in GitHub Desktop.

Select an option

Save nicolasleander/f3a947d7999a81335eb0 to your computer and use it in GitHub Desktop.

Revisions

  1. nicolasleander revised this gist Nov 14, 2015. 1 changed file with 27 additions and 7 deletions.
    34 changes: 27 additions & 7 deletions skydivedubai.rb
    Original file line number Diff line number Diff line change
    @@ -1,17 +1,37 @@
    require 'open-uri'
    require 'pry'
    require 'nokogiri'
    require 'logger'
    require 'twilio-ruby'

    # put your own credentials here
    account_sid = 'xxxx'
    auth_token = 'xxxxx'

    # set up a client to talk to the Twilio REST API
    @client = Twilio::REST::Client.new account_sid, auth_token

    url = 'https://bookings.skydivedubai.ae/Slot/GetSlotsForDate'
    logger = Logger.new(STDOUT)

    logger.formatter = proc do |severity, time, progname, msg|
    "#{time.utc.iso8601(3)} #{::Process.pid} #{progname} #{severity}: #{msg}\n"
    end

    loop do
    page = Nokogiri::HTML(open(url))
    available_dates = page.to_s.match('var availableDates = (?<yo>\S+)')
    if eval(available_dates[:yo]).map { |x| x.split('-')[1]}.uniq.include?("11") # there's something for 11 month
    puts available_dates
    `say hey book it man`
    available_dates = page.to_s.match('var availableDates = (?<yo>\S+)')[:yo]
    available_dates_array = eval(available_dates)
    unless available_dates_array.map { |x| x.split('-') }.select{ |x| x[0].to_i.between?(22, 27) && x[1] == '11'}.empty?
    logger.info available_dates
    logger.info 'GET IT!'
    @send ||= @client.messages.create(
    from: '+xxxxxxx',
    to: '+xxxxxxx',
    body: 'Book the Jump, maaaan'
    ) if @send.nil?
    else
    puts available_dates
    logger.info available_dates
    end
    sleep 60 * 15 # every 15 min
    end
    sleep 30
    end
  2. nicolasleander revised this gist Nov 12, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion skydivedubai.rb
    Original file line number Diff line number Diff line change
    @@ -13,5 +13,5 @@
    else
    puts available_dates
    end
    sleep 30
    sleep 60 * 15 # every 15 min
    end
  3. nicolasleander created this gist Nov 12, 2015.
    17 changes: 17 additions & 0 deletions skydivedubai.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,17 @@
    require 'open-uri'
    require 'pry'
    require 'nokogiri'

    url = 'https://bookings.skydivedubai.ae/Slot/GetSlotsForDate'

    loop do
    page = Nokogiri::HTML(open(url))
    available_dates = page.to_s.match('var availableDates = (?<yo>\S+)')
    if eval(available_dates[:yo]).map { |x| x.split('-')[1]}.uniq.include?("11") # there's something for 11 month
    puts available_dates
    `say hey book it man`
    else
    puts available_dates
    end
    sleep 30
    end