diff --git a/resources/epub-loader/README b/resources/epub-loader/README index 550474e..cde011a 100644 --- a/resources/epub-loader/README +++ b/resources/epub-loader/README @@ -7,3 +7,11 @@ epub-loader is a utility ressource for ebooks. - CalibreDbLoader class allows create Calibre databases and add ebooks - BookExport class allows to export ebooks metadata in csv files - The app directory contains samples and allows to run actions + + +## Installation +## ----------------------------------------------------------------------------- + +- If a first-time install, copy app/config.php.example to app/config.php +- Edit config.php to match your config +- Open the app directory url diff --git a/resources/epub-loader/app/action_cvs_export.php b/resources/epub-loader/app/action_cvs_export.php index ac5c707..aab698d 100644 --- a/resources/epub-loader/app/action_cvs_export.php +++ b/resources/epub-loader/app/action_cvs_export.php @@ -6,25 +6,23 @@ * @author Didier Corbière */ -foreach ($gConfig['databases'] as $dbConfig) { - // Init csv file - $fileName = $dbConfig['db_path'] . DIRECTORY_SEPARATOR . basename($dbConfig['db_path']) . '_metadata.csv'; - try { - // Open or create the export file - $export = new BookExport($fileName, BookExport::eExportTypeCsv, true); - echo sprintf('Export ebooks to %s', $fileName) . '
'; - // Add the epub files into the export file - if (!empty($dbConfig['epub_path'])) { - $fileList = glob($dbConfig['epub_path'] . DIRECTORY_SEPARATOR . '*.epub'); - foreach ($fileList as $fileName) { - $export->AddEpub($fileName); - } +// Init csv file +$fileName = $dbConfig['db_path'] . DIRECTORY_SEPARATOR . basename($dbConfig['db_path']) . '_metadata.csv'; +try { + // Open or create the export file + $export = new BookExport($fileName, BookExport::eExportTypeCsv, true); + echo sprintf('Export ebooks to %s', $fileName) . '
'; + // Add the epub files into the export file + if (!empty($dbConfig['epub_path'])) { + $fileList = glob($dbConfig['epub_path'] . DIRECTORY_SEPARATOR . '*.epub'); + foreach ($fileList as $fileName) { + $export->AddEpub($fileName); } - $export->SaveToFile(); - } - catch (Exception $e) { - $gErrorArray[$fileName] = $e->getMessage(); } + $export->SaveToFile(); +} +catch (Exception $e) { + $gErrorArray[$fileName] = $e->getMessage(); } ?> diff --git a/resources/epub-loader/app/action_db_load.php b/resources/epub-loader/app/action_db_load.php index 6f46b41..73f57e3 100644 --- a/resources/epub-loader/app/action_db_load.php +++ b/resources/epub-loader/app/action_db_load.php @@ -6,24 +6,22 @@ * @author Didier Corbière */ -foreach ($gConfig['databases'] as $dbConfig) { - // Init database file - $fileName = $dbConfig['db_path'] . DIRECTORY_SEPARATOR . 'metadata.db'; - try { - // Open or create the database - $db = new CalibreDbLoader($fileName, $gConfig['create_db']); - echo sprintf('Load database %s', $fileName) . '
'; - // Add the epub files into the database - if (!empty($dbConfig['epub_path'])) { - $fileList = glob($dbConfig['epub_path'] . DIRECTORY_SEPARATOR . '*.epub'); - foreach ($fileList as $fileName) { - $db->AddEpub($fileName); - } +// Init database file +$fileName = $dbConfig['db_path'] . DIRECTORY_SEPARATOR . 'metadata.db'; +try { + // Open or create the database + $db = new CalibreDbLoader($fileName, $gConfig['create_db']); + echo sprintf('Load database %s', $fileName) . '
'; + // Add the epub files into the database + if (!empty($dbConfig['epub_path'])) { + $fileList = glob($dbConfig['epub_path'] . DIRECTORY_SEPARATOR . '*.epub'); + foreach ($fileList as $fileName) { + $db->AddEpub($fileName); } } - catch (Exception $e) { - $gErrorArray[$fileName] = $e->getMessage(); - } +} +catch (Exception $e) { + $gErrorArray[$fileName] = $e->getMessage(); } ?> diff --git a/resources/epub-loader/app/config.php.example b/resources/epub-loader/app/config.php.example index 15d2cb0..a7e7e7f 100644 --- a/resources/epub-loader/app/config.php.example +++ b/resources/epub-loader/app/config.php.example @@ -42,4 +42,4 @@ $gConfig['databases'][] = array('name' => 'La Bibliothèque électronique du Qu */ $gConfig['actions'] = array(); $gConfig['actions']['cvs_export'] = 'Cvs export'; -$gConfig['actions']['db_load'] = 'Calibre database load'; +$gConfig['actions']['db_load'] = 'Create database'; diff --git a/resources/epub-loader/app/header.php b/resources/epub-loader/app/header.php index 47e0d47..2fb83dd 100644 --- a/resources/epub-loader/app/header.php +++ b/resources/epub-loader/app/header.php @@ -14,12 +14,12 @@ header('Content-type: text/html; charset=utf-8'); body { font-family: "Times New Roman", Times, serif; background-color: #ffffff; - color: #2F4769; + color: #333333; margin: 20px; } a { - color: #CC9966; - text-decoration: none; + color: #096DD1; + text-decoration: none; } a:hover { color: #DF7800; @@ -70,7 +70,7 @@ header('Content-type: text/html; charset=utf-8'); .footer { border-top: solid #2F4769 1px; margin-top: 15px; - padding-top: 5px; + padding-top: 10px; font-size: 80%; font-style: italic; } diff --git a/resources/epub-loader/app/index.php b/resources/epub-loader/app/index.php index 8550ef0..a357bb7 100644 --- a/resources/epub-loader/app/index.php +++ b/resources/epub-loader/app/index.php @@ -22,9 +22,31 @@ define('DEF_AppAdminMail', 'didier.corbiere@opale-concept.com'); // Include files //------------------------------------------------------------------------------ -require_once(__DIR__ . DIRECTORY_SEPARATOR . 'config.php'); -require_once($gConfig['cops_directory'] . '/resources/epub-loader/CalibreDbLoader.class.php'); -require_once($gConfig['cops_directory'] . '/resources/epub-loader/BookExport.class.php'); +// Include config file +$fileName = __DIR__ . DIRECTORY_SEPARATOR . 'config.php'; +if (!file_exists($fileName)) { + die ('Missing configuration file: ' . $fileName); +} +require_once($fileName); + +// Check Cops directory +if (!is_dir($gConfig['cops_directory'])) { + die ('Incorrect Cops directory: ' . $gConfig['cops_directory']); +} + +// Include Calibre database loader class +$fileName = $gConfig['cops_directory'] . '/resources/epub-loader/CalibreDbLoader.class.php'; +if (!file_exists($fileName)) { + die ('Incorrect include file: ' . $gConfig['cops_directory']); +} +require_once($fileName); + +// Include book export class +$fileName = $gConfig['cops_directory'] . '/resources/epub-loader/BookExport.class.php'; +if (!file_exists($fileName)) { + die ('Incorrect include file: ' . $gConfig['cops_directory']); +} +require_once($fileName); //------------------------------------------------------------------------------ // Start application @@ -33,24 +55,70 @@ require_once($gConfig['cops_directory'] . '/resources/epub-loader/BookExport.cla // Global vars $gErrorArray = array(); -// Get the action to execute +// Get the url parameters $action = isset($_GET['action']) ? $_GET['action'] : null; +$dbNum = isset($_GET['dbnum']) ? (int)$_GET['dbnum'] : null; +// Include html header require_once(__DIR__ . DIRECTORY_SEPARATOR . 'header.php'); -if (isset($action)) { - $phpFile = sprintf('%s%saction_%s.php', realpath(dirname(__FILE__)), DIRECTORY_SEPARATOR, $action); - require_once($phpFile); + +// Html content +if (isset($action) && isset($dbNum)) { + if (!isset($gConfig['databases'][$dbNum])) { + die ('Incorrect database num: ' . $dbNum); + } + $dbConfig = $gConfig['databases'][$dbNum]; + $fileName = sprintf('%s%saction_%s.php', __DIR__, DIRECTORY_SEPARATOR, $action); + if (!file_exists($fileName)) { + die ('Incorrect action file: ' . $fileName); + } + require_once($fileName); } else { - // Display the available actions - echo ' ' . "\n"; } + +// Include html footer require_once(__DIR__ . DIRECTORY_SEPARATOR . 'footer.php'); ?>