40 lines
944 B
Ruby
Executable file
40 lines
944 B
Ruby
Executable file
#!/usr/bin/env ruby
|
||
# coding: utf-8
|
||
#
|
||
# Send a Lunch Announcement.
|
||
#
|
||
# ENV vars required:
|
||
# - TO - the numbers to send to, comma delimited
|
||
# - FROM - the Twilio number to send from
|
||
# - TWILIO_ACCOUNT_SID - The Twilio Account SID
|
||
# - TWILIO_AUTH_TOKEN - The Twilio secret auth token
|
||
require 'date'
|
||
require 'twilio-ruby'
|
||
require_relative 'lib/lunch_scraper'
|
||
|
||
REQUIRED_ENV = %w(TO FROM TWILIO_ACCOUNT_SID TWILIO_AUTH_TOKEN).freeze
|
||
|
||
REQUIRED_ENV.each do |req|
|
||
raise "Missing ENV var #{req}" if ENV[req].nil?
|
||
end
|
||
|
||
lunch = LunchScraper.new(Date.today)
|
||
menu = lunch.today
|
||
|
||
if menu.count.zero?
|
||
STDERR.puts 'No menu items found.'
|
||
exit 1
|
||
end
|
||
|
||
client = Twilio::REST::Client.new(ENV['TWILIO_ACCOUNT_SID'], ENV['TWILIO_AUTH_TOKEN'])
|
||
|
||
destinations = ENV['TO'].split(',')
|
||
|
||
destinations.each do |to|
|
||
client.messages.create(
|
||
from: ENV['FROM'],
|
||
to: to,
|
||
body: "TODAY'S FOUSE LUNCH MENU:\n\n#{menu.join("\n")}\n\n❤ Lunchbot️️️"
|
||
)
|
||
end
|