This commit is contained in:
0x8664b2
2025-07-02 09:33:52 -07:00
parent 028dea3cb8
commit e28f2e0c51
17 changed files with 372 additions and 6 deletions

View File

@@ -0,0 +1,52 @@
require 'http'
class CalendarService
def vacations
Rails.cache.fetch("vacations", expires_in: 5.minutes) do
entries("https://static.nocoda.io/remote.php/dav/calendars/pkamin/593FC5A0-746B-48C7-A57B-3A0315976412/?export", "ff00ff")
end
end
def events
Rails.cache.fetch("events", expires_in: 5.minutes) do
entries("https://static.nocoda.io/remote.php/dav/calendars/pkamin/774BE10B-AEAD-4D20-BF09-9C0FFD135E56/?export", "0000ff")
end
end
def sports
entries("https://static.nocoda.io/remote.php/dav/calendars").map do |entry|
end
end
def entries(url, color)
#
a = HTTP.basic_auth(user: 'pkamin', pass: 'QDH*@8fhWekxwWjeX8MQ3H').get(url).body.to_s
# a = File.read('/Users/pkamin/Desktop/vacation.vcalendar')
b = a.split("\r\n")
events = []
e = nil
b.each do |line|
if line == "BEGIN:VEVENT"
e = Event.new
e.color = color
elsif line == "END:VEVENT"
events << e unless e.nil?
elsif line.start_with?("DTSTART") && ! e.nil?
e.begin_at = DateTime.parse(line.split(":").last)
elsif line.start_with?("DTEND") && ! e.nil?
e.end_at = DateTime.parse(line.split(":").last)
e.end_at = e.end_at - 1.minute
elsif line.start_with?("SUMMARY") && ! e.nil?
e.name = line.split(":").last
end
end
events
end
end

View File

@@ -1,12 +1,16 @@
class Event
attr_reader :begin_at, :end_at
attr_accessor :begin_at, :end_at, :name, :color
def initialize
@begin_at = DateTime.now.beginning_of_day
@end_at = DateTime.now + 1.day
def initialize(begin_at = DateTime.now.beginning_of_day, end_at = DateTime.now.end_of_day)
@begin_at = begin_at
@end_at = end_at
end
def during?(d)
self.begin_at <= d && d <= self.end_at
end
def first_day?(d)
self.begin_at.beginning_of_day <= d && d <= self.begin_at.end_of_day
end
end