From 171ef33cbbdd96f2fb7c893be899f7e13c64a449 Mon Sep 17 00:00:00 2001
From: Roger Braun <roger@rogerbraun.net>
Date: Mon, 28 Aug 2017 19:17:38 +0200
Subject: [PATCH] More sensible attachment names.

---
 lib/pleroma/web/twitter_api/utils.ex            | 11 ++++++++++-
 test/web/twitter_api/twitter_api_utils_test.exs |  6 ++++--
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/lib/pleroma/web/twitter_api/utils.ex b/lib/pleroma/web/twitter_api/utils.ex
index cd7e04ca1..055588031 100644
--- a/lib/pleroma/web/twitter_api/utils.ex
+++ b/lib/pleroma/web/twitter_api/utils.ex
@@ -9,10 +9,19 @@ defmodule Pleroma.Web.TwitterAPI.Utils do
     end)
   end
 
+  defp shortname(name) do
+    if String.length(name) < 30 do
+      name
+    else
+      String.slice(name, 0..30) <> "…"
+    end
+  end
+
   def add_attachments(text, attachments) do
     attachment_text = Enum.map(attachments, fn
       (%{"url" => [%{"href" => href} | _]}) ->
-        "<a href=\"#{href}\" class='attachment'>#{Path.basename(href)}</a>"
+        name = URI.decode(Path.basename(href))
+        "<a href=\"#{href}\" class='attachment'>#{shortname(name)}</a>"
       _ -> ""
     end)
     Enum.join([text | attachment_text], "<br>\n")
diff --git a/test/web/twitter_api/twitter_api_utils_test.exs b/test/web/twitter_api/twitter_api_utils_test.exs
index 49818afed..ff03414d6 100644
--- a/test/web/twitter_api/twitter_api_utils_test.exs
+++ b/test/web/twitter_api/twitter_api_utils_test.exs
@@ -3,12 +3,14 @@ defmodule Pleroma.Web.TwitterAPI.UtilsTest do
   use Pleroma.DataCase
 
   test "it adds attachment links to a given text and attachment set" do
+    name = "Sakura%20Mana%20%E2%80%93%20Turned%20on%20by%20a%20Senior%20OL%20with%20a%20Temptating%20Tight%20Skirt-s%20Full%20Hipline%20and%20Panty%20Shot-%20Beautiful%20Thick%20Thighs-%20and%20Erotic%20Ass-%20-2015-%20--%20Oppaitime%208-28-2017%206-50-33%20PM.png"
+
     attachment = %{
-      "url" => [%{"href" => "http://heise.de/i\"m a boy.png"}]
+      "url" => [%{"href" => name}]
     }
 
     res = Utils.add_attachments("", [attachment])
 
-    assert res == "<br>\n<a href=\"http://heise.de/i\"m a boy.png\" class='attachment'>i\"m a boy.png</a>"
+    assert res == "<br>\n<a href=\"#{name}\" class='attachment'>Sakura Mana – Turned on by a Se…</a>"
   end
 end
-- 
2.49.0