diff options
| author | Egor Kislitsyn <egor@kislitsyn.com> | 2020-05-19 16:11:59 +0400 | 
|---|---|---|
| committer | Egor Kislitsyn <egor@kislitsyn.com> | 2020-05-19 16:26:06 +0400 | 
| commit | 6609714d6694058e28ed789dd65eb50ca816c425 (patch) | |
| tree | 67446272d250798ea6f0560d0491a2c69b09538c /lib | |
| parent | 524d04d9218f8e72bf88ab5e7d4b407452ae40bc (diff) | |
| download | pleroma-6609714d6694058e28ed789dd65eb50ca816c425.tar.gz pleroma-6609714d6694058e28ed789dd65eb50ca816c425.zip | |
Move Scrobble views to ScrobbleView
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pleroma/web/mastodon_api/views/status_view.ex | 21 | ||||
| -rw-r--r-- | lib/pleroma/web/pleroma_api/controllers/scrobble_controller.ex | 8 | ||||
| -rw-r--r-- | lib/pleroma/web/pleroma_api/views/scrobble_view.ex | 37 | 
3 files changed, 39 insertions, 27 deletions
| diff --git a/lib/pleroma/web/mastodon_api/views/status_view.ex b/lib/pleroma/web/mastodon_api/views/status_view.ex index 05a26017a..8e3715093 100644 --- a/lib/pleroma/web/mastodon_api/views/status_view.ex +++ b/lib/pleroma/web/mastodon_api/views/status_view.ex @@ -436,27 +436,6 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do      }    end -  def render("listen.json", %{activity: %Activity{data: %{"type" => "Listen"}} = activity} = opts) do -    object = Object.normalize(activity) - -    user = get_user(activity.data["actor"]) -    created_at = Utils.to_masto_date(activity.data["published"]) - -    %{ -      id: activity.id, -      account: AccountView.render("show.json", %{user: user, for: opts[:for]}), -      created_at: created_at, -      title: object.data["title"] |> HTML.strip_tags(), -      artist: object.data["artist"] |> HTML.strip_tags(), -      album: object.data["album"] |> HTML.strip_tags(), -      length: object.data["length"] -    } -  end - -  def render("listens.json", opts) do -    safe_render_many(opts.activities, StatusView, "listen.json", opts) -  end -    def render("context.json", %{activity: activity, activities: activities, user: user}) do      %{ancestors: ancestors, descendants: descendants} =        activities diff --git a/lib/pleroma/web/pleroma_api/controllers/scrobble_controller.ex b/lib/pleroma/web/pleroma_api/controllers/scrobble_controller.ex index 35a37f69e..8665ca56c 100644 --- a/lib/pleroma/web/pleroma_api/controllers/scrobble_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/scrobble_controller.ex @@ -11,7 +11,6 @@ defmodule Pleroma.Web.PleromaAPI.ScrobbleController do    alias Pleroma.User    alias Pleroma.Web.ActivityPub.ActivityPub    alias Pleroma.Web.CommonAPI -  alias Pleroma.Web.MastodonAPI.StatusView    plug(Pleroma.Web.ApiSpec.CastAndValidate) @@ -26,9 +25,7 @@ defmodule Pleroma.Web.PleromaAPI.ScrobbleController do    def create(%{assigns: %{user: user}, body_params: params} = conn, _) do      with {:ok, activity} <- CommonAPI.listen(user, params) do -      conn -      |> put_view(StatusView) -      |> render("listen.json", %{activity: activity, for: user}) +      render(conn, "show.json", activity: activity, for: user)      else        {:error, message} ->          conn @@ -48,8 +45,7 @@ defmodule Pleroma.Web.PleromaAPI.ScrobbleController do        conn        |> add_link_headers(activities) -      |> put_view(StatusView) -      |> render("listens.json", %{ +      |> render("index.json", %{          activities: activities,          for: reading_user,          as: :activity diff --git a/lib/pleroma/web/pleroma_api/views/scrobble_view.ex b/lib/pleroma/web/pleroma_api/views/scrobble_view.ex new file mode 100644 index 000000000..bbff93abe --- /dev/null +++ b/lib/pleroma/web/pleroma_api/views/scrobble_view.ex @@ -0,0 +1,37 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.PleromaAPI.ScrobbleView do +  use Pleroma.Web, :view + +  require Pleroma.Constants + +  alias Pleroma.Activity +  alias Pleroma.HTML +  alias Pleroma.Object +  alias Pleroma.Web.CommonAPI.Utils +  alias Pleroma.Web.MastodonAPI.AccountView +  alias Pleroma.Web.MastodonAPI.StatusView + +  def render("show.json", %{activity: %Activity{data: %{"type" => "Listen"}} = activity} = opts) do +    object = Object.normalize(activity) + +    user = StatusView.get_user(activity.data["actor"]) +    created_at = Utils.to_masto_date(activity.data["published"]) + +    %{ +      id: activity.id, +      account: AccountView.render("show.json", %{user: user, for: opts[:for]}), +      created_at: created_at, +      title: object.data["title"] |> HTML.strip_tags(), +      artist: object.data["artist"] |> HTML.strip_tags(), +      album: object.data["album"] |> HTML.strip_tags(), +      length: object.data["length"] +    } +  end + +  def render("index.json", opts) do +    safe_render_many(opts.activities, __MODULE__, "show.json", opts) +  end +end | 
