• Operand
  • # (b)ring mi - belles.

gram:op

> ./lib/splash.ex

Lenses
(coming soon!)


defmodule Splash do
  def splashes do
    case File.read("./share/splash.md") do
      {:error, _} -> ""
      {:ok, splashes} ->
        splashes
        |> String.trim
        |> String.split("\n")
        |> Enum.map(&String.trim/1)
        |> Enum.reject(& &1 =~ ~r/^#/ )
    end
  end

  def random do
    splashes() |> Enum.random
  end

  def hourly do
    s = splashes()
    c = DateTime.utc_now |> DateTime.truncate(:second)
    {:ok, dura } = (
      c |> Tox.DateTime.beginning_of_year
      |> Tox.Interval.new(Tox.Period.new!(year: 1)))
    {:ok, seconds } = dura |> Tox.Interval.since_start(c)
    hour = (seconds / 3600) |> round()
    s |> Enum.at(hour |> Integer.mod(s |> length))
  end
end