namespace Shaarli;
use Shaarli\Config\ConfigManager;
-use WebThumbnailer\Exception\WebThumbnailerException;
-use WebThumbnailer\WebThumbnailer;
use WebThumbnailer\Application\ConfigManager as WTConfigManager;
+use WebThumbnailer\WebThumbnailer;
/**
* Class Thumbnailer
*/
class Thumbnailer
{
- const COMMON_MEDIA_DOMAINS = [
+ protected const COMMON_MEDIA_DOMAINS = [
'imgur.com',
'flickr.com',
'youtube.com',
'instagram.com',
'pinterest.com',
'pinterest.fr',
+ 'soundcloud.com',
'tumblr.com',
'deviantart.com',
];
- const MODE_ALL = 'all';
- const MODE_COMMON = 'common';
- const MODE_NONE = 'none';
+ public const MODE_ALL = 'all';
+ public const MODE_COMMON = 'common';
+ public const MODE_NONE = 'none';
/**
* @var WebThumbnailer instance.
$this->conf = $conf;
if (! $this->checkRequirements()) {
- $this->conf->set('thumbnails.enabled', false);
+ $this->conf->set('thumbnails.mode', Thumbnailer::MODE_NONE);
$this->conf->write(true);
// TODO: create a proper error handling system able to catch exceptions...
- die(t('php-gd extension must be loaded to use thumbnails. Thumbnails are now disabled. Please reload the page.'));
+ die(t(
+ 'php-gd extension must be loaded to use thumbnails. '
+ . 'Thumbnails are now disabled. Please reload the page.'
+ ));
}
$this->wt = new WebThumbnailer();
*/
public function get($url)
{
- if ($this->conf->get('thumbnails.mode') === self::MODE_COMMON
+ if (
+ $this->conf->get('thumbnails.mode') === self::MODE_COMMON
&& ! $this->isCommonMediaOrImage($url)
) {
return false;
try {
return $this->wt->thumbnail($url);
- } catch (WebThumbnailerException $e) {
+ } catch (\Throwable $e) {
// Exceptions are only thrown in debug mode.
error_log(get_class($e) . ': ' . $e->getMessage());
}