static function file() { self::$fileCount++; if (self::$fileCount > self::$lastCount + 20) { //send a count update every 20 files self::$lastCount = self::$fileCount; self::$eventSource->send('count', self::$fileCount); } }
\OCP\JSON::callCheck(); \OC::$server->getSession()->close(); $force = (isset($_GET['force']) and $_GET['force'] === 'true'); $dir = isset($_GET['dir']) ? (string) $_GET['dir'] : ''; if (isset($_GET['users'])) { \OCP\JSON::checkAdminUser(); if ($_GET['users'] === 'all') { $users = OC_User::getUsers(); } else { $users = json_decode($_GET['users']); } } else { $users = array(OC_User::getUser()); } $eventSource = \OC::$server->createEventSource(); $listener = new ScanListener($eventSource); foreach ($users as $user) { $eventSource->send('user', $user); $scanner = new \OC\Files\Utils\Scanner($user, \OC::$server->getDatabaseConnection()); $scanner->listen('\\OC\\Files\\Utils\\Scanner', 'scanFile', array($listener, 'file')); $scanner->listen('\\OC\\Files\\Utils\\Scanner', 'scanFolder', array($listener, 'folder')); try { if ($force) { $scanner->scan($dir); } else { $scanner->backgroundScan($dir); } } catch (\Exception $e) { $eventSource->send('error', get_class($e) . ': ' . $e->getMessage()); } }