public static function metadata() { // Set path $path = null; if (isset($_GET['path'])) { $path = trim($_GET['path'], '/'); } // Set Dropbox client $dropbox = new ServMaskDropboxClient(get_option('ai1wmde_dropbox_token'), get_option('ai1wmde_dropbox_ssl', true)); // List folder $metadata = $dropbox->metadata($path); // Set folder structure $response = array('path' => null, 'items' => array()); // Set folder path if (isset($metadata['path'])) { $response['path'] = $metadata['path']; } // Set folder items if (isset($metadata['contents']) && ($items = $metadata['contents'])) { foreach ($items as $item) { $response['items'][] = array('size' => isset($item['size']) ? $item['size'] : null, 'path' => isset($item['path']) ? $item['path'] : null, 'icon' => isset($item['icon']) ? $item['icon'] : null, 'bytes' => isset($item['bytes']) ? $item['bytes'] : null, 'is_dir' => isset($item['is_dir']) ? $item['is_dir'] : null); } } echo json_encode($response); exit; }
public static function execute($params) { // Set Dropbox client $dropbox = new ServMaskDropboxClient(get_option('ai1wmde_dropbox_token'), get_option('ai1wmde_dropbox_ssl', true)); // Get metadata $metadata = $dropbox->metadata(ai1wm_archive_folder()); // Number of backups if ($backups = get_option('ai1wmde_dropbox_backups')) { if ($backups = count($metadata['contents']) - $backups) { for ($i = 0; $i < $backups; $i++) { if (empty($metadata['contents'][$i]['is_dir'])) { $dropbox->delete($metadata['contents'][$i]['path']); } } } } // Size of backups if ($total = ai1wm_parse_size(get_option('ai1wmde_dropbox_total'))) { $bytes = 0; if (isset($metadata['contents']) && ($contents = $metadata['contents'])) { foreach ($contents as $content) { $bytes += $content['bytes']; } // Delete backups foreach ($contents as $content) { if ($bytes > $total) { if (empty($content['is_dir'])) { $dropbox->delete($content['path']); // Decrease bytes $bytes -= $content['bytes']; } } } } } return $params; }