Merge remote-tracking branch 'mike/master' into dev

This commit is contained in:
Mario Vavti 2017-11-21 10:20:41 +01:00
commit e2814f5d80
6 changed files with 130 additions and 43 deletions

View File

@ -17,46 +17,36 @@ class Thumbnail {
if(! $c)
return;
$preview_style = intval(get_config('system','thumbnail_security',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));
$attach = $c[0];
$isize = 300;
$default_controller = null;
if(strpos($attach['filetype'],'text/') !== false) {
$stream = @fopen($attach['content'],'rb');
if($stream) {
$content = trim(stream_get_contents($stream,4096));
$content = str_replace("\r",'',$content);
$content_a = explode("\n",$content);
}
if($content_a) {
$fsize = 4;
$lsize = 8;
$image = imagecreate($isize,$isize);
imagecolorallocate($image,255,255,255);
$colour = imagecolorallocate($image,0,0,0);
$border = imagecolorallocate($image,64,64,64);
$x1 = 0;
$y1 = 0;
$x2 = ImageSX($image) - 1;
$y2 = ImageSY($image) - 1;
for($i = 0; $i < 2; $i++) {
ImageRectangle($image, $x1++, $y1++, $x2--, $y2--, $border);
}
foreach($content_a as $l => $t) {
$l = $l + 1;
$x = 3;
$y = ($l * $lsize) + 3 - $fsize;
imagestring($image,1,$x,$y,$t,$colour);
if(($l * $lsize) >= $isize) {
break;
$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;
}
}
}
imagejpeg($image,$attach['content'] . '.thumb');
}
}
if(($default_controller) && (! file_exists(dbunescbin($attach['content']) . '.thumb'))) {
$default_controller->Thumb($attach,$preview_style,$preview_width,$preview_height);
}
}
}
}

View File

@ -129,12 +129,16 @@ class File extends DAV\Node implements DAV\IFile {
$album = '';
$os_path = '';
$r = q("SELECT flags, folder, os_storage, os_path, filename, is_photo FROM attach WHERE hash = '%s' AND uid = %d LIMIT 1",
$r = q("SELECT flags, folder, os_storage, os_path, display_path, filename, is_photo FROM attach WHERE hash = '%s' AND uid = %d LIMIT 1",
dbesc($this->data['hash']),
intval($c[0]['channel_id'])
);
if ($r) {
$os_path = $r[0]['os_path'];
$display_path = $r[0]['display_path'];
$filename = $r[0]['filename'];
if (intval($r[0]['os_storage'])) {
$d = q("select folder, content from attach where hash = '%s' and uid = %d limit 1",
@ -210,7 +214,7 @@ class File extends DAV\Node implements DAV\IFile {
if($is_photo) {
require_once('include/photos.php');
$args = array( 'resource_id' => $this->data['hash'], 'album' => $album, 'os_syspath' => $f, 'os_path' => $os_path, 'filename' => $r[0]['filename'], 'getimagesize' => $gis, 'directory' => $direct );
$args = array( 'resource_id' => $this->data['hash'], 'album' => $album, 'os_syspath' => $f, 'os_path' => $os_path, 'display_path' => $display_path, 'filename' => $filename, 'getimagesize' => $gis, 'directory' => $direct );
$p = photo_upload($c[0],\App::get_observer(),$args);
}

View File

@ -0,0 +1,37 @@
<?php
namespace Zotlabs\Thumbs;
use \ID3Parser\ID3Parser;
class Mp3audio {
function Match($type) {
return(($type === 'audio/mpeg') ? true : false );
}
function Thumb($attach,$preview_style,$height = 300, $width = 300) {
$p = new ID3Parser();
$id = $p->analyze(dbunescbin($attach['content']));
$photo = isset($id['id3v2']['APIC'][0]['data']) ? $id['id3v2']['APIC'][0]['data'] : null;
if(is_null($photo) && isset($id['id3v2']['PIC'][0]['data'])) {
$photo = $id['id3v2']['PIC'][0]['data'];
}
if($photo) {
$image = imagecreatefromstring($photo);
$dest = imagecreatetruecolor( $width, $height );
$srcwidth = imagesx($image);
$srcheight = imagesy($image);
imagealphablending($dest, false);
imagesavealpha($dest, true);
imagecopyresampled($dest, $image, 0, 0, 0, 0, $width, $height, $srcwidth, $srcheight);
imagedestroy($image);
imagejpeg($dest,dbunescbin($attach['content']) . '.thumb');
}
}
}

49
Zotlabs/Thumbs/Text.php Normal file
View File

@ -0,0 +1,49 @@
<?php
namespace Zotlabs\Thumbs;
class Text {
function MatchDefault($type) {
return(($type === 'text') ? true : false );
}
function Thumb($attach,$preview_style,$height = 300, $width = 300) {
$stream = @fopen(dbunescbin($attach['content']),'rb');
if($stream) {
$content = trim(stream_get_contents($stream,4096));
$content = str_replace("\r",'',$content);
$content_a = explode("\n",$content);
}
if($content_a) {
$fsize = 4;
$lsize = 8;
$image = imagecreate($width,$height);
imagecolorallocate($image,255,255,255);
$colour = imagecolorallocate($image,0,0,0);
$border = imagecolorallocate($image,208,208,208);
$x1 = 0;
$y1 = 0;
$x2 = ImageSX($image) - 1;
$y2 = ImageSY($image) - 1;
for($i = 0; $i < 2; $i++) {
ImageRectangle($image, $x1++, $y1++, $x2--, $y2--, $border);
}
foreach($content_a as $l => $t) {
$l = $l + 1;
$x = 3;
$y = ($l * $lsize) + 3 - $fsize;
imagestring($image,1,$x,$y,$t,$colour);
if(($l * $lsize) >= $height) {
break;
}
}
imagejpeg($image,dbunescbin($attach['content']) . '.thumb');
}
}
}

View File

@ -105,9 +105,6 @@ a,
color: $link_colour;
}
.cloud-icon.tiles i {
color: #aaa;
}
a:hover,
a:focus,
@ -1735,13 +1732,23 @@ dl.bb-dl > dd > li {
margin: 5px;
}
.cloud-icon-container {
width: 48px;
height: 48px;
border: 1px solid #eee;
border-radius: $radius;
}
.cloud-icon i {
font-size: 48px;
font-size: 32px;
color: #aaa;
margin-top: 8px;
}
.cloud-icon img {
width: 48px;
height: 48px;
border-radius: $radius;
}
.cloud-title {

View File

@ -4,7 +4,7 @@
{{if $parentpath}}
<div class="cloud-container" >
<div class="cloud-icon tiles"><a href="{{$parentpath.path}}">
<i class="fa fa-fw fa-level-up" ></i>
<div class="cloud-icon-container"><i class="fa fa-fw fa-level-up" ></i></div>
</a>
</div>
<div class="cloud-title"><a href="{{$parentpath.path}}">..</a>
@ -18,7 +18,7 @@
{{if $item.photo_icon}}
<img src="{{$item.photo_icon}}" title="{{$item.type}}" >
{{else}}
<i class="fa fa-fw {{$item.iconFromType}}" title="{{$item.type}}"></i>
<div class="cloud-icon-container"><i class="fa fa-fw {{$item.iconFromType}}" title="{{$item.type}}"></i></div>
{{/if}}
</a>
</div>