PHPIndex

This page lists files in the current directory. You can view content, get download/execute commands for Wget, Curl, or PowerShell, or filter the list using wildcards (e.g., `*.sh`).

check.html
wget 'https://sme10.lists2.roe3.org/kodbox/plugins/fileThumb/static/check.html'
View Content
<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
	<meta name="renderer" content="webkit">
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
	<title><?php echo LNG('fileThumb.check.title');?></title>
	<link rel="icon" type="image/x-png" href="<?php echo $this->pluginHost.'static/images/icons/text.png';?>">
	<?php $this->link();?>
	<style type="text/css">
		body{background-color:#f0f2f5;}
		html,body{position: inherit;width: inherit;height:inherit;overflow: inherit;}
		body a,body a:hover{color: #1890ff;}
		.body-panel{
			width:70%;margin:5% auto 5% auto;
			font-size: 13px;color:#666;
			background:#fff;border-radius:4px;
			padding-top:50px;padding-bottom: 50px;
			box-shadow: 0 5px 20px rgba(0,0,0,0.05);
		}
		.body-panel .check-result{text-align: center;color:#000;}
		.body-panel .check-result .icon{width:70px;height:70px;line-height:70px;font-size:30px;}
		.check-result-title{font-size: 24px;line-height: 32px;margin:20px 0;}
		.check-result-desc{color:#aaa;margin:0 0 20px 0;}

		.body-panel .check-list{padding:20px 40px;border-radius: 2px;background: #fafafa;}
		.body-panel .check-list .list-title{
			color:#000;font-size:18px;margin-bottom:30px;
			border-left: 5px solid #2196F3;padding-left: 15px;
		}
		.body-panel .check-list .check-list-item{margin-bottom:15px;}
		.body-panel .check-list .check-list-item .icon{margin-right:8px;}
		.check-list-item .error-info {
			color: #f5222d;
			padding-left: 5px;
			padding: 2px 5px;
			border-radius: 2px;
		}	
		.icon{
		    display: inline-block;
		    width: 20px;height: 20px;
		    background: rgba(0, 0, 0, 0.02);
		    text-align: center;
		    color: #666;
		    border-radius: 50%;
		    line-height: 20px;
		    font-size: 12px;
		}
	</style>
</head>


<body>
	<div class="body-panel">
		<div class="check-result">
			<div class="icon icon-loading"></div> 
			<div class="check-result-title"><?php echo LNG('fileThumb.check.ing');?>...</div>
			<div class="check-result-desc">&nbsp;
				<span class="error-info hidden"><?php echo LNG('fileThumb.check.tips');?></span>
			</div>
		</div>
		<!--<div class="check-list">-->
		<!--	<h3 class="list-title">检测详细结果如下:</h3>-->
		<!--</div>-->
		
		<script type="text/javascript">
			var type = '<?php echo isset($this->in["type"]) ? $this->in["type"] : "";?>';
			var updateStatus = function(success,msg){
				var $result = $('.check-result');
				if(success){
					$result.find('.icon').removeClass('icon-loading').addClass('icon-success');
					$result.find('.check-result-title').html("<?php echo LNG('fileThumb.check.ok');?>");
					msg = type == 'imgnry' ? 'Imaginary' : 'ImageMagick';
					$result.find('.error-info').html(msg).removeClass('hidden');
				}else{
					$result.find('.icon').removeClass('icon-loading').addClass('icon-error');
					$result.find('.check-result-title').html("<?php echo LNG('fileThumb.check.faild');?>");
					$result.find('.error-info').html(msg).removeClass('hidden');
					// $result.find('.error-info').removeClass('hidden');
				}
			}
			$(document).ready(function(){
				$.ajax({
					url:"<?php echo $this->pluginApi.'check&check=1';?>&type="+type,
					timeout:5000,
					error:function(){
						updateStatus(false);
					},
					success: function(data){
						updateStatus(data.code,data.data);
					}
				});
			});
		</script>
	</div>
</body>
</html>
check.js
wget 'https://sme10.lists2.roe3.org/kodbox/plugins/fileThumb/static/check.js'
View Content
(function(){
	$('body').delegate('.check-psd-server,.check-imgnry-server','click',function(){
		var type = $(this).hasClass('check-imgnry-server') ? '&type=imgnry' : '';
		var $dialog = $(this).parents('.app-config-fileThumb');
		$dialog.find('[name=pluginSaveKeepOpen]').val(1);
        $dialog.find('.aui-footer .aui-state-highlight').click();
		_.delay(function(){
            $dialog.find('[name=pluginSaveKeepOpen]').val(0);
			var url = G.kod.appApi + 'plugin/fileThumb/check'+type;
			var options = {width:640,height:420}
			core.openDialog(url,'',LNG['fileThumb.check.title'],false,options);
		},200);
	});
	$('body').delegate('.convert-stop-all','click',function(){
		var url = G.kod.appApi + 'plugin/fileThumb/check&action=stopAll';
		var options = {width:640,height:420}
		core.openDialog(url,'',"Stop All Task",false,options);
	});
	$('body').delegate('.check-psd-help','click',function(){
		if(_.get(G,'kod.systemOS') == 'linux'){
			window.open('http://doc.kodcloud.com/vip/#/psd/linux');
		}else{
			window.open('http://doc.kodcloud.com/vip/#/psd/win');
		}
	});
	$('body').delegate('.check-imgnry-help','click',function(){
		// https://github.com/h2non/imaginary
		window.open('https://docs.kodcloud.com/setup/thumbnail/');
	});

	// 查看日志
	var openWindow = function(url,title,width,height){
		title  = title?title:LNG['common.tips'];
		width  = width?width:'80%';
		height = height?height:'70%';
		if($.isWap){
			width = "100%";height = "100%";
		}
		var dialog = $.dialog.open(url,{
			ico:"",title:title,
			fixed:true,resize:true,
			width:width,height:height,
			className: 'dialog-no-title'
		});
		return dialog;
	};
	$('body').delegate('.view-log','click',function(){
		var timeShow = dateFormat(time(),"20y_m_d");
		var file = "./data/temp/log/filethumb/"+timeShow+"__log.php";
		var param = "dataArr="+ jsonEncode([{"type":"file","path":file}]);
			param += '&CSRF_TOKEN='+Cookie.get('CSRF_TOKEN');
		$.ajax({
			url:G.kod.appApi + 'explorer/index/pathInfo',
			type:'POST',
			dataType:'json',
			data:param,
			success: function(result){
				if(! result.code){
					Tips.tips('今日暂无日志!','warning');
				}else{
					openWindow("./#fileView&path="+result.data.path);
				}
			}
		});
	});	
})();
icon.png
wget 'https://sme10.lists2.roe3.org/kodbox/plugins/fileThumb/static/icon.png'
View Content
main.js
wget 'https://sme10.lists2.roe3.org/kodbox/plugins/fileThumb/static/main.js'
View Content
// imageExifPlugin
kodReady.push(function(){
	//打开方式关联; fileShowView 预览文件处理掉;
	LNG.set(jsonDecode(urlDecode("{{LNG}}")));
	Events.bind('explorer.kodApp.before',function(appList){
		appList.push({
			name:'{{package.id}}',
			title:'{{package.name}}',
			ext:"{{config.fileExt}}",
			sort:"{{config.fileSort}}",
			icon:'x-item-icon x-psd',
			callback:function(path,ext,name){
				var url = API_URL('plugin/fileThumb/cover','width=1200&path='+urlEncode(path)+'&name=/'+name);
				kodApp.open(url,'png',name);
			}
		});
		if("{{config.videoConvert}}" == '1'){kodApp.videoLoadSmall = videoLoadSmall;}
	});
	Events.bind("admin.leftMenu.before",function(menuList){
		menuList.push({
			title:LNG['fileThumb.meta.name']+'&'+LNG['fileThumb.video.title'],
			icon:"ri-movie-line-2",
			link:"admin/storage/fileThumb",
			after:'admin/storage/share',//after/before; 插入菜单所在位置;
			sort:50,
			pluginName:"{{pluginName}}",
		});
	});
	Events.bind('plugin.config.formAfter', function(_this){
		var form = _this['form{{pluginName}}'];
		if (!form || !form.$el) return;
		if (form.getValue('imgnryApiKey')) {
			_.delay(function(){
				form.$('.item-imgnryMore button').click();
			},10);
		}
	});
	
	var status = {
		STATUS_SUCCESS	:2,	//已转码成功; 播放标清视频
		STATUS_IGNORE	:3,	//忽略转换,大小格式等不符合; 提示并播放原视频
		STATUS_ERROR	:4,	//转换失败,ffmepg不存在等原因; 提示并播放原视频
		STATUS_RUNNING	:5,	//转换进行中; 提示并播放原视频; 可以切换到原视频; 转换完成可以切换为标清;
		STATUS_LIMIT	:6,	//任务数达到上限,忽略该任务. 提示并播放原视频
	};
	var autoPlayFast = "{{config.videoPlayType}}" == 'normal';
	var videoLoadSmall = function(filePath,kodApp,$target,success){
		var timeout = 1000,delay = false;
		var api = API_URL('plugin/fileThumb/videoSmall','noOutput=1&path='+urlEncode(filePath));
		var lastAjax = false;
		var request  = function(){
			lastAjax = $.ajax({url:api,dataType:'json',success:function(data){
				// console.log(111,arguments);
				if(!data){delay = setTimeout(request,timeout);return;}
				if(data && (!data.data || !data.code)) return;
				
				var runInfo = data.data;
				if(runInfo.status == status.STATUS_SUCCESS){
					if(autoPlayFast){tips(runInfo.msg);}
					success(runInfo.data,runInfo.size,autoPlayFast);return;
				}
				if(runInfo.status == status.STATUS_RUNNING){
					tipsProgress(runInfo.msg,runInfo.data);
					delay = setTimeout(request,timeout);return;
				}
				if(runInfo.status == status.STATUS_IGNORE){runInfo.msg = '';}
				tips(runInfo.msg,runInfo);
				success(false);
			}});
		};

		var onClose = function(){
		    if(delay){clearTimeout(delay);}
		    if(lastAjax){lastAjax.abort();}
			kodApp.unbind('vedioOnClose',onClose);
		};
		kodApp.bind('vedioOnClose',onClose);
		
		var $progress = false;
		var tips = function(message,runInfo){
			if($progress){
				$progress.hide().fadeOut(200,function(){
					$progress.remove();$progress = false;
				});
				onClose();
			}
			if(!message) return;
			
			var tipsTime = 2500;
			var $tips = $('<div class="video-show-tips"></div>').insertAfter($target);
			if(runInfo && runInfo.status == status.STATUS_ERROR){
				$tips.css({'background':'rgb(255,100,100,0.5)'});
				tipsTime = 6000;console.warn(message);
			}
			$tips.html(message).hide().fadeIn(300);
			$tips.delay(tipsTime).fadeOut(300,function(){$tips.remove();});
		};
		var tipsProgress = function(title,info){
			if(!$progress){
				$progress = $('<div class="video-show-tips show-progress"></div>').insertAfter($target);
				$progress.hide().fadeIn(200);
			}
			var needTime = LNG['explorer.upload.needTime'] + parseInt(info.timeNeed) + 's';
			var percent  = (info.taskPercent * 100).toFixed(2) + '%; ';
			if(!info || !info.timeNeed){needTime = '';}
			if(!info || !info.taskPercent){percent = '';}
			var message = title + ' ' + percent+needTime;
			$progress.html(message);
		}
		request();
	}
	
	

	var loadStyle = function(){
		var extArr 	= 'mov,webm,mp4,m4v,mkv,f4v,flv,ogv'.split(',');
		var style 	= '';
		var styleIcon = [],styleIconHover = [],styleIconList=[],styleIconSplit=[];
		_.each(extArr,function(ext){
			styleIcon.push('.file .path-ico.path-icon-'+ext+' .picture:before');
			styleIconHover.push('.file.hover .path-ico.path-icon-'+ext+' .picture:before');
			styleIconList.push('.file-list-list .file .path-ico.path-icon-'+ext+' .picture:before');
			styleIconSplit.push('.file-list-split .file .path-ico.path-icon-'+ext+' .picture:before');
		});
		// -webkit-backdrop-filter: blur(10px);backdrop-filter: blur(10px);\
		style += styleIcon.join(',') + "{\
			content:'\\f00a';font-family: 'remixicon';\
			position: absolute;margin: auto;z-index: 5;\
			left: 0;top: 0;right: 0;bottom: 0;\
			transition: 0.2s all;\
			width: 28px;height: 28px;line-height: 28px; font-size: 20px;\
			border-radius:50%;color: rgba(255,255,255,0.9);\
		}\
		.file .path-ico .picture:before{background: rgba(0,0,0,0.4);}\
		.file.hover .path-ico .picture:before{background: rgba(0,0,0,.6);color:#fff;}\
		.video-show-tips{\
			position:absolute;bottom:45px;right:20px;z-index:100;\
			background:rgba(0,0,0,0.4);color:#fff;pointer-events: none;\
			padding:4px 10px;border-radius:3px;opacity: 0.8;\
		}";
		style += styleIconList.join(',') +','+ styleIconSplit.join(',') + "{width:15px;height:15px;line-height:15px;font-size:14px;}";
		// style += '.form-row.form-userSelect .setting-content .select-user-box{padding:10px 0px;}';
		style += ".app-config-fileThumb.dialog-form .form-box .form-row.item-imgnryMore{\
					display: inline-block;position: absolute;margin-top:-35px;margin-left: 420px;\
				}\
				.app-config-fileThumb.dialog-form .form-box .form-row.item-imgnryMore .setting-title {display: none;}";
		$.addStyle(style);
	}
	if(!$.hasKey('plugin.fileThumb.style')){loadStyle();}
});