Options:
* `:type`: presets for activity type (defaults to Document) and size limits from app configuration
* `:description`: upload alternative text
+ * `:base_url`: override base url
* `:uploader`: override uploader
* `:filters`: override filters
* `:size_limit`: override size limit
%{
"type" => "Link",
"mediaType" => upload.content_type,
- "href" => url_from_spec(url_spec)
+ "href" => url_from_spec(opts.base_url, url_spec)
}
],
"name" => Map.get(opts, :description) || upload.name
size_limit: Keyword.get(opts, :size_limit, size_limit),
uploader: Keyword.get(opts, :uploader, Pleroma.Config.get([__MODULE__, :uploader])),
filters: Keyword.get(opts, :filters, Pleroma.Config.get([__MODULE__, :filters])),
- description: Keyword.get(opts, :description)
+ description: Keyword.get(opts, :description),
+ base_url:
+ Keyword.get(
+ opts,
+ :base_url,
+ Pleroma.Config.get([__MODULE__, :base_url], Pleroma.Web.base_url())
+ )
}
# TODO: 1.0+ : remove old config compatibility
Logger.warn("""
Pleroma: configuration `:instance, :strip_exif` is deprecated, please instead set:
- :instance, Pleroma.Upload, [filters: [Pleroma.Upload.Filter.Mogrify]]
+ :pleroma, Pleroma.Upload, [filters: [Pleroma.Upload.Filter.Mogrify]]
- :pleroma, Pleroma.Upload.Mogrify, args: "strip"
+ :pleroma, Pleroma.Upload.Filter.Mogrify, args: "strip"
""")
Pleroma.Config.put([Pleroma.Upload.Filter.Mogrify], args: "strip")
opts
end
- opts =
- if Pleroma.Config.get([:instance, :dedupe_media]) == true &&
- !Enum.member?(opts.filters, Pleroma.Upload.Filter.Dedupe) do
- Logger.warn("""
- Pleroma: configuration `:instance, :dedupe_media` is deprecated, please instead set:
+ if Pleroma.Config.get([:instance, :dedupe_media]) == true &&
+ !Enum.member?(opts.filters, Pleroma.Upload.Filter.Dedupe) do
+ Logger.warn("""
+ Pleroma: configuration `:instance, :dedupe_media` is deprecated, please instead set:
- :instance, Pleroma.Upload, [filters: [Pleroma.Upload.Filter.Dedupe]]
- """)
+ :pleroma, Pleroma.Upload, [filters: [Pleroma.Upload.Filter.Dedupe]]
+ """)
- Map.put(opts, :filters, opts.filters ++ [Pleroma.Upload.Filter.Dedupe])
- else
- opts
- end
+ Map.put(opts, :filters, opts.filters ++ [Pleroma.Upload.Filter.Dedupe])
+ else
+ opts
+ end
end
defp prepare_upload(%Plug.Upload{} = file, opts) do
tmp_path
end
- defp url_from_spec({:file, path}) do
- [Pleroma.Web.base_url(), "media", path]
+ defp url_from_spec(base_url, {:file, path}) do
+ [base_url, "media", path]
|> Path.join()
end
- defp url_from_spec({:url, url}) do
- url
- end
+ defp url_from_spec(_base_url, {:url, url}), do: url
end