Add dashboard
This commit is contained in:
46
jobs/timeline.rb
Normal file
46
jobs/timeline.rb
Normal file
@@ -0,0 +1,46 @@
|
||||
require 'yaml'
|
||||
|
||||
MAX_DAYS_OVERDUE = -20
|
||||
MAX_DAYS_AWAY = 90
|
||||
|
||||
config_file = '/home/me/dashboard/timeline.yml'
|
||||
|
||||
SCHEDULER.every '6h', :first_in => 0 do |job|
|
||||
config = YAML.load_file(config_file)
|
||||
unless config["events"].nil?
|
||||
events = Array.new
|
||||
today = Date.today
|
||||
no_event_today = true
|
||||
config["events"].each do |event|
|
||||
days_away = (event["date"] - today).to_i
|
||||
if (days_away >= 0) && (days_away <= MAX_DAYS_AWAY)
|
||||
events << {
|
||||
name: event["name"],
|
||||
date: event["date"],
|
||||
background: event["background"]
|
||||
}
|
||||
elsif (days_away < 0) && (days_away >= MAX_DAYS_OVERDUE)
|
||||
events << {
|
||||
name: event["name"],
|
||||
date: event["date"],
|
||||
background: event["background"],
|
||||
opacity: 0.5
|
||||
}
|
||||
end
|
||||
|
||||
no_event_today = false if days_away == 0
|
||||
end
|
||||
|
||||
if no_event_today
|
||||
events << {
|
||||
name: "TODAY",
|
||||
date: today.strftime('%a %d %b %Y'),
|
||||
background: "gold"
|
||||
}
|
||||
end
|
||||
File.write("/home/me/dashboard/timeline.log", "events sorted...\n" + events.to_s)
|
||||
send_event("a_timeline", {events: events})
|
||||
else
|
||||
puts "No events found :("
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user