Initial commit
This commit is contained in:
commit
11b6b4f110
4 changed files with 100 additions and 0 deletions
4
Gemfile
Normal file
4
Gemfile
Normal file
|
@ -0,0 +1,4 @@
|
|||
source 'https://rubygems.org'
|
||||
|
||||
gem 'nokogiri'
|
||||
gem 'twilio-ruby', '~> 4.11.1'
|
23
Gemfile.lock
Normal file
23
Gemfile.lock
Normal file
|
@ -0,0 +1,23 @@
|
|||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
builder (3.2.2)
|
||||
jwt (1.5.6)
|
||||
mini_portile2 (2.1.0)
|
||||
multi_json (1.12.1)
|
||||
nokogiri (1.6.8.1)
|
||||
mini_portile2 (~> 2.1.0)
|
||||
twilio-ruby (4.11.1)
|
||||
builder (>= 2.1.2)
|
||||
jwt (~> 1.0)
|
||||
multi_json (>= 1.3.0)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
nokogiri
|
||||
twilio-ruby (~> 4.11.1)
|
||||
|
||||
BUNDLED WITH
|
||||
1.13.5
|
27
README.md
Normal file
27
README.md
Normal file
|
@ -0,0 +1,27 @@
|
|||
# Ruby User Group, 08 Nov 2016
|
||||
|
||||
Text alerting on a website content change
|
||||
|
||||
* web request
|
||||
|
||||
require 'net/http'
|
||||
uri = URI('https://github.com/chrisvfritz')
|
||||
content = Net::HTTP.get(uri)
|
||||
|
||||
* parse content
|
||||
|
||||
require 'nokogiri'
|
||||
parsed = Nokogiri::HTML(content)
|
||||
chris\_face = parse.css('.avatar').attr('src').value
|
||||
|
||||
* ??? (process)
|
||||
|
||||
* send text
|
||||
|
||||
require 'twilio-ruby'
|
||||
client = Twilio::REST::Client.new(account\_sid, auth\_token)
|
||||
client.messages.create(
|
||||
from: from\_number,
|
||||
to: notification\_number,
|
||||
body: 'Repos changed'
|
||||
)
|
46
chris-stalker.rb
Normal file
46
chris-stalker.rb
Normal file
|
@ -0,0 +1,46 @@
|
|||
#!/bin/ruby
|
||||
|
||||
require 'net/http'
|
||||
require 'nokogiri'
|
||||
require 'twilio-ruby'
|
||||
|
||||
WAIT_TIME = 15
|
||||
account_sid = 'TWILIO_ACCOUNT'
|
||||
auth_token = 'TWILIO_TOKEN'
|
||||
|
||||
from_number = '+15555555555'
|
||||
notification_number = '+15555555555'
|
||||
|
||||
client = Twilio::REST::Client.new(account_sid, auth_token)
|
||||
|
||||
last_time = 0
|
||||
previous_repos = []
|
||||
while true do
|
||||
# web request
|
||||
uri = URI('https://github.com/chrisvfritz')
|
||||
content = Net::HTTP.get(uri)
|
||||
|
||||
# parse content
|
||||
parsed = Nokogiri::HTML(content)
|
||||
repos = parsed.css('.pinned-repo-item-content .d-block a').map do |r|
|
||||
r.text.strip
|
||||
end
|
||||
|
||||
# ??? (process)
|
||||
if repos - previous_repos != []
|
||||
time = Time.now.to_i
|
||||
if time_past(time, last_time)
|
||||
# send text
|
||||
client.messages.create(
|
||||
from: from_number,
|
||||
to: notification_number,
|
||||
body: 'Repos changed'
|
||||
)
|
||||
last_time = time
|
||||
end
|
||||
|
||||
previous_repos = repos
|
||||
end
|
||||
|
||||
sleep(2)
|
||||
end
|
Loading…
Reference in a new issue