Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. # coding: utf-8
  2. require 'json'
  3. require 'time'
  4. require 'digest/md5'
  5.  
  6. srand(0)
  7.  
  8. data = JSON.load(open("#{__dir__}/checkins.json").read)
  9. output_file = "#{__dir__}/checkins.ics"
  10.  
  11. open(output_file, 'w'){|f|
  12.  
  13. header = <<"EOS"
  14. BEGIN:VCALENDAR
  15. PRODID: 4sq checkins
  16. VERSION:2.0
  17. CALSCALE:GREGORIAN
  18. METHOD:PUBLISH
  19. X-WR-CALNAME:y_benjo
  20. X-WR-TIMEZONE:Asia/Tokyo
  21. BEGIN:VTIMEZONE
  22. TZID:Asia/Tokyo
  23. X-LIC-LOCATION:Asia/Tokyo
  24. BEGIN:STANDARD
  25. TZOFFSETFROM:+0900
  26. TZOFFSETTO:+0900
  27. TZNAME:JST
  28. DTSTART:19700101T000000
  29. END:STANDARD
  30. END:VTIMEZONE
  31. EOS
  32.  
  33. f.puts header
  34.  
  35. data['items'].each do |elem|
  36. next if elem['venue'].nil?
  37.  
  38. text = elem['shout']
  39. text.gsub!(/\n/, '') unless text.nil?
  40. poi = elem['venue']['name']
  41. timestamp = elem['createdAt'].to_i
  42. t = Time.at(timestamp)
  43. t_str = t.gmtime.strftime("%Y%m%dT%H%M00Z")
  44.  
  45. f.puts 'BEGIN:VEVENT'
  46. f.puts "DTSTART:#{t_str}"
  47. f.puts "DTEND:#{t_str}"
  48. f.puts "DTSTAMP:#{t_str}"
  49.  
  50. # generate random UID
  51. uid = Digest::MD5.hexdigest(rand().to_s)[0...26] + '@google.com'
  52. f.puts "UID:#{uid}"
  53. f.puts "CREATED:#{t_str}"
  54. f.puts "DESCRIPTION:#{text}"
  55. f.puts "LAST-MODIFIED:#{t_str}"
  56. f.puts 'LOCATION:'
  57. f.puts 'SEQUENCE:0'
  58. f.puts 'STATUS:CONFIRMED'
  59. f.puts "SUMMARY:@ #{poi}"
  60. f.puts 'TRANSP:OPAQUE'
  61. f.puts 'END:VEVENT'
  62. end
  63.  
  64. f.puts 'END:VCALENDAR'
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement