1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
5 defmodule Pleroma.Upload.Filter.AnonymizeFilename do
7 Replaces the original filename with a pre-defined text or randomly generated string.
9 Should be used after `Pleroma.Upload.Filter.Dedupe`.
11 @behaviour Pleroma.Upload.Filter
14 extension = List.last(String.split(upload.name, "."))
15 name = Pleroma.Config.get([__MODULE__, :text], random(extension))
16 {:ok, %Pleroma.Upload{upload | name: name}}
19 defp random(extension) do
22 |> :crypto.strong_rand_bytes()
23 |> Base.url_encode64(padding: false)
25 string <> "." <> extension