<?php /** @file */ namespace Zotlabs\Daemon; class Thumbnail { static public function run($argc, $argv) { if (!$argc == 2) return; $c = q("select * from attach where hash = '%s' ", dbesc($argv[1]) ); if (!$c) return; $attach = $c[0]; $preview_style = intval(get_config('system', 'thumbnail_security', 0)); $preview_width = intval(get_config('system', 'thumbnail_width', 300)); $preview_height = intval(get_config('system', 'thumbnail_height', 300)); $p = [ 'attach' => $attach, 'preview_style' => $preview_style, 'preview_width' => $preview_width, 'preview_height' => $preview_height, 'thumbnail' => null ]; /** * @hooks thumbnail * * \e array \b attach * * \e int \b preview_style * * \e int \b preview_width * * \e int \b preview_height * * \e string \b thumbnail */ call_hooks('thumbnail', $p); if ($p['thumbnail']) { return; } $default_controller = null; $files = glob('Zotlabs/Thumbs/*.php'); if ($files) { foreach ($files as $f) { $clsname = '\\Zotlabs\\Thumbs\\' . ucfirst(basename($f, '.php')); if (class_exists($clsname)) { $x = new $clsname(); if (method_exists($x, 'Match')) { $matched = $x->Match($attach['filetype']); if ($matched) { $x->Thumb($attach, $preview_style, $preview_width, $preview_height); } } if (method_exists($x, 'MatchDefault')) { $default_matched = $x->MatchDefault(substr($attach['filetype'], 0, strpos($attach['filetype'], '/'))); if ($default_matched) { $default_controller = $x; } } } } } if (($default_controller) && ((!file_exists(dbunescbin($attach['content']) . '.thumb')) || (filectime(dbunescbin($attach['content']) . 'thumb') < (time() - 60)))) { $default_controller->Thumb($attach, $preview_style, $preview_width, $preview_height); } } }