diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 39d8cca76..a04bbe276 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -34,6 +34,13 @@ defmodule Pleroma.User do end end + def banner_url(user) do + case user.info["banner"] do + %{"url" => [%{"href" => href} | _]} -> href + _ -> nil + end + end + def ap_id(%User{nickname: nickname}) do "#{Web.base_url}/users/#{nickname}" end diff --git a/lib/pleroma/web/ostatus/user_representer.ex b/lib/pleroma/web/ostatus/user_representer.ex index 273d7524a..14f78a4ed 100644 --- a/lib/pleroma/web/ostatus/user_representer.ex +++ b/lib/pleroma/web/ostatus/user_representer.ex @@ -6,6 +6,12 @@ defmodule Pleroma.Web.OStatus.UserRepresenter do name = to_charlist(user.name) bio = to_charlist(user.bio) avatar_url = to_charlist(User.avatar_url(user)) + banner = if banner_url = User.banner_url(user) do + [{:link, [rel: 'header', href: banner_url], []}] + else + [] + end + [ {:id, [ap_id]}, {:"activity:object", ['http://activitystrea.ms/schema/1.0/person']}, @@ -15,6 +21,6 @@ defmodule Pleroma.Web.OStatus.UserRepresenter do {:"poco:note", [bio]}, {:name, [nickname]}, {:link, [rel: 'avatar', href: avatar_url], []} - ] + ] ++ banner end end