]> git.immae.eu Git - github/shaarli/Shaarli.git/blobdiff - application/Thumbnailer.php
Use web-thumbnailer to retrieve thumbnails
[github/shaarli/Shaarli.git] / application / Thumbnailer.php
diff --git a/application/Thumbnailer.php b/application/Thumbnailer.php
new file mode 100644 (file)
index 0000000..b669ada
--- /dev/null
@@ -0,0 +1,49 @@
+<?php
+
+use WebThumbnailer\WebThumbnailer;
+
+/**
+ * Class Thumbnailer
+ *
+ * Utility class used to retrieve thumbnails using web-thumbnailer dependency.
+ */
+class Thumbnailer
+{
+    /**
+     * @var WebThumbnailer instance.
+     */
+    protected $wt;
+
+    /**
+     * @var ConfigManager instance.
+     */
+    protected $conf;
+
+    /**
+     * Thumbnailer constructor.
+     *
+     * @param ConfigManager $conf instance.
+     */
+    public function __construct($conf)
+    {
+        $this->conf = $conf;
+        $this->wt = new WebThumbnailer();
+        \WebThumbnailer\Application\ConfigManager::addFile('inc/web-thumbnailer.json');
+        $this->wt->maxWidth($this->conf->get('thumbnails.width'))
+                 ->maxHeight($this->conf->get('thumbnails.height'))
+                 ->crop(true)
+                 ->debug($this->conf->get('dev.debug', false));
+    }
+
+    /**
+     * Retrieve a thumbnail for given URL
+     *
+     * @param string $url where to look for a thumbnail.
+     *
+     * @return bool|string The thumbnail relative cache file path, or false if none has been found.
+     */
+    public function get($url)
+    {
+        return $this->wt->thumbnail($url);
+    }
+}