X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=application%2FNetscapeBookmarkUtils.php;h=c0c007ea4a120ac3b11f5e883e512e7e334e504f;hb=bdc5152d486ca75372c271f94623b248bc127800;hp=2a10ff22149f8c89f30458d9e5c907e19847438a;hpb=3e395a6bc63cba16b0772a382f6cbac0ce4ab906;p=github%2Fshaarli%2FShaarli.git diff --git a/application/NetscapeBookmarkUtils.php b/application/NetscapeBookmarkUtils.php index 2a10ff22..c0c007ea 100644 --- a/application/NetscapeBookmarkUtils.php +++ b/application/NetscapeBookmarkUtils.php @@ -2,6 +2,7 @@ use Psr\Log\LogLevel; use Shaarli\Config\ConfigManager; +use Shaarli\History; use Shaarli\NetscapeBookmarkParser\NetscapeBookmarkParser; use Katzgrau\KLogger\Logger; @@ -32,11 +33,10 @@ class NetscapeBookmarkUtils { // see tpl/export.html for possible values if (! in_array($selection, array('all', 'public', 'private'))) { - throw new Exception('Invalid export selection: "'.$selection.'"'); + throw new Exception(t('Invalid export selection:') .' "'.$selection.'"'); } $bookmarkLinks = array(); - foreach ($linkDb as $link) { if ($link['private'] != 0 && $selection == 'public') { continue; @@ -66,24 +66,29 @@ class NetscapeBookmarkUtils * @param int $importCount how many links were imported * @param int $overwriteCount how many links were overwritten * @param int $skipCount how many links were skipped + * @param int $duration how many seconds did the import take * * @return string Summary of the bookmark import status */ private static function importStatus( $filename, $filesize, - $importCount=0, - $overwriteCount=0, - $skipCount=0 - ) - { - $status = 'File '.$filename.' ('.$filesize.' bytes) '; + $importCount = 0, + $overwriteCount = 0, + $skipCount = 0, + $duration = 0 + ) { + $status = sprintf(t('File %s (%d bytes) '), $filename, $filesize); if ($importCount == 0 && $overwriteCount == 0 && $skipCount == 0) { - $status .= 'has an unknown file format. Nothing was imported.'; + $status .= t('has an unknown file format. Nothing was imported.'); } else { - $status .= 'was successfully processed: '.$importCount.' links imported, '; - $status .= $overwriteCount.' links overwritten, '; - $status .= $skipCount.' links skipped.'; + $status .= vsprintf( + t( + 'was successfully processed in %d seconds: ' + .'%d links imported, %d links overwritten, %d links skipped.' + ), + [$duration, $importCount, $overwriteCount, $skipCount] + ); } return $status; } @@ -101,11 +106,12 @@ class NetscapeBookmarkUtils */ public static function import($post, $files, $linkDb, $conf, $history) { + $start = time(); $filename = $files['filetoupload']['name']; $filesize = $files['filetoupload']['size']; $data = file_get_contents($files['filetoupload']['tmp_name']); - if (strpos($data, '') === false) { + if (preg_match('//i', $data) === 0) { return self::importStatus($filename, $filesize); } @@ -151,13 +157,13 @@ class NetscapeBookmarkUtils if (empty($post['privacy']) || $post['privacy'] == 'default') { // use value from the imported file $private = $bkm['pub'] == '1' ? 0 : 1; - } else if ($post['privacy'] == 'private') { + } elseif ($post['privacy'] == 'private') { // all imported links are private $private = 1; - } else if ($post['privacy'] == 'public') { + } elseif ($post['privacy'] == 'public') { // all imported links are public $private = 0; - } + } $newLink = array( 'title' => $bkm['title'], @@ -184,7 +190,6 @@ class NetscapeBookmarkUtils $linkDb[$existingLink['id']] = $newLink; $importCount++; $overwriteCount++; - $history->updateLink($newLink); continue; } @@ -196,16 +201,19 @@ class NetscapeBookmarkUtils $newLink['shorturl'] = link_small_hash($newLink['created'], $newLink['id']); $linkDb[$newLink['id']] = $newLink; $importCount++; - $history->addLink($newLink); } $linkDb->save($conf->get('resource.page_cache')); + $history->importLinks(); + + $duration = time() - $start; return self::importStatus( $filename, $filesize, $importCount, $overwriteCount, - $skipCount + $skipCount, + $duration ); } }