123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- <?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;
- }
|