diff options
author | lain <lain@soykaf.club> | 2020-07-21 19:35:43 +0000 |
---|---|---|
committer | lain <lain@soykaf.club> | 2020-07-21 19:35:43 +0000 |
commit | 2b5d9eb10529325aef1b4aab980bd901ba6b0c70 (patch) | |
tree | 3082a53ce7d092bf8e4e9a3dfafa8ad5f701f7fc /priv | |
parent | fa2421dd7e09e6536ee18afa9c2f297932ff1102 (diff) | |
parent | 204dddcfaaa5ff1113ef2f772ce5d6fcbbaaec6e (diff) | |
download | pleroma-2b5d9eb10529325aef1b4aab980bd901ba6b0c70.tar.gz |
Merge branch 'linkify' into 'develop'
AutoLinker --> Linkify, update to latest version
See merge request pleroma/pleroma!2677
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 |