Files
Pichome/dzz/qcos/classes/thumb.php
2024-01-31 01:00:33 +08:00

109 lines
4.6 KiB
PHP

<?php
namespace dzz\qcos\classes;
use \core as C;
use \DB as DB;
use \IO as IO;
class thumb{
private $video = null;
public function run($meta){
global $_G;
if(!$meta['ext'] || strpos($meta['bz'],'QCOS') === false){
return '';
}
$connectdata = C::t('connect_storage')->fetch($meta['remoteid']);
$hostarr = explode(':',$connectdata['hostname']);
$config = [
'secretId' => trim($connectdata['access_id']),
'secretKey' => dzzdecode($connectdata['access_key'], 'QCOS'),
'region' => $hostarr[1],
'schema' => $hostarr[0],
'bucket'=>trim($connectdata['bucket']),
];
include_once DZZ_ROOT.'dzz'.BS.'qcos'.BS.'class'.BS.'class_video.php';
$this->video = new \video($config);
// $videoexts = getglobal('config/qcosmedia') ? explode(',', getglobal('config/qcosmedia')):array('f4v','3gp','avi','flv','mp4','m3u8','mpg','asf','wmv','mkv','mov','ts','webm','mxf');
$videoexts = array('f4v','3gp','avi','flv','mp4','m3u8','mpg','asf','wmv','mkv','mov','ts','webm','mxf');
$officeexts = getglobal('config/qcosoffice') ? explode(',',getglobal('config/qcosoffice')):array('pptx','ppt','pot','potx','pps','ppsx','dps','dpt','pptm','potm','ppsm','doc','dot','wps','wpt','docx','dotx','docm','dotm','xls','xlt','et','ett','xlsx','xltx','csv','xlsb','xlsm','xltm','ets','pdf','lrc','c','cpp','h','asm','s','java','asp','bat','bas','prg','cmd','rtf','txt','log','xml','htm','html');
$officestatus = $connectdata['docstatus'];
//$videostatus = $connectdata['mediastatus'];
$extraparams = $meta['extraparams'];
$watermd5 = '';
if($extraparams['watermarkstatus']){
$watermd5 = !$extraparams['watermarktext'] ? $_G['setting']['watermd5']:($extraparams['watermarktext'] ? $extraparams['watermarktext']:$_G['setting']['watermarktext']);
}
//获取视频缩略图
if(in_array($meta['ext'],$videoexts)){
if($meta['duration']){
$start=ceil($meta['duration']/5);
}else{
$start = 1;
}
$extraflag = '';
if ($_G['setting']['watermarkstatus'] || $extraparams['position_text'] || $extraparams['position']) {
$extraflag .= '_w';
}
if ($extraparams['watermarktype']) {
$extraflag .= '_' . $extraparams['watermarktype'];
}
if ($extraparams['watermarktype']['watermarktext']) {
$extraflag .= '_' . $extraparams['watermarktext'];
}
$thumbpath = $this->getthumbpath('pichomethumb');
if($meta['aid']) $thumbname = md5($meta['aid'].$extraflag).'.webp';
else $thumbname = md5($meta['rid'].$extraflag).'.webp';
$thumbpath = $thumbpath.$thumbname;
$defaultspace = $_G['setting']['defaultspacesetting'];
$fpatharr = explode(':',$meta['path']);
unset($fpatharr[0]);
//$ofpath = implode('/',$fpatharr);
$object =$fpatharr[2];
$result = $this->video->get_Snapshot($object, $start,$thumbpath);
//如果获取到缩略图
if ($result['success']) {
if($defaultspace['bz'].':'.$defaultspace['did'].':' != $meta['bz']){
$thumbpath = $meta['bz'].':'.$meta['remoteid'].':'.$result['success'];
$cloudpath = $defaultspace['bz'].':'.$defaultspace['did'] . ':' .$thumbpath;
$return = IO::moveThumbFile($cloudpath,$thumbpath);
if(isset($return['error'])){
return false;
}
}else{
$cloudpath = $result['success'];
}
return array($cloudpath);
}else{
return '';
}
}elseif(in_array($meta['ext'],$officeexts)){//获取文档缩略图
$result = $this->video->getDocthumb($meta);
if ($result['success']) {
return array($result['success']);
}else{
return '';
}
}
}
public function getthumbpath($dir = 'dzz'){
$subdir = $subdir1 = $subdir2 = '';
$subdir1 = date('Ym');
$subdir2 = date('d');
$subdir = $subdir1 . '/' . $subdir2 . '/';
// $target1 = $dir . '/' . $subdir . 'index.html';
$target = $dir . '/' . $subdir;
return $target;
}
}