This repository has been archived on 2025-11-02. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
dashboard/jobs/timeline.rb
2022-09-20 00:27:25 +01:00

47 lines
1.2 KiB
Ruby

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