40 lines
907 B
Elixir
40 lines
907 B
Elixir
defmodule Content.Attachment do
|
|
@moduledoc """
|
|
Helpers for dealing with "attachment"-type posts, which are generally media
|
|
uploaded to the site e.g. images.
|
|
"""
|
|
alias Content.Post
|
|
|
|
def dimensions(attachment) do
|
|
meta =
|
|
attachment
|
|
|> Post.metas_map
|
|
|
|
deserialization_results =
|
|
meta["_wp_attachment_metadata"]
|
|
|> PhpSerializer.unserialize
|
|
|
|
case deserialization_results do
|
|
{:ok, info} ->
|
|
%{
|
|
width: info |> Enum.find(fn {key, _} -> key == "width" end) |> elem(1),
|
|
height: info |> Enum.find(fn {key, _} -> key == "height" end) |> elem(1)
|
|
}
|
|
{:error, _} ->
|
|
nil
|
|
end
|
|
end
|
|
|
|
def vertical?(attachment) do
|
|
case dimensions(attachment) do
|
|
%{width: width, height: height} ->
|
|
if width < height do
|
|
true
|
|
else
|
|
false
|
|
end
|
|
_ ->
|
|
false
|
|
end
|
|
end
|
|
end
|