diff --git a/src/cli/document/clean.php b/src/cli/document/clean.php index b410579..67d7c52 100644 --- a/src/cli/document/clean.php +++ b/src/cli/document/clean.php @@ -116,9 +116,7 @@ foreach ($config->cli->document->crawl->skip->stripos->url as $condition) implode( '/', str_split( - md5( - $document->get('url') - ) + $document->getId() ) ) ); diff --git a/src/cli/document/crawl.php b/src/cli/document/crawl.php index 74a0232..4dd2c9c 100644 --- a/src/cli/document/crawl.php +++ b/src/cli/document/crawl.php @@ -13,14 +13,14 @@ function getLastSnapTime(array $files): int foreach ($files as $file) { - if (in_array($file, ['.', '..'])) + if (is_dir($filename) || is_link($filename) || str_starts_with('.')) { continue; } $time[] = preg_replace( - '/\D/', - '', + '/^([\d]+)\.tar\.gz&/', + '$1', basename( $file ) @@ -704,10 +704,6 @@ foreach($index->search('') // Generate path $time = time(); - $md5url = md5( - $document->get('url') - ); - /// absolute if (str_starts_with($config->snap->storage->tmp->directory, '/')) { @@ -725,7 +721,7 @@ foreach($index->search('') $tmp = sprintf( '%s/%s.%s.tar', $filepath, - $md5url, + $document->getId(), $time ); @@ -822,7 +818,7 @@ foreach($index->search('') implode( '/', str_split( - $md5url + $document->getId() ) ) ); @@ -960,7 +956,7 @@ foreach($index->search('') $filepath = implode( '/', str_split( - $md5url + $document->getId() ) ); diff --git a/src/webui/api.php b/src/webui/api.php index db6346f..85c07e3 100644 --- a/src/webui/api.php +++ b/src/webui/api.php @@ -42,12 +42,12 @@ switch (!empty($_GET['action']) ? $_GET['action'] : false) { exit; - case isset($_GET['md5url']) && preg_match('/^[a-f0-9]{32}$/', $_GET['md5url']): + case isset($_GET['id']) && preg_match('/^[\d]+$/', $_GET['id']): echo json_encode( [ 'status' => false, - 'message' => _('valid md5url required') + 'message' => _('valid document identifier required') ] ); @@ -102,7 +102,7 @@ switch (!empty($_GET['action']) ? $_GET['action'] : false) { implode( '/', str_split( - $_GET['md5url'] + $_GET['id'] ) ), $_GET['time'] @@ -136,7 +136,7 @@ switch (!empty($_GET['action']) ? $_GET['action'] : false) { header( sprintf( 'Content-Disposition: filename="snap.%s.%s"', - $_GET['md5url'], + $_GET['id'], basename( $filename ) @@ -175,7 +175,7 @@ switch (!empty($_GET['action']) ? $_GET['action'] : false) { implode( '/', str_split( - $_GET['md5url'] + $_GET['id'] ) ), $_GET['time'] @@ -222,7 +222,7 @@ switch (!empty($_GET['action']) ? $_GET['action'] : false) { header( sprintf( 'Content-Disposition: filename="snap.%s.%s"', - $_GET['md5url'], + $_GET['id'], basename( $filename ) diff --git a/src/webui/explore.php b/src/webui/explore.php index 6b33e52..0bf0f8a 100644 --- a/src/webui/explore.php +++ b/src/webui/explore.php @@ -77,14 +77,10 @@ $icon = $identicon->getImageDataUri('webp'); $snaps = []; /// Prepare location -$md5url = md5( - $document->url -); - $filepath = implode( '/', str_split( - $md5url + $document->getId() ) ); @@ -109,18 +105,25 @@ if ($config->snap->storage->local->enabled) { foreach ((array) scandir($directory) as $filename) { - if (in_array($filename, ['.', '..'])) + if (is_dir($filename) || is_link($filename) || str_starts_with('.')) { continue; } - $basename = basename($filename); - $time = preg_replace('/\D/', '', $basename); + $basename = basename( + $filename + ); + + $time = preg_replace( + '/^([\d]+)\.tar\.gz&/', + '', + $basename + ); $snaps[_('Local')][] = (object) [ 'source' => 'local', - 'md5url' => $md5url, + 'id' => $document->getId(), 'name' => $basename, 'time' => $time, 'size' => filesize( @@ -161,13 +164,20 @@ foreach ($config->snap->storage->remote->ftp as $i => $ftp) foreach ((array) $remote->nlist($filepath) as $filename) { - $basename = basename($filename); - $time = preg_replace('/\D/', '', $basename); + $basename = basename( + $filename + ); + + $time = preg_replace( + '/^([\d]+)\.tar\.gz&/', + '', + $basename + ); $snaps[sprintf(_('Server #%s'), $i + 1)][] = (object) [ 'source' => $i, - 'md5url' => $md5url, + 'id' => $document->getId(), 'name' => $basename, 'time' => $time, 'size' => $remote->size($filename), @@ -481,7 +491,7 @@ if ($config->webui->index->enabled)