Add dashboard

This commit is contained in:
2022-09-20 00:27:25 +01:00
parent bdfe02f776
commit e689c852e7
96 changed files with 16313 additions and 1 deletions

46
jobs/timeline.rb Normal file
View 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