projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix with expression always matching
[akkoma]
/
lib
/
pleroma
/
upload.ex
diff --git
a/lib/pleroma/upload.ex
b/lib/pleroma/upload.ex
index ce2a1b69633344607415767f4d58bb9ffdfda8af..1a97e9fdee156354fdb26e78bab931a2474e32d9 100644
(file)
--- a/
lib/pleroma/upload.ex
+++ b/
lib/pleroma/upload.ex
@@
-85,6
+85,10
@@
defmodule Pleroma.Upload do
end
end
end
end
+ def char_unescaped?(char) do
+ URI.char_unreserved?(char) or char == ?/
+ end
+
defp get_opts(opts) do
{size_limit, activity_type} =
case Keyword.get(opts, :type) do
defp get_opts(opts) do
{size_limit, activity_type} =
case Keyword.get(opts, :type) do
@@
-180,7
+184,7
@@
defmodule Pleroma.Upload do
end
# For Mix.Tasks.MigrateLocalUploads
end
# For Mix.Tasks.MigrateLocalUploads
- defp prepare_upload(
upload = %__MODULE__{tempfile: path}
, _opts) do
+ defp prepare_upload(
%__MODULE__{tempfile: path} = upload
, _opts) do
with {:ok, content_type} <- Pleroma.MIME.file_mime_type(path) do
{:ok, %__MODULE__{upload | content_type: content_type}}
end
with {:ok, content_type} <- Pleroma.MIME.file_mime_type(path) do
{:ok, %__MODULE__{upload | content_type: content_type}}
end
@@
-218,9
+222,7
@@
defmodule Pleroma.Upload do
defp url_from_spec(base_url, {:file, path}) do
path =
path
defp url_from_spec(base_url, {:file, path}) do
path =
path
- |> URI.encode()
- |> String.replace("?", "%3F")
- |> String.replace(":", "%3A")
+ |> URI.encode(&char_unescaped?/1)
[base_url, "media", path]
|> Path.join()
[base_url, "media", path]
|> Path.join()