end
def info(text) do
- "#{text}\tfake\(NULL)\t0\r\n"
+ text = String.replace(text, ~r/[\t\n]/, "")
+
+ String.split(text, "\r")
+ |> Enum.map(fn text ->
+ "i#{text}\tfake\(NULL)\t0\r\n"
+ end)
+ |> Enum.join("")
end
def link(name, selector, type \\ 1) do
"#{type}#{name}\t#{selector}\t#{address}\t#{port}\r\n"
end
- def response("") do
- info("Welcome to #{Keyword.get(@instance, :name, "Pleroma")}!") <>
- link("Public Timeline", "/main/public") <>
- link("Federated Timeline", "/main/all") <> ".\r\n"
- end
-
def render_activities(activities) do
activities
|> Enum.reverse()
|> Enum.map(fn activity ->
user = User.get_cached_by_ap_id(activity.data["actor"])
+ object = activity.data["object"]
+ like_count = object["like_count"] || 0
+ announcement_count = object["announcement_count"] || 0
+
link("Post ##{activity.id} by #{user.nickname}", "/notices/#{activity.id}") <>
- info(HtmlSanitizeEx.strip_tags(activity.data["object"]["content"]))
+ info("#{like_count} likes, #{announcement_count} repeats") <>
+ "\r\n" <>
+ info(
+ HtmlSanitizeEx.strip_tags(
+ String.replace(activity.data["object"]["content"], "<br>", "\r")
+ )
+ )
end)
|> Enum.join("\r\n")
end
+ def response("") do
+ info("Welcome to #{Keyword.get(@instance, :name, "Pleroma")}!") <>
+ link("Public Timeline", "/main/public") <>
+ link("Federated Timeline", "/main/all") <> ".\r\n"
+ end
+
def response("/main/public") do
posts =
ActivityPub.fetch_public_activities(%{"type" => ["Create"], "local_only" => true})