From c692acf1e9892281d5ff16e2cd31d86338fc328d Mon Sep 17 00:00:00 2001
From: Chaska <166928710+chaskayote@users.noreply.github.com>
Date: Fri, 26 Apr 2024 11:43:24 -0500
Subject: [PATCH] Undoing webp fail

---
 config/quick_tag_table.json                   |  2 +-
 lib/philomena/analyzers.ex                    |  2 --
 lib/philomena/analyzers/webp.ex               | 29 -------------------
 lib/philomena/images/image.ex                 |  2 +-
 lib/philomena/mime.ex                         |  2 +-
 lib/philomena/scrapers/raw.ex                 |  2 +-
 lib/philomena/tags/tag.ex                     |  2 +-
 .../views/duplicate_report_view.ex            |  2 +-
 8 files changed, 6 insertions(+), 37 deletions(-)
 delete mode 100644 lib/philomena/analyzers/webp.ex

diff --git a/config/quick_tag_table.json b/config/quick_tag_table.json
index e4c177c6..1f52228e 100644
--- a/config/quick_tag_table.json
+++ b/config/quick_tag_table.json
@@ -242,7 +242,7 @@
       "Groupings": [
         "solo",
         "duo",
-        "trio","",
+        "trio",
         "solo focus",
         "duo focus",
         "trio focus",
diff --git a/lib/philomena/analyzers.ex b/lib/philomena/analyzers.ex
index ccb9e53d..1a3961ec 100644
--- a/lib/philomena/analyzers.ex
+++ b/lib/philomena/analyzers.ex
@@ -9,7 +9,6 @@ defmodule Philomena.Analyzers do
   alias Philomena.Analyzers.Jpeg
   alias Philomena.Analyzers.Png
   alias Philomena.Analyzers.Svg
-  alias Philomena.Analyzers.Webp
   alias Philomena.Analyzers.Webm
 
   @doc """
@@ -34,7 +33,6 @@ defmodule Philomena.Analyzers do
   def analyzer("image/jpeg"), do: {:ok, Jpeg}
   def analyzer("image/png"), do: {:ok, Png}
   def analyzer("image/svg+xml"), do: {:ok, Svg}
-  def analyzer("image/webp"), do: {:ok, Webp}
   def analyzer("video/webm"), do: {:ok, Webm}
   def analyzer(_content_type), do: :error
 
diff --git a/lib/philomena/analyzers/webp.ex b/lib/philomena/analyzers/webp.ex
deleted file mode 100644
index 768347d2..00000000
--- a/lib/philomena/analyzers/webp.ex
+++ /dev/null
@@ -1,29 +0,0 @@
-defmodule Philomena.Analyzers.Jpeg do
-  def analyze(file) do
-    stats = stats(file)
-
-    %{
-      extension: "jpg",
-      mime_type: "image/webp",
-      animated?: false,
-      duration: stats.duration,
-      dimensions: stats.dimensions
-    }
-  end
-
-  defp stats(file) do
-    case System.cmd("mediastat", [file]) do
-      {output, 0} ->
-        [_size, _frames, width, height, num, den] =
-          output
-          |> String.trim()
-          |> String.split(" ")
-          |> Enum.map(&String.to_integer/1)
-
-        %{dimensions: {width, height}, duration: num / den}
-
-      _ ->
-        %{dimensions: {0, 0}, duration: 0.0}
-    end
-  end
-end
diff --git a/lib/philomena/images/image.ex b/lib/philomena/images/image.ex
index d6c85a68..d8e791c8 100644
--- a/lib/philomena/images/image.ex
+++ b/lib/philomena/images/image.ex
@@ -166,7 +166,7 @@ defmodule Philomena.Images.Image do
     |> validate_length(:image_name, max: 255, count: :bytes)
     |> validate_inclusion(
       :image_mime_type,
-      ~W(image/gif image/jpeg image/png image/svg+xml image/webp video/webm),
+      ~W(image/gif image/jpeg image/png image/svg+xml video/webm),
       message: "(#{attrs["image_mime_type"]}) is invalid"
     )
     |> check_dimensions()
diff --git a/lib/philomena/mime.ex b/lib/philomena/mime.ex
index b73cee87..08d5dfc1 100644
--- a/lib/philomena/mime.ex
+++ b/lib/philomena/mime.ex
@@ -30,7 +30,7 @@ defmodule Philomena.Mime do
   def true_mime("audio/webm"), do: {:ok, "video/webm"}
 
   def true_mime(mime)
-      when mime in ~W(image/gif image/jpeg image/png image/webp image/svg+xml video/webm),
+      when mime in ~W(image/gif image/jpeg image/png image/svg+xml video/webm),
       do: {:ok, mime}
 
   def true_mime(mime), do: {:unsupported_mime, mime}
diff --git a/lib/philomena/scrapers/raw.ex b/lib/philomena/scrapers/raw.ex
index 4fa8197f..0085f54c 100644
--- a/lib/philomena/scrapers/raw.ex
+++ b/lib/philomena/scrapers/raw.ex
@@ -1,5 +1,5 @@
 defmodule Philomena.Scrapers.Raw do
-  @mime_types ["image/gif", "image/jpeg", "image/png", "image/svg", "image/webp", "image/svg+xml", "video/webm"]
+  @mime_types ["image/gif", "image/jpeg", "image/png", "image/svg", "image/svg+xml", "video/webm"]
 
   @spec can_handle?(URI.t(), String.t()) :: true | false
   def can_handle?(_uri, url) do
diff --git a/lib/philomena/tags/tag.ex b/lib/philomena/tags/tag.ex
index 29611df2..924d4c4a 100644
--- a/lib/philomena/tags/tag.ex
+++ b/lib/philomena/tags/tag.ex
@@ -118,7 +118,7 @@ defmodule Philomena.Tags.Tag do
     tag
     |> cast(attrs, [:image, :image_format, :image_mime_type, :uploaded_image])
     |> validate_required([:image, :image_format, :image_mime_type])
-    |> validate_inclusion(:image_mime_type, ~W(image/gif image/jpeg image/png image/webp image/svg+xml))
+    |> validate_inclusion(:image_mime_type, ~W(image/gif image/jpeg image/png image/svg+xml))
   end
 
   def remove_image_changeset(tag) do
diff --git a/lib/philomena_web/views/duplicate_report_view.ex b/lib/philomena_web/views/duplicate_report_view.ex
index 69fbaa8e..200e430e 100644
--- a/lib/philomena_web/views/duplicate_report_view.ex
+++ b/lib/philomena_web/views/duplicate_report_view.ex
@@ -3,7 +3,7 @@ defmodule PhilomenaWeb.DuplicateReportView do
 
   alias PhilomenaWeb.ImageView
 
-  @formats_order ~W(video/webm image/svg+xml image/png image/gif image/jpeg image/webp other)
+  @formats_order ~W(video/webm image/svg+xml image/png image/gif image/jpeg other)
 
   def comparison_url(conn, image),
     do: ImageView.thumb_url(image, can?(conn, :show, image), :full)