connect preview lib to filesystem hooks
This commit is contained in:
parent
a03787bc42
commit
eebc15dce0
2 changed files with 71 additions and 44 deletions
|
@ -474,6 +474,7 @@ class OC {
|
||||||
|
|
||||||
self::registerCacheHooks();
|
self::registerCacheHooks();
|
||||||
self::registerFilesystemHooks();
|
self::registerFilesystemHooks();
|
||||||
|
self::registerPreviewHooks();
|
||||||
self::registerShareHooks();
|
self::registerShareHooks();
|
||||||
|
|
||||||
//make sure temporary files are cleaned up
|
//make sure temporary files are cleaned up
|
||||||
|
@ -539,6 +540,14 @@ class OC {
|
||||||
OC_Hook::connect('OC_Filesystem', 'rename', 'OC_Filesystem', 'isBlacklisted');
|
OC_Hook::connect('OC_Filesystem', 'rename', 'OC_Filesystem', 'isBlacklisted');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* register hooks for previews
|
||||||
|
*/
|
||||||
|
public static function registerPreviewHooks() {
|
||||||
|
OC_Hook::connect('OC_Filesystem', 'post_write', 'OC_Preview', 'post_write');
|
||||||
|
OC_Hook::connect('OC_Filesystem', 'delete', 'OC_Preview', 'post_delete');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* register hooks for sharing
|
* register hooks for sharing
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -55,7 +55,7 @@ class OC_Preview {
|
||||||
* false if thumbnail does not exist
|
* false if thumbnail does not exist
|
||||||
* path to thumbnail if thumbnail exists
|
* path to thumbnail if thumbnail exists
|
||||||
*/
|
*/
|
||||||
public function __construct($user = null, $root = '', $file = '', $maxX = 0, $maxY = 0, $scalingup = true){
|
public function __construct($user = null, $root = '', $file = '', $maxX = 0, $maxY = 0, $scalingup = true, $force = false){
|
||||||
//set config
|
//set config
|
||||||
$this->max_x = OC_Config::getValue('preview_max_x', null);
|
$this->max_x = OC_Config::getValue('preview_max_x', null);
|
||||||
$this->max_y = OC_Config::getValue('preview_max_y', null);
|
$this->max_y = OC_Config::getValue('preview_max_y', null);
|
||||||
|
@ -71,6 +71,7 @@ class OC_Preview {
|
||||||
$this->fileview = new \OC\Files\View('/' . $user . '/' . $root);
|
$this->fileview = new \OC\Files\View('/' . $user . '/' . $root);
|
||||||
$this->userview = new \OC\Files\View('/' . $user);
|
$this->userview = new \OC\Files\View('/' . $user);
|
||||||
|
|
||||||
|
if($force !== true){
|
||||||
if(!is_null($this->max_x)){
|
if(!is_null($this->max_x)){
|
||||||
if($this->maxX > $this->max_x){
|
if($this->maxX > $this->max_x){
|
||||||
OC_Log::write('core', 'maxX reduced from ' . $this->maxX . ' to ' . $this->max_x, OC_Log::DEBUG);
|
OC_Log::write('core', 'maxX reduced from ' . $this->maxX . ' to ' . $this->max_x, OC_Log::DEBUG);
|
||||||
|
@ -114,6 +115,7 @@ class OC_Preview {
|
||||||
throw new Exception('Height and/or width set to 0');
|
throw new Exception('Height and/or width set to 0');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief returns the path of the file you want a thumbnail from
|
* @brief returns the path of the file you want a thumbnail from
|
||||||
|
@ -187,18 +189,21 @@ class OC_Preview {
|
||||||
$fileinfo = $this->fileview->getFileInfo($this->file);
|
$fileinfo = $this->fileview->getFileInfo($this->file);
|
||||||
$fileid = $fileinfo['fileid'];
|
$fileid = $fileinfo['fileid'];
|
||||||
|
|
||||||
return $this->userview->unlink(self::THUMBNAILS_FOLDER . '/' . $fileid . '/' . $this->maxX . '-' . $this->maxY . '.png');
|
$this->userview->unlink(self::THUMBNAILS_FOLDER . '/' . $fileid . '/' . $this->maxX . '-' . $this->maxY . '.png');
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief deletes all previews of a file
|
* @brief deletes all previews of a file
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function deleteAllPrevies(){
|
public function deleteAllPreviews(){
|
||||||
$fileinfo = $this->fileview->getFileInfo($this->file);
|
$fileinfo = $this->fileview->getFileInfo($this->file);
|
||||||
$fileid = $fileinfo['fileid'];
|
$fileid = $fileinfo['fileid'];
|
||||||
|
|
||||||
return $this->userview->rmdir(self::THUMBNAILS_FOLDER . '/' . $fileid);
|
$this->userview->deleteAll(self::THUMBNAILS_FOLDER . '/' . $fileid . '/');
|
||||||
|
$this->userview->rmdir(self::THUMBNAILS_FOLDER . '/' . $fileid . '/');
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -577,4 +582,17 @@ class OC_Preview {
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function post_write($args){
|
||||||
|
self::post_delete($args);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function post_delete($args){
|
||||||
|
$path = $args['path'];
|
||||||
|
if(substr($path, 0, 1) == '/'){
|
||||||
|
$path = substr($path, 1);
|
||||||
|
}
|
||||||
|
$preview = new OC_Preview(OC_User::getUser(), 'files/', $path, 0, 0, false, true);
|
||||||
|
$preview->deleteAllPreviews();
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in a new issue