X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fweb%2Ftwitter_api%2Futils.ex;h=2c3507dfbd6936158b29650c9edf25164fa81e3b;hb=25c733f4022f171a69cff9badfa8d625a3ad5b6b;hp=6f5c9f72722afac75f77432026c449b89a456c6c;hpb=9033bfffd260968088648bf321db23ee94778a14;p=akkoma diff --git a/lib/pleroma/web/twitter_api/utils.ex b/lib/pleroma/web/twitter_api/utils.ex index 6f5c9f727..2c3507dfb 100644 --- a/lib/pleroma/web/twitter_api/utils.ex +++ b/lib/pleroma/web/twitter_api/utils.ex @@ -1,6 +1,7 @@ defmodule Pleroma.Web.TwitterAPI.Utils do alias Pleroma.{Repo, Object, Formatter, User, Activity} alias Pleroma.Web.ActivityPub.Utils + alias Calendar.Strftime def attachments_from_ids(ids) do Enum.map(ids || [], fn (media_id) -> @@ -11,16 +12,16 @@ defmodule Pleroma.Web.TwitterAPI.Utils do def add_attachments(text, attachments) do attachment_text = Enum.map(attachments, fn (%{"url" => [%{"href" => href} | _]}) -> - "#{href}" + "#{Path.basename(href)}" _ -> "" end) - Enum.join([text | attachment_text], "
") + Enum.join([text | attachment_text], "
\n") end def format_input(text, mentions) do HtmlSanitizeEx.strip_tags(text) |> Formatter.linkify - |> String.replace("\n", "
") + |> String.replace("\n", "
\n") |> add_user_links(mentions) end @@ -38,7 +39,8 @@ defmodule Pleroma.Web.TwitterAPI.Utils do end) Enum.reduce(mentions, step_one, fn ({match, %User{ap_id: ap_id}, uuid}, text) -> - String.replace(text, uuid, "#{match}") + short_match = String.split(match, "@") |> tl() |> hd() + String.replace(text, uuid, "@#{short_match}") end) end @@ -51,14 +53,16 @@ defmodule Pleroma.Web.TwitterAPI.Utils do def make_context(%Activity{data: %{"context" => context}}), do: context def make_context(_), do: Utils.generate_context_id - def make_note_data(actor, to, context, content_html, attachments, inReplyTo) do + # TODO: Move this to a more fitting space + def make_note_data(actor, to, context, content_html, attachments, inReplyTo, tags) do object = %{ "type" => "Note", "to" => to, "content" => content_html, "context" => context, "attachment" => attachments, - "actor" => actor + "actor" => actor, + "tag" => tags |> Enum.map(fn ({_, tag}) -> tag end) } if inReplyTo do @@ -69,4 +73,20 @@ defmodule Pleroma.Web.TwitterAPI.Utils do object end end + + def format_naive_asctime(date) do + date |> DateTime.from_naive!("Etc/UTC") |> format_asctime + end + + def format_asctime(date) do + Strftime.strftime!(date, "%a %b %d %H:%M:%S %z %Y") + end + + def date_to_asctime(date) do + with {:ok, date, _offset} <- date |> DateTime.from_iso8601 do + format_asctime(date) + else _e -> + "" + end + end end