Example #1
0
 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);
     }
 }
Example #2
0
\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());
    }
}