add the new timeliney view, start saving some of the skeets that come over the wire
Bobby Grayson 2 weeks ago 4 files (+28, -4)
MODIFIED
lib/blog/content.ex
MODIFIED
lib/blog/content.ex
@@ -9,6 +9,7 @@def list_posts doFile.ls!(@posts_dir)|> Enum.map(&parse_post/1)+ |> Enum.sort_by(& &1.written_on, {:desc, Date})enddefp parse_post(filename) do@@ -16,8 +17,21 @@ content = File.read!(@posts_dir <> filename)%{title: parse_title(content),tags: parse_tags(content),- content: content+ content: content,+ written_on: parse_date_from_filename(filename),+ slug: Path.basename(filename, ".md")}+ end++ defp parse_date_from_filename(filename) do+ case Regex.run(~r/(\d{4}-\d{2}-\d{2})/, filename) do+ [_, date] ->+ {:ok, date} = Date.from_iso8601(date)+ date+ nil ->+ {:ok, stat} = File.stat(@posts_dir <> filename)+ NaiveDateTime.to_date(stat.mtime)+ endenddefp parse_title(content) do
MODIFIED
lib/blog_web/router.ex
MODIFIED
lib/blog_web/router.ex
@@ -22,6 +22,7 @@ live "/post/:slug", PostLivelive "/grid", GridLive, :indexlive "/muenster", MuensterLivelive "/faketweets", FakeTweetsLive+ live "/vim", VimTweetsLiveend# Other scopes may use custom stacks.
MODIFIED
lib/bluesky_hose.ex
MODIFIED
lib/bluesky_hose.ex
@@ -8,7 +8,7 @@ def start_link(opts \\ []) doWebSockex.start_link("wss://bsky-relay.c.theo.io/subscribe?wantedCollections=app.bsky.feed.post", __MODULE__, :fake_state, opts)end- def handle_connect(_conn, state) do+ def handle_connect(_conn, _state) doLogger.info("Connected!")IO.puts("#{DateTime.utc_now}"){:ok, 0}@@ -18,11 +18,20 @@ def handle_frame({:text, msg}, state) domsg = Jason.decode!(msg)case msg do%{"commit" => %{"record" => %{"text" => skeet}}} = msg ->+ # IO.puts(skeet)++ if rem(state, 1200) == 0 do+ # save every 3600th message+ Logger.info("Saving skeet #{state}")+ %Skeet{}+ |> Skeet.changeset(%{skeet: skeet})+ |> Repo.insert()+ endcase String.contains?(String.downcase(skeet), "muenster") dotrue ->IO.puts("Got cheese skeet\n\n\n\n#{skeet}")- # Persist the skeet+ # Persist the skeet, it doesnt matter if its a duplicate cuz we have a unique constraint%Skeet{}|> Skeet.changeset(%{skeet: skeet})|> Repo.insert()
@@ -8,4 +8,4 @@timestamps()endend-end+end