nikki.rb
日記のテンプレートを Ruby で雑に生成している。
code:nikki.rb
require "date"
require "json"
require "open-uri"
require "uri"
arg = ARGV.shift
date = arg ? Date.parse(arg) : Date.today
next_title = (date + 1).strftime("%Y-%m-%d %a : (書きかけ)")
title = date.strftime("%Y-%m-%d %a : (書きかけ)")
year_month_day = date.strftime("%Y-%m-%d")
year = date.strftime("%Y")
year_month = date.strftime("%Y年%m月")
month_day = date.strftime("%m月%d日")
week_number = "WN" + date.strftime("%V")
june2x = date.strftime("%m%d").start_with?("062") ? "\njune2X 週間。\n" : nil
f13 = date.friday? && date.day == 13 ? "Friday the 13th\n" : nil
good_meat = date.strftime("%m%d") == "1129" ? "いい肉の日\n" : nil
n_years_ago =
2019.upto(year.to_i - 1).
map { |y| Date.parse(date.strftime("#{y}-%m-%d")) }.
select { |d| d >= Date.new(2019, 8, 23) }.
map { |d| d.strftime("%Y-%m-%d の日記を眺めてきた。") }.
join("\n")
headers =
%wハイライト 生活 伸びしろ 健康 ウェブログ 漫画 エンタメ.
map { |item| "今日の#{item}"}.
join("\n")
url = "https://scrapbox.io/api/pages/june29/#{date - 1}"
diary = JSON.parse(URI.open(url).read)
prev_title =
diary.dig("relatedPages", "links1hop").
find { |page| page.dig("title").match(Regexp.compile((date - 1).strftime("%Y-%m-%d %a : "))) }.
dig("title")
puts <<~STRING
#{title}
##{month_day} ##{year}-#{week_number} ##{week_number} ##{year_month_day} ##{year_month}
#{june2x}#{f13}#{good_meat}
#{headers}
今日のツイート
@june29 の #{date} のツイート
今日の n 年前
#{n_years_ago}
ナビ
前日 : #{prev_title}
翌日 : #{next_title}
#日記
https://api.june29.jp/nikki/#{date}
STRING