summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorringmaster <epithet@gmail.com>2014-05-15 22:38:46 -0400
committerringmaster <epithet@gmail.com>2014-05-27 15:12:54 -0400
commit645e7035a45e400d02c56e588f6946d20b522731 (patch)
treed1894d1f1567f9111f4aceba47a64874d3575284 /lib
parente70ed36d8eb59f511e5f16b03869b742a4eed267 (diff)
downloadnextcloud-server-645e7035a45e400d02c56e588f6946d20b522731.tar.gz
nextcloud-server-645e7035a45e400d02c56e588f6946d20b522731.zip
Allow apps to control via a hook to skip adding/removing a file during filescan
Diffstat (limited to 'lib')
-rw-r--r--lib/private/files/cache/scanner.php18
1 files changed, 15 insertions, 3 deletions
diff --git a/lib/private/files/cache/scanner.php b/lib/private/files/cache/scanner.php
index b3ab94f4599..19321da8ec1 100644
--- a/lib/private/files/cache/scanner.php
+++ b/lib/private/files/cache/scanner.php
@@ -161,7 +161,11 @@ class Scanner extends BasicEmitter {
\OC_Hook::emit('\OC\Files\Cache\Scanner', 'post_scan_file', array('path' => $file, 'storage' => $this->storageId));
}
} else {
- $this->cache->remove($file);
+ $removeFromCache = true;
+ \OC_Hook::emit('Scanner', 'removeFromCache', array('file' => $file, 'removeFromCache' => &$removeFromCache));
+ if($removeFromCache) {
+ $this->cache->remove($file);
+ }
}
return $data;
}
@@ -244,7 +248,11 @@ class Scanner extends BasicEmitter {
$removedChildren = \array_diff($existingChildren, $newChildren);
foreach ($removedChildren as $childName) {
$child = ($path) ? $path . '/' . $childName : $childName;
- $this->cache->remove($child);
+ $addToCache = true;
+ \OC_Hook::emit('Scanner', 'removeFromCache', array('file' => $child, 'removeFromCache' => &$addToCache));
+ if($addToCache) {
+ $this->cache->remove($child);
+ }
}
\OC_DB::commit();
if ($exceptionOccurred){
@@ -263,7 +271,11 @@ class Scanner extends BasicEmitter {
$size += $childSize;
}
}
- $this->cache->put($path, array('size' => $size));
+ $addToCache = true;
+ \OC_Hook::emit('Scanner', 'addToCache', array('file' => $path, 'addToCache' => &$addToCache, 'size' => &$size));
+ if($addToCache) {
+ $this->cache->put($path, array('size' => $size));
+ }
}
$this->emit('\OC\Files\Cache\Scanner', 'postScanFolder', array($path, $this->storageId));
return $size;