import Phoenix.HTML.Tag, only: [content_tag: 3, tag: 2]
def render("player.html", %{"mediaType" => type, "href" => href}) do
- tag_type =
+ {tag_type, tag_attrs} =
case type do
- "audio" <> _ -> :audio
- "video" <> _ -> :video
+ "audio" <> _ -> {:audio, []}
+ "video" <> _ -> {:video, [loop: true]}
end
content_tag(
tag(:source, src: href, type: type),
"Your browser does not support #{type} playback."
],
- controls: true
+ [controls: true] ++ tag_attrs
)
end
end
[
{:meta, [property: "twitter:card", content: "player"], []},
{:meta, [property: "twitter:player", content: player_url(id)], []},
- {:meta, [property: "twitter:player:width", content: "1280"], []},
- {:meta, [property: "twitter:player:height", content: "720"], []}
+ {:meta, [property: "twitter:player:width", content: "480"], []},
+ {:meta, [property: "twitter:player:height", content: "480"], []}
| acc
]
|> put_resp_header("x-frame-options", "ALLOW")
|> put_resp_header(
"content-security-policy",
- "default-src 'none'; img-src 'self' data: https:; media-src 'self' https:;"
+ "default-src 'none';style-src 'self' 'unsafe-inline';img-src 'self' data: https:; media-src 'self' https:;"
)
|> put_view(Pleroma.Web.Metadata.PlayerView)
|> render("player.html", url)
<body>
<style type="text/css">
-video {
+video, audio {
width:100%;
max-width:600px;
- height:auto;
+ height: auto;
}
</style>