117 lines
3.2 KiB
PHP
117 lines
3.2 KiB
PHP
<?php
|
|
|
|
/**
|
|
* ownCloud - gallery application
|
|
*
|
|
* @author Bartek Przybylski
|
|
* @copyright 2012 Bartek Przybylski bartek@alefzero.eu
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
|
|
* License as published by the Free Software Foundation; either
|
|
* version 3 of the License, or any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
|
*
|
|
*/
|
|
|
|
|
|
|
|
if (!isset($_GET['token']) || !isset($_GET['operation'])) {
|
|
OCP\JSON::error(array('cause' => 'Not enought arguments'));
|
|
exit;
|
|
}
|
|
|
|
$operation = $_GET['operation'];
|
|
$token = $_GET['token'];
|
|
|
|
if (!OC_Gallery_Sharing::isTokenValid($token)) {
|
|
OCP\JSON::error(array('cause' => 'Given token is not valid'));
|
|
exit;
|
|
}
|
|
|
|
function handleGetGallery($token, $path) {
|
|
$owner = OC_Gallery_Sharing::getTokenOwner($token);
|
|
$apath = OC_Gallery_Sharing::getPath($token);
|
|
|
|
if ($path == false)
|
|
$root = $apath;
|
|
else
|
|
$root = rtrim($apath,'/').$path;
|
|
|
|
$r = OC_Gallery_Album::find($owner, null, $root);
|
|
$albums = array();
|
|
$photos = array();
|
|
$albumId = -1;
|
|
if ($row = $r->fetchRow()) {
|
|
$albumId = $row['album_id'];
|
|
}
|
|
if ($albumId != -1) {
|
|
|
|
if (OC_Gallery_Sharing::isRecursive($token)) {
|
|
$r = OC_Gallery_Album::find($owner, null, null, $root);
|
|
while ($row = $r->fetchRow())
|
|
$albums[] = $row['album_name'];
|
|
}
|
|
|
|
$r = OC_Gallery_Photo::find($albumId);
|
|
while ($row = $r->fetchRow())
|
|
$photos[] = $row['file_path'];
|
|
}
|
|
|
|
OCP\JSON::success(array('albums' => $albums, 'photos' => $photos));
|
|
}
|
|
|
|
function handleGetThumbnail($token, $imgpath) {
|
|
$owner = OC_Gallery_Sharing::getTokenOwner($token);
|
|
$image = OC_Gallery_Photo::getThumbnail($imgpath, $owner);
|
|
if ($image) {
|
|
OCP\Response::enableCaching(3600 * 24); // 24 hour
|
|
$image->show();
|
|
}
|
|
}
|
|
|
|
function handleGetAlbumThumbnail($token, $albumname)
|
|
{
|
|
$owner = OC_Gallery_Sharing::getTokenOwner($token);
|
|
$view = OCP\Files::getStorage('gallery');
|
|
$file = $view->fopen($albumname.'.png', 'r');
|
|
$image = new OC_Image($file);
|
|
if ($image->valid()) {
|
|
$image->centerCrop();
|
|
$image->resize(200);
|
|
$image->fixOrientation();
|
|
OCP\Response::enableCaching(3600 * 24); // 24 hour
|
|
$image->show();
|
|
}
|
|
}
|
|
|
|
function handleGetPhoto($token, $photo) {
|
|
$owner = OC_Gallery_Sharing::getTokenOwner($token);
|
|
$view = OCP\Files::getStorage('files');
|
|
$file = $view->fopen(urldecode($photo), 'r');
|
|
header('Content-Type: '.OC_Image::getMimeTypeForFile($file));
|
|
OCP\Response::sendFile($file);
|
|
}
|
|
|
|
switch ($operation) {
|
|
case 'get_gallery':
|
|
handleGetGallery($token, isset($_GET['path'])? $_GET['path'] : false);
|
|
break;
|
|
case 'get_thumbnail':
|
|
handleGetThumbnail($token, urldecode($_GET['img']));
|
|
break;
|
|
case 'get_album_thumbnail':
|
|
handleGetAlbumThumbnail($token, urldecode($_GET['albumname']));
|
|
break;
|
|
case 'get_photo':
|
|
handleGetPhoto($token, urldecode($_GET['photo']));
|
|
break;
|
|
}
|
|
|