Explorar o código

Check if image is of valid clarifai type

denikson %!s(int64=6) %!d(string=hai) anos
pai
achega
9d14314edb
Modificáronse 1 ficheiros con 19 adicións e 2 borrados
  1. 19 2
      main.js

+ 19 - 2
main.js

@@ -5,11 +5,20 @@ const RSSParser = require("rss-parser");
 const interval = require("interval-promise");
 const TurndownService = require("turndown");
 const fs = require("fs");
-const isImage = require("is-image");
 const Jimp = require("jimp");
 const Clarifai = require("clarifai");
 const ClarifaiTOKEN = require("./clarifai_keys.js");
 
+const VALID_EXTENSIONS = new Set([
+    "png",
+    "jpg",
+    "jpeg",
+    "tiff",
+    "tif",
+    "bmp",
+    "webp"
+]);
+
 const clarifaiApp = new Clarifai.App({
     apiKey: ClarifaiTOKEN
 });
@@ -32,6 +41,14 @@ const RSS_UPDATE_INTERVAL_MIN = 5;
 
 const REACT_PROBABILITY = 0.6;
 
+function isValidImage(fileName) {
+    let extPosition = fileName.lastIndexOf(".");
+    if(extPosition < 0)
+        return false;
+    let ext = fileName.substring(extPosition + 1).toLowerCase();
+    return VALID_EXTENSIONS.has(ext);
+}
+
 function getThreadId(url) {
     let result = url.substring(url.lastIndexOf(".") + 1);
     if(result.endsWith("/"))
@@ -220,7 +237,7 @@ client.on("ready", () => {
 client.on("message", m => {
     if (m.author.id == client.user.id) return;
 
-    let imagesCount = m.attachments.filter(v => isImage(v.filename)).size;
+    let imagesCount = m.attachments.filter(v => isValidImage(v.filename)).size;
 
     if(imagesCount > 0) {
         let now = new Date();