aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlambda <pleromagit@rogerbraun.net>2018-12-10 19:03:06 +0000
committerlambda <pleromagit@rogerbraun.net>2018-12-10 19:03:06 +0000
commit0554d91dcdc4263594ca02d4796c59bda49de3ce (patch)
tree5fa79064eddc3e22e0deb98a36cac3fe834c3fc6
parentab98c92d86f91b0c83f482e002e4a518b93f65ca (diff)
parentf079ca7181a907416b77c2f81307049036f74aa9 (diff)
downloadpleroma-0554d91dcdc4263594ca02d4796c59bda49de3ce.tar.gz
Merge branch 'anonymize-filter-text' into 'develop'
AnonymizeFilename: allow for a pre-defined text instead of random string See merge request pleroma/pleroma!516
-rw-r--r--config/config.md11
-rw-r--r--lib/pleroma/upload/filter/anonymize_filename.ex19
2 files changed, 27 insertions, 3 deletions
diff --git a/config/config.md b/config/config.md
index d90d18566..a32c4cbde 100644
--- a/config/config.md
+++ b/config/config.md
@@ -19,6 +19,17 @@ Note: `strip_exif` has been replaced by `Pleroma.Upload.Filter.Mogrify`.
* `args`: List of actions for the `mogrify` command like `"strip"` or `["strip", {"impode", "1"}]`.
+## Pleroma.Upload.Filter.Dedupe
+
+No specific configuration.
+
+## Pleroma.Upload.Filter.AnonymizeFilename
+
+This filter replaces the filename (not the path) of an upload. For complete obfuscation, add
+`Pleroma.Upload.Filter.Dedupe` before AnonymizeFilename.
+
+* `text`: Text to replace filenames in links. If empty, `{random}.extension` will be used.
+
## :uri_schemes
* `valid_schemes`: List of the scheme part that is considered valid to be an URL
diff --git a/lib/pleroma/upload/filter/anonymize_filename.ex b/lib/pleroma/upload/filter/anonymize_filename.ex
index a83e764e5..39eed7af3 100644
--- a/lib/pleroma/upload/filter/anonymize_filename.ex
+++ b/lib/pleroma/upload/filter/anonymize_filename.ex
@@ -1,10 +1,23 @@
defmodule Pleroma.Upload.Filter.AnonymizeFilename do
- @moduledoc "Replaces the original filename with a randomly generated string."
+ @moduledoc """
+ Replaces the original filename with a pre-defined text or randomly generated string.
+
+ Should be used after `Pleroma.Upload.Filter.Dedupe`.
+ """
@behaviour Pleroma.Upload.Filter
def filter(upload) do
extension = List.last(String.split(upload.name, "."))
- string = Base.url_encode64(:crypto.strong_rand_bytes(10), padding: false)
- {:ok, %Pleroma.Upload{upload | name: string <> "." <> extension}}
+ name = Pleroma.Config.get([__MODULE__, :text], random(extension))
+ {:ok, %Pleroma.Upload{upload | name: name}}
+ end
+
+ defp random(extension) do
+ string =
+ 10
+ |> :crypto.strong_rand_bytes()
+ |> Base.url_encode64(padding: false)
+
+ string <> "." <> extension
end
end