1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/usr/bin/env ruby
require "bundler/inline"
gemfile do
source "https://rubygems.org"
gem "capybara"
gem "pry"
gem "selenium-webdriver"
end
def suppress_warnings
original_verbosity = $VERBOSE
$VERBOSE = nil
yield
$VERBOSE = original_verbosity
end
require "capybara"
Capybara.default_driver = :selenium
require "selenium/webdriver"
Selenium::WebDriver::Firefox::Binary.path = "/Applications/Firefox\ Developer\ Edition.app/Contents/MacOS/firefox"
require "capybara/dsl"
suppress_warnings do
include Capybara::DSL
end
logger = Logger.new(STDOUT)
logger.level = Logger::INFO
url = "https://seattle.signetic.com/home"
suppress_warnings do
loop do
logger.info("Checking...")
visit url
break unless page.has_content?("No appointments available")
sleep 5*60
end
end
twilio_sid = ENV.fetch("TWILIO_SID")
twilio_token = ENV.fetch("TWILIO_TOKEN")
twilio_from = ENV.fetch("TWILIO_FROM")
twilio_to = ENV.fetch("TWILIO_TO")
`curl -X POST https://api.twilio.com/2010-04-01/Accounts/#{twilio_sid}/Messages.json \
--data-urlencode "Body=#{url}" \
--data-urlencode "From=+#{twilio_from}" \
--data-urlencode "To=+#{twilio_to}" \
-u $TWILIO_SID:$TWILIO_TOKEN`