Fix some typespecs

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel
2022-04-18 14:38:57 +02:00
parent 714e9216c1
commit 83f2880dd9
33 changed files with 76 additions and 60 deletions

View File

@@ -7,11 +7,12 @@ defmodule Mobilizon.Web.Upload.Filter.AnalyzeMetadata do
@moduledoc """
Extracts metadata about the upload, such as width/height
"""
require Logger
alias Mobilizon.Web.Upload
alias Mobilizon.Web.Upload.Filter
@behaviour Mobilizon.Web.Upload.Filter
@behaviour Filter
@impl Filter
@spec filter(Upload.t()) ::
{:ok, :filtered, Upload.t()} | {:ok, :noop}
def filter(%Upload{tempfile: file, content_type: "image" <> _} = upload) do
@@ -23,6 +24,7 @@ defmodule Mobilizon.Web.Upload.Filter.AnalyzeMetadata do
{:ok, :filtered, %Upload{upload | width: image.width, height: image.height}}
rescue
e in ErlangError ->
require Logger
Logger.warn("#{__MODULE__}: #{inspect(e)}")
{:ok, :noop}
end

View File

@@ -4,9 +4,11 @@ defmodule Mobilizon.Web.Upload.Filter.BlurHash do
"""
require Logger
alias Mobilizon.Web.Upload
alias Mobilizon.Web.Upload.Filter
@behaviour Mobilizon.Web.Upload.Filter
@behaviour Filter
@impl Filter
@spec filter(Upload.t()) ::
{:ok, :filtered, Upload.t()} | {:ok, :noop}
def filter(%Upload{tempfile: file, content_type: "image" <> _} = upload) do

View File

@@ -7,9 +7,12 @@ defmodule Mobilizon.Web.Upload.Filter.Dedupe do
@moduledoc """
Names the file after its hash to avoid dedupes
"""
@behaviour Mobilizon.Web.Upload.Filter
alias Mobilizon.Web.Upload
alias Mobilizon.Web.Upload.Filter
@behaviour Filter
@impl Filter
@spec filter(Upload.t()) :: {:ok, :filtered, Upload.t()} | {:ok, :noop}
def filter(%Upload{name: name, tempfile: tempfile} = upload) do
extension = name |> String.split(".") |> List.last()

View File

@@ -8,12 +8,14 @@ defmodule Mobilizon.Web.Upload.Filter.Exiftool do
Also strips or replaces filesystem metadata e.g., timestamps.
"""
alias Mobilizon.Web.Upload
alias Mobilizon.Web.Upload.Filter
@behaviour Mobilizon.Web.Upload.Filter
@behaviour Filter
@spec filter(Upload.t()) :: {:ok, :filtered | :noop} | {:error, String.t()}
# webp is not compatible with exiftool at this time
@impl Filter
def filter(%Upload{content_type: "image/webp"}), do: {:ok, :noop}
def filter(%Upload{tempfile: file, content_type: "image" <> _}) do

View File

@@ -8,13 +8,15 @@ defmodule Mobilizon.Web.Upload.Filter.Mogrify do
Handle mogrify transformations
"""
@behaviour Mobilizon.Web.Upload.Filter
alias Mobilizon.Config
alias Mobilizon.Web.Upload.Filter
@behaviour Filter
@type conversion :: action :: String.t() | {action :: String.t(), opts :: String.t()}
@type conversions :: conversion() | [conversion()]
@impl Filter
@spec filter(Mobilizon.Web.Upload.t()) :: {:ok, :filtered | :noop} | {:error, String.t()}
def filter(%Mobilizon.Web.Upload{tempfile: file, content_type: "image" <> _}) do
do_filter(file, Config.get!([__MODULE__, :args]))

View File

@@ -2,13 +2,13 @@ defmodule Mobilizon.Web.Upload.Filter.Optimize do
@moduledoc """
Handle media optimizations
"""
@behaviour Mobilizon.Web.Upload.Filter
alias Mobilizon.Config
alias Mobilizon.Web.Upload
alias Mobilizon.Web.Upload.Filter
require Logger
@behaviour Filter
@default_optimizers [
JpegOptim,
PngQuant,
@@ -18,6 +18,7 @@ defmodule Mobilizon.Web.Upload.Filter.Optimize do
Cwebp
]
@impl Filter
@spec filter(Upload.t()) :: {:ok, :filtered | :noop} | {:error, :file_not_found}
def filter(%Upload{tempfile: file, content_type: "image" <> _}) do
optimizers = Config.get([__MODULE__, :optimizers], @default_optimizers)

View File

@@ -5,12 +5,15 @@ defmodule Mobilizon.Web.Upload.Filter.Resize do
This filter requires `Mobilizon.Web.Upload.Filter.AnalyzeMetadata` to be performed before.
"""
@behaviour Mobilizon.Web.Upload.Filter
alias Mobilizon.Web.Upload
alias Mobilizon.Web.Upload.Filter
@behaviour Filter
@maximum_width 1_920
@maximum_height 1_080
@impl Filter
@spec filter(Upload.t()) :: {:ok, :filtered, Upload.t()} | {:ok, :noop}
def filter(
%Upload{

View File

@@ -8,17 +8,18 @@ defmodule Mobilizon.Web.Upload.Uploader.Local do
Local uploader for files
"""
@behaviour Mobilizon.Web.Upload.Uploader
alias Mobilizon.Config
alias Mobilizon.Web.Upload
alias Mobilizon.Web.Upload.Uploader
@impl true
@behaviour Uploader
@impl Uploader
def get_file(_) do
{:ok, {:static_dir, upload_path()}}
end
@impl true
@impl Uploader
@spec put_file(Upload.t()) ::
:ok | {:ok, {:file, String.t()}} | {:error, :tempfile_no_longer_exists}
def put_file(%Upload{path: initial_path, tempfile: tempfile}) do
@@ -38,7 +39,7 @@ defmodule Mobilizon.Web.Upload.Uploader.Local do
end
end
@impl true
@impl Uploader
@spec remove_file(String.t()) ::
{:ok, {:file, String.t()}}
| {:error, :folder_not_empty}

View File

@@ -3,7 +3,7 @@ defmodule Mobilizon.Web.JsonLD.ObjectView do
alias Mobilizon.Actors.Actor
alias Mobilizon.Addresses.Address
alias Mobilizon.Events.{Event, EventOptions, Participant, ParticipantRole}
alias Mobilizon.Events.{Event, EventOptions, Participant}
alias Mobilizon.Posts.Post
alias Mobilizon.Web.Endpoint
alias Mobilizon.Web.JsonLD.ObjectView
@@ -166,7 +166,7 @@ defmodule Mobilizon.Web.JsonLD.ObjectView do
end
end
@spec reservation_status(ParticipantRole.t()) :: String.t()
@spec reservation_status(atom()) :: String.t()
defp reservation_status(:rejected), do: "https://schema.org/ReservationCancelled"
defp reservation_status(:not_confirmed), do: "https://schema.org/ReservationPending"
defp reservation_status(:not_approved), do: "https://schema.org/ReservationHold"