Browse Source

Check imported emojis for mimetype

Signed-off-by: Nils van Lück <nils@vanlueck.dev>
Nils van Lück 2 years ago
parent
commit
c96bcd559d
1 changed files with 9 additions and 1 deletions
  1. 9 1
      app/Console/Commands/ImportEmojis.php

+ 9 - 1
app/Console/Commands/ImportEmojis.php

@@ -52,7 +52,7 @@ class ImportEmojis extends Command
 
         foreach (new \RecursiveIteratorIterator($tar) as $entry) {
             $this->line("Processing {$entry->getFilename()}");
-            if (!$entry->isFile() || !$this->isImage($entry)) {
+            if (!$entry->isFile() || !$this->isImage($entry) || !$this->isEmoji($entry->getPathname())) {
                 $failed++;
                 continue;
             }
@@ -107,4 +107,12 @@ class ImportEmojis extends Command
         $image = getimagesize($file->getPathname());
         return $image !== false;
     }
+
+    private function isEmoji($filename)
+    {
+        $allowedMimeTypes = ['image/png', 'image/jpeg', 'image/webp'];
+        $mimeType = mime_content_type($filename);
+
+        return in_array($mimeType, $allowedMimeTypes);
+    }
 }