diff options
| author | Thog <me@thog.eu> | 2018-05-20 18:05:34 +0200 | 
|---|---|---|
| committer | Thog <me@thog.eu> | 2018-05-20 20:08:40 +0200 | 
| commit | e55c6f311b8f459402134351230a5ff9700a8ff0 (patch) | |
| tree | dc752c2917682c7c98a3d76c3ffcb33f4496120b /lib | |
| parent | 413de8e4bcacc363958673d33787195823f7fe87 (diff) | |
| download | pleroma-e55c6f311b8f459402134351230a5ff9700a8ff0.tar.gz pleroma-e55c6f311b8f459402134351230a5ff9700a8ff0.zip | |
Migrate to comeonin 4 and Cachex 3
Also fix some warning in the code and add a missing alias
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pleroma/application.ex | 8 | ||||
| -rw-r--r-- | lib/pleroma/object.ex | 20 | ||||
| -rw-r--r-- | lib/pleroma/user.ex | 12 | ||||
| -rw-r--r-- | lib/pleroma/web/activity_pub/transmogrifier.ex | 14 | ||||
| -rw-r--r-- | lib/pleroma/web/http_signatures/http_signatures.ex | 1 | ||||
| -rw-r--r-- | lib/pleroma/web/mastodon_api/mastodon_api_controller.ex | 6 | 
6 files changed, 29 insertions, 32 deletions
| diff --git a/lib/pleroma/application.ex b/lib/pleroma/application.ex index e1e3bcd63..a89728471 100644 --- a/lib/pleroma/application.ex +++ b/lib/pleroma/application.ex @@ -5,6 +5,7 @@ defmodule Pleroma.Application do    # for more information on OTP Applications    def start(_type, _args) do      import Supervisor.Spec +    import Cachex.Spec      # Define workers and child supervisors to be supervised      children = @@ -28,8 +29,11 @@ defmodule Pleroma.Application do            [              :idempotency_cache,              [ -              default_ttl: :timer.seconds(6 * 60 * 60), -              ttl_interval: :timer.seconds(60), +              expiration: +                expiration( +                  default: :timer.seconds(6 * 60 * 60), +                  interval: :timer.seconds(60) +                ),                limit: 2500              ]            ], diff --git a/lib/pleroma/object.ex b/lib/pleroma/object.ex index 558e151b0..ff2af4a6f 100644 --- a/lib/pleroma/object.ex +++ b/lib/pleroma/object.ex @@ -33,19 +33,15 @@ defmodule Pleroma.Object do      else        key = "object:#{ap_id}" -      Cachex.get!( -        :user_cache, -        key, -        fallback: fn _ -> -          object = get_by_ap_id(ap_id) - -          if object do -            {:commit, object} -          else -            {:ignore, object} -          end +      Cachex.fetch!(:user_cache, key, fn _ -> +        object = get_by_ap_id(ap_id) + +        if object do +          {:commit, object} +        else +          {:ignore, object}          end -      ) +      end)      end    end diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 6a8129ac8..690cc7cf3 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -223,9 +223,9 @@ defmodule Pleroma.User do    def update_and_set_cache(changeset) do      with {:ok, user} <- Repo.update(changeset) do -      Cachex.set(:user_cache, "ap_id:#{user.ap_id}", user) -      Cachex.set(:user_cache, "nickname:#{user.nickname}", user) -      Cachex.set(:user_cache, "user_info:#{user.id}", user_info(user)) +      Cachex.put(:user_cache, "ap_id:#{user.ap_id}", user) +      Cachex.put(:user_cache, "nickname:#{user.nickname}", user) +      Cachex.put(:user_cache, "user_info:#{user.id}", user_info(user))        {:ok, user}      else        e -> e @@ -239,12 +239,12 @@ defmodule Pleroma.User do    def get_cached_by_ap_id(ap_id) do      key = "ap_id:#{ap_id}" -    Cachex.get!(:user_cache, key, fallback: fn _ -> get_by_ap_id(ap_id) end) +    Cachex.fetch!(:user_cache, key, fn _ -> get_by_ap_id(ap_id) end)    end    def get_cached_by_nickname(nickname) do      key = "nickname:#{nickname}" -    Cachex.get!(:user_cache, key, fallback: fn _ -> get_or_fetch_by_nickname(nickname) end) +    Cachex.fetch!(:user_cache, key, fn _ -> get_or_fetch_by_nickname(nickname) end)    end    def get_by_nickname(nickname) do @@ -260,7 +260,7 @@ defmodule Pleroma.User do    def get_cached_user_info(user) do      key = "user_info:#{user.id}" -    Cachex.get!(:user_cache, key, fallback: fn _ -> user_info(user) end) +    Cachex.fetch!(:user_cache, key, fn _ -> user_info(user) end)    end    def fetch_by_nickname(nickname) do diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index a31452a63..7d6fd8632 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -229,7 +229,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do            "object" => %{"type" => "Announce", "object" => object_id},            "actor" => actor,            "id" => id -        } = data +        } = _data        ) do      with %User{} = actor <- User.get_or_fetch_by_ap_id(actor),           {:ok, object} <- @@ -237,7 +237,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do           {:ok, activity, _, _} <- ActivityPub.unannounce(actor, object, id, false) do        {:ok, activity}      else -      e -> :error +      _e -> :error      end    end @@ -247,7 +247,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do            "object" => %{"type" => "Like", "object" => object_id},            "actor" => actor,            "id" => id -        } = data +        } = _data        ) do      with %User{} = actor <- User.get_or_fetch_by_ap_id(actor),           {:ok, object} <- @@ -255,7 +255,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do           {:ok, activity, _, _} <- ActivityPub.unlike(actor, object, id, false) do        {:ok, activity}      else -      e -> :error +      _e -> :error      end    end @@ -516,10 +516,10 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do    def maybe_fix_user_url(data) do      if is_map(data["url"]) do -      data = Map.put(data, "url", data["url"]["href"]) +      Map.put(data, "url", data["url"]["href"]) +    else +      data      end - -    data    end    def maybe_fix_user_object(data) do diff --git a/lib/pleroma/web/http_signatures/http_signatures.ex b/lib/pleroma/web/http_signatures/http_signatures.ex index dd3f825db..4e0adbc1d 100644 --- a/lib/pleroma/web/http_signatures/http_signatures.ex +++ b/lib/pleroma/web/http_signatures/http_signatures.ex @@ -2,6 +2,7 @@  defmodule Pleroma.Web.HTTPSignatures do    alias Pleroma.User    alias Pleroma.Web.ActivityPub.Utils +  alias Pleroma.Web.ActivityPub.ActivityPub    require Logger    def split_signature(sig) do diff --git a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex index 85f9c5b7b..e6365620e 100644 --- a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex +++ b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex @@ -275,11 +275,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do        end      {:ok, activity} = -      Cachex.get!( -        :idempotency_cache, -        idempotency_key, -        fallback: fn _ -> CommonAPI.post(user, params) end -      ) +      Cachex.fetch!(:idempotency_cache, idempotency_key, fn _ -> CommonAPI.post(user, params) end)      render(conn, StatusView, "status.json", %{activity: activity, for: user, as: :activity})    end | 
