pleroma/lib/pleroma/web/static_fe/static_fe_view.ex
2022-11-18 22:55:35 +01:00

68 lines
1.9 KiB
Elixir

# Pleroma: A lightweight social networking server
# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.StaticFE.StaticFEView do
use Pleroma.Web, :view
alias Calendar.Strftime
alias Pleroma.Emoji.Formatter
alias Pleroma.User
alias Pleroma.Web.Endpoint
alias Pleroma.Web.Gettext
alias Pleroma.Web.MediaProxy
alias Pleroma.Web.Metadata.Utils
alias Pleroma.Web.Router.Helpers
use Phoenix.HTML
@media_types ["image", "audio", "video"]
def fetch_media_type(%{"mediaType" => mediaType}) do
Utils.fetch_media_type(@media_types, mediaType)
end
def time_ago(date) do
{:ok, date, _} = DateTime.from_iso8601(date)
{:ok, now} = DateTime.now("Etc/UTC")
years = now.year - date.year
months = now.month - date.month
days = now.day - date.day
hours = now.hour - date.hour
minutes = now.minute - date.minute
seconds = now.second - date.second
cond do
years > 1 -> to_string(years) <> " years ago"
years > 0 -> "1 year ago"
months > 1 -> to_string(months) <> " months ago"
months > 0 -> "1 month ago"
days > 13 -> to_string(trunc(days / 7)) <> " weeks ago"
days > 6 -> "1 week ago"
days > 1 -> to_string(days) <> " days ago"
days > 0 -> "1 day ago"
hours > 1 -> to_string(hours) <> " hours ago"
hours > 0 -> "1 hour ago"
minutes > 1 -> to_string(minutes) <> " minutes ago"
minutes > 0 -> "1 minute ago"
seconds > 1 -> to_string(seconds) <> " seconds ago"
seconds > 0 -> "1 second ago"
true -> "now"
end
end
def format_date(date) do
{:ok, date, _} = DateTime.from_iso8601(date)
Strftime.strftime!(date, "%Y/%m/%d %l:%M:%S %p UTC")
end
def instance_name, do: Pleroma.Config.get([:instance, :name], "Akkoma")
def open_content? do
Pleroma.Config.get(
[:frontend_configurations, :collapse_message_with_subjects],
false
)
end
end