From 1acce6509c623701d2c9f22c03d524ad3a97e4c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Didier=20Corbi=C3=A8re?= Date: Wed, 25 Sep 2013 07:28:20 +0100 Subject: [PATCH] Init actions and db --- resources/epub-loader/README | 8 ++ .../epub-loader/app/action_cvs_export.php | 32 +++---- resources/epub-loader/app/action_db_load.php | 30 +++--- resources/epub-loader/app/config.php.example | 2 +- resources/epub-loader/app/header.php | 8 +- resources/epub-loader/app/index.php | 96 ++++++++++++++++--- 6 files changed, 124 insertions(+), 52 deletions(-) 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"; - foreach ($gConfig['actions'] as $action => $actionInfo) { - echo '
  • ' . "\n"; - echo ' ' . $actionInfo . '' . "\n"; - echo '
  • ' . "\n"; + if (!isset($action)) { + // Display the available actions + $str = ''; + $str .= '
    ' . 'Select action' . '
    ' . "\n"; + $str .= '
      ' . "\n"; + foreach ($gConfig['actions'] as $action => $actionInfo) { + $str .= '
    • ' . "\n"; + $str .= ' ' . $actionInfo . '' . "\n"; + $str .= '
    • ' . "\n"; + } + $str .= '
    ' . "\n"; + echo $str; + } + else { + // Display databases + $str = ''; + $str .= '' . "\n"; + $str .= '' . "\n"; + $str .= '' . "\n"; + $str .= '' . "\n"; + $str .= '' . "\n"; + $str .= '' . "\n"; + $str .= '' . "\n"; + $str .= '' . "\n"; + $str .= '' . "\n"; + $actionTitle = $gConfig['actions'][$action]; + foreach ($gConfig['databases'] as $dbNum => $dbConfig) { + $fileList = glob($dbConfig['epub_path'] . DIRECTORY_SEPARATOR . '*.epub'); + $str .= '' . "\n"; + $str .= '' . "\n"; + $str .= '' . "\n"; + $str .= '' . "\n"; + $str .= '' . "\n"; + $str .= '' . "\n"; + $str .= '' . "\n"; + $str .= '' . "\n"; + $numWork++; + } + $str .= '
    ' . 'Db num' . '' . 'Db name' . '' . 'Action' . '' . 'Db Path' . '' . 'Epub path' . '' . 'Nb Files' . '
    ' . $dbNum . '' . $dbConfig['name'] . '' . '' . $actionTitle . '' . '' . $dbConfig['db_path'] . '' . $dbConfig['epub_path'] . '' . count($fileList) . '
    ' . "\n"; + echo $str; } - echo '
' . "\n"; } + +// Include html footer require_once(__DIR__ . DIRECTORY_SEPARATOR . 'footer.php'); ?>