diff options
| author | Mark Felder <feld@FreeBSD.org> | 2020-07-21 16:25:45 -0500 | 
|---|---|---|
| committer | Mark Felder <feld@FreeBSD.org> | 2020-07-21 16:25:45 -0500 | 
| commit | 97c60b6a4308b77d0e4956b83a16b88292b62e37 (patch) | |
| tree | db496d0f94e00b199be95ee285174f378f512daa /priv | |
| parent | 7ce722ce3e3dbc633324ff0ccaeddc467397ac5e (diff) | |
| parent | 2b5d9eb10529325aef1b4aab980bd901ba6b0c70 (diff) | |
| download | pleroma-97c60b6a4308b77d0e4956b83a16b88292b62e37.tar.gz pleroma-97c60b6a4308b77d0e4956b83a16b88292b62e37.zip | |
Merge branch 'develop' into fix/pleroma-api-emoji-packs
Diffstat (limited to 'priv')
| -rw-r--r-- | priv/repo/migrations/20200716195806_autolinker_to_linkify.exs | 37 | 
1 files changed, 37 insertions, 0 deletions
| diff --git a/priv/repo/migrations/20200716195806_autolinker_to_linkify.exs b/priv/repo/migrations/20200716195806_autolinker_to_linkify.exs new file mode 100644 index 000000000..9ec4203eb --- /dev/null +++ b/priv/repo/migrations/20200716195806_autolinker_to_linkify.exs @@ -0,0 +1,37 @@ +defmodule Pleroma.Repo.Migrations.AutolinkerToLinkify do +  use Ecto.Migration + +  alias Pleroma.Repo +  alias Pleroma.ConfigDB + +  @autolinker_path %{group: :auto_linker, key: :opts} +  @linkify_path %{group: :pleroma, key: Pleroma.Formatter} + +  @compat_opts [:class, :rel, :new_window, :truncate, :strip_prefix, :extra] + +  def change do +    with {:ok, {old, new}} <- maybe_get_params() do +      move_config(old, new) +    end +  end + +  defp move_config(%{} = old, %{} = new) do +    {:ok, _} = ConfigDB.update_or_create(new) +    {:ok, _} = ConfigDB.delete(old) +    :ok +  end + +  defp maybe_get_params() do +    with %ConfigDB{value: opts} <- ConfigDB.get_by_params(@autolinker_path), +         %{} = opts <- transform_opts(opts), +         %{} = linkify_params <- Map.put(@linkify_path, :value, opts) do +      {:ok, {@autolinker_path, linkify_params}} +    end +  end + +  defp transform_opts(opts) when is_list(opts) do +    opts +    |> Enum.into(%{}) +    |> Map.take(@compat_opts) +  end +end | 
