From fc4529a3e0b28b7757e9eb17d18c9fde91ffa8de Mon Sep 17 00:00:00 2001
From: Chaska <166928710+chaskayote@users.noreply.github.com>
Date: Fri, 26 Apr 2024 01:42:10 -0500
Subject: [PATCH] continually trying to add webp

---
 lib/philomena/adverts/advert.ex                  | 2 +-
 lib/philomena/images/image.ex                    | 2 +-
 lib/philomena/mime.ex                            | 2 +-
 lib/philomena/scrapers/raw.ex                    | 2 +-
 lib/philomena/tags/tag.ex                        | 2 +-
 lib/philomena/users/user.ex                      | 2 +-
 lib/philomena_web/views/duplicate_report_view.ex | 2 +-
 7 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/lib/philomena/adverts/advert.ex b/lib/philomena/adverts/advert.ex
index 84dddad0..bb002512 100644
--- a/lib/philomena/adverts/advert.ex
+++ b/lib/philomena/adverts/advert.ex
@@ -59,7 +59,7 @@ defmodule Philomena.Adverts.Advert do
       :removed_image
     ])
     |> validate_required([:image])
-    |> validate_inclusion(:image_mime_type, ["image/png", "image/jpeg", "image/gif"])
+    |> validate_inclusion(:image_mime_type, ["image/png", "image/jpeg", "image/webp", "image/gif"])
     |> validate_inclusion(:image_width, 699..729)
     |> validate_inclusion(:image_height, 79..91)
     |> validate_inclusion(:image_size, 0..950_000)
diff --git a/lib/philomena/images/image.ex b/lib/philomena/images/image.ex
index d8e791c8..d6c85a68 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 video/webm),
+      ~W(image/gif image/jpeg image/png image/svg+xml image/webp video/webm),
       message: "(#{attrs["image_mime_type"]}) is invalid"
     )
     |> check_dimensions()
diff --git a/lib/philomena/mime.ex b/lib/philomena/mime.ex
index 08d5dfc1..b73cee87 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/svg+xml video/webm),
+      when mime in ~W(image/gif image/jpeg image/png image/webp 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 0085f54c..4fa8197f 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/svg+xml", "video/webm"]
+  @mime_types ["image/gif", "image/jpeg", "image/png", "image/svg", "image/webp", "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 924d4c4a..29611df2 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/svg+xml))
+    |> validate_inclusion(:image_mime_type, ~W(image/gif image/jpeg image/png image/webp image/svg+xml))
   end
 
   def remove_image_changeset(tag) do
diff --git a/lib/philomena/users/user.ex b/lib/philomena/users/user.ex
index eae819c4..10c3d6e1 100644
--- a/lib/philomena/users/user.ex
+++ b/lib/philomena/users/user.ex
@@ -410,7 +410,7 @@ defmodule Philomena.Users.User do
     |> validate_number(:avatar_size, greater_than: 0, less_than_or_equal_to: 300_000)
     |> validate_number(:avatar_width, greater_than: 0, less_than_or_equal_to: 1000)
     |> validate_number(:avatar_height, greater_than: 0, less_than_or_equal_to: 1000)
-    |> validate_inclusion(:avatar_mime_type, ~W(image/gif image/jpeg image/png))
+    |> validate_inclusion(:avatar_mime_type, ~W(image/gif image/jpeg image/png image/webp))
   end
 
   def remove_avatar_changeset(user) do
diff --git a/lib/philomena_web/views/duplicate_report_view.ex b/lib/philomena_web/views/duplicate_report_view.ex
index 200e430e..69fbaa8e 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 other)
+  @formats_order ~W(video/webm image/svg+xml image/png image/gif image/jpeg image/webp other)
 
   def comparison_url(conn, image),
     do: ImageView.thumb_url(image, can?(conn, :show, image), :full)