41 lines
907 B
Elixir
41 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
|