Remove timex
This commit is contained in:
parent
10756907dc
commit
f43b4bd038
3 changed files with 60 additions and 47 deletions
|
@ -1,77 +1,92 @@
|
|||
defmodule NullaWeb.UserHTML do
|
||||
defmodule NullaWeb.ActorHTML do
|
||||
use NullaWeb, :html
|
||||
|
||||
embed_templates "templates/user/*"
|
||||
embed_templates "templates/actor/*"
|
||||
|
||||
def format_birthdate(date) do
|
||||
formatted = Date.to_string(date) |> String.replace("-", "/")
|
||||
age = Timex.diff(Timex.today(), date, :years)
|
||||
|
||||
today = Date.utc_today()
|
||||
|
||||
age =
|
||||
today.year - date.year -
|
||||
if {today.month, today.day} < {date.month, date.day}, do: 1, else: 0
|
||||
|
||||
"#{formatted} (#{age} years old)"
|
||||
end
|
||||
|
||||
def format_registration_date(date) do
|
||||
now = Timex.now()
|
||||
now = Date.utc_today()
|
||||
formatted = Date.to_string(date) |> String.replace("-", "/")
|
||||
|
||||
diff = Timex.diff(now, date, :days)
|
||||
diff_days = Date.diff(now, date)
|
||||
|
||||
relative =
|
||||
cond do
|
||||
diff == 0 ->
|
||||
"today"
|
||||
cond do
|
||||
diff_days == 0 ->
|
||||
"#{formatted} (today)"
|
||||
|
||||
diff == 1 ->
|
||||
"1 day ago"
|
||||
diff_days == 1 ->
|
||||
"#{formatted} (1 day ago)"
|
||||
|
||||
diff < 30 ->
|
||||
"#{diff} days ago"
|
||||
diff_days < 30 ->
|
||||
"#{formatted} (#{diff_days} days ago)"
|
||||
|
||||
diff < 365 ->
|
||||
months = Timex.diff(now, date, :months)
|
||||
if months == 1, do: "1 month ago", else: "#{months} months ago"
|
||||
diff_days < 365 ->
|
||||
year_diff = now.year - date.year
|
||||
month_diff = now.month - date.month
|
||||
day_correction = if now.day < date.day, do: -1, else: 0
|
||||
months = year_diff * 12 + month_diff + day_correction
|
||||
if months == 1 do
|
||||
"#{formatted} (1 month ago)"
|
||||
else
|
||||
"#{formatted} (#{months} months ago)"
|
||||
end
|
||||
|
||||
true ->
|
||||
years = Timex.diff(now, date, :years)
|
||||
if years == 1, do: "1 year ago", else: "#{years} years ago"
|
||||
end
|
||||
|
||||
"#{formatted} (#{relative})"
|
||||
true ->
|
||||
year_diff = now.year - date.year
|
||||
years = if {now.month, now.day} < {date.month, date.day}, do: year_diff - 1, else: year_diff
|
||||
if years == 1 do
|
||||
"#{formatted} (1 year ago)"
|
||||
else
|
||||
"#{formatted} (#{years} years ago)"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def format_note_datetime(datetime) do
|
||||
Timex.format!(datetime, "{0D} {Mfull} {YYYY}, {h24}:{m}", :strftime)
|
||||
Calendar.strftime(datetime, "%d %B %Y, %H:%M")
|
||||
end
|
||||
|
||||
def format_note_datetime_diff(datetime) do
|
||||
now = Timex.now()
|
||||
diff = Timex.diff(now, datetime, :seconds)
|
||||
now = DateTime.utc_now()
|
||||
diff_seconds = DateTime.diff(now, datetime)
|
||||
|
||||
cond do
|
||||
diff < 60 ->
|
||||
diff_seconds < 60 ->
|
||||
"now"
|
||||
|
||||
diff < 3600 ->
|
||||
minutes = div(diff, 60)
|
||||
diff_seconds < 3600 ->
|
||||
minutes = div(diff_seconds, 60)
|
||||
"#{minutes}m ago"
|
||||
|
||||
diff < 86400 ->
|
||||
hours = div(diff, 3600)
|
||||
diff_seconds < 86400 ->
|
||||
hours = div(diff_seconds, 3600)
|
||||
"#{hours}h ago"
|
||||
|
||||
diff < 518_400 ->
|
||||
days = div(diff, 86400)
|
||||
diff_seconds < 604_800 ->
|
||||
days = div(diff_seconds, 86400)
|
||||
"#{days}d ago"
|
||||
|
||||
diff < 2_419_200 ->
|
||||
weeks = div(diff, 604_800)
|
||||
diff_seconds < 2_592_000 ->
|
||||
weeks = div(diff_seconds, 604_800)
|
||||
"#{weeks}w ago"
|
||||
|
||||
diff < 28_512_000 ->
|
||||
months = Timex.diff(now, datetime, :months)
|
||||
diff_seconds < 31_536_000 ->
|
||||
months = div(diff_seconds, 2_592_000)
|
||||
"#{months}mo ago"
|
||||
|
||||
true ->
|
||||
years = Timex.diff(now, datetime, :years)
|
||||
years = div(diff_seconds, 31_536_000)
|
||||
"#{years}y ago"
|
||||
end
|
||||
end
|
||||
|
|
|
@ -24,13 +24,12 @@ defmodule NullaWeb.ActorController do
|
|||
|> send_resp(200, Jason.encode!(ActivityPub.actor(actor)))
|
||||
else
|
||||
notes = Note.get_latest_notes(actor.id)
|
||||
following = Utils.count_following_by_username!(actor.preferredUsername)
|
||||
followers = Utils.count_followers_by_username!(actor.preferredUsername)
|
||||
following = 0
|
||||
followers = 0
|
||||
|
||||
render(
|
||||
conn,
|
||||
:show,
|
||||
domain: domain,
|
||||
actor: actor,
|
||||
notes: notes,
|
||||
following: following,
|
||||
|
|
1
mix.exs
1
mix.exs
|
@ -43,7 +43,6 @@ defmodule Nulla.MixProject do
|
|||
{:phoenix_live_dashboard, "~> 0.8.3"},
|
||||
{:esbuild, "~> 0.8", runtime: Mix.env() == :dev},
|
||||
{:tailwind, "~> 0.2.0", runtime: Mix.env() == :dev},
|
||||
{:timex, "~> 3.7"},
|
||||
{:heroicons,
|
||||
github: "tailwindlabs/heroicons",
|
||||
tag: "v2.1.1",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue