Add epub loader resource
This commit is contained in:
parent
fd774948fb
commit
987d73ccb8
7 changed files with 1387 additions and 0 deletions
122
resources/epub-loader/BookExport.class.php
Normal file
122
resources/epub-loader/BookExport.class.php
Normal file
|
@ -0,0 +1,122 @@
|
|||
<?php
|
||||
/**
|
||||
* BookExport class
|
||||
*
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
* @author Didier Corbière <didier.corbiere@opale-concept.com>
|
||||
*/
|
||||
|
||||
require_once(realpath(dirname(__FILE__)) . '/CsvExport.class.php');
|
||||
|
||||
class BookExport
|
||||
{
|
||||
private $mExport = null;
|
||||
private $mNbBook = 0;
|
||||
|
||||
const eExportTypeCsv = 1;
|
||||
const CsvSeparator = "\t";
|
||||
|
||||
/**
|
||||
* Open an export file (or create if file does not exist)
|
||||
*
|
||||
* @param string Export file name
|
||||
* @param enum Export type
|
||||
* @param boolean Force file creation
|
||||
* @throws Exception if error
|
||||
*/
|
||||
public function __construct($inFileName, $inExportType, $inCreate = false)
|
||||
{
|
||||
switch ($inExportType) {
|
||||
case self::eExportTypeCsv:
|
||||
$this->mExport = new CsvExport($inFileName);
|
||||
break;
|
||||
default:
|
||||
$error = sprintf('Incorrect export type: %d', $inExportType);
|
||||
throw new Exception($error);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add an epub to the export
|
||||
*
|
||||
* @param string Epub file name
|
||||
* @throws Exception if error
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function AddEpub($inFileName)
|
||||
{
|
||||
// Load the book infos
|
||||
$bookInfos = new BookInfos();
|
||||
$bookInfos->LoadFromEpub($inFileName);
|
||||
// Add the book
|
||||
$this->AddBook($bookInfos);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a new book to the export
|
||||
*
|
||||
* @param object BookInfo object
|
||||
* @throws Exception if error
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function AddBook($inBookInfo)
|
||||
{
|
||||
// Add export header
|
||||
if ($this->mNbBook++ == 0) {
|
||||
$i = 1;
|
||||
$this->mExport->SetProperty($i++, 'Format');
|
||||
$this->mExport->SetProperty($i++, 'Path');
|
||||
$this->mExport->SetProperty($i++, 'Name');
|
||||
$this->mExport->SetProperty($i++, 'Uuid');
|
||||
$this->mExport->SetProperty($i++, 'Uri');
|
||||
$this->mExport->SetProperty($i++, 'Title');
|
||||
$this->mExport->SetProperty($i++, 'Authors');
|
||||
$this->mExport->SetProperty($i++, 'Language');
|
||||
$this->mExport->SetProperty($i++, 'Description');
|
||||
$this->mExport->SetProperty($i++, 'Subjects');
|
||||
$this->mExport->SetProperty($i++, 'Cover');
|
||||
$this->mExport->SetProperty($i++, 'Serie');
|
||||
$this->mExport->SetProperty($i++, 'SerieIndex');
|
||||
$this->mExport->AddContent();
|
||||
}
|
||||
|
||||
// Add book infos to the export
|
||||
$i = 1;
|
||||
$this->mExport->SetProperty($i++, $inBookInfo->mFormat);
|
||||
$this->mExport->SetProperty($i++, $inBookInfo->mPath);
|
||||
$this->mExport->SetProperty($i++, $inBookInfo->mName);
|
||||
$this->mExport->SetProperty($i++, $inBookInfo->mUuid);
|
||||
$this->mExport->SetProperty($i++, $inBookInfo->mUri);
|
||||
$this->mExport->SetProperty($i++, $inBookInfo->mTitle);
|
||||
$this->mExport->SetProperty($i++, implode(' - ', $inBookInfo->mAuthors));
|
||||
$this->mExport->SetProperty($i++, $inBookInfo->mLanguage);
|
||||
$this->mExport->SetProperty($i++, $inBookInfo->mDescription);
|
||||
$this->mExport->SetProperty($i++, implode(' - ', $inBookInfo->mSubjects));
|
||||
$this->mExport->SetProperty($i++, $inBookInfo->mCover);
|
||||
$this->mExport->SetProperty($i++, $inBookInfo->mSerie);
|
||||
$this->mExport->SetProperty($i++, $inBookInfo->mSerieIndex);
|
||||
|
||||
$this->mExport->AddContent();
|
||||
}
|
||||
|
||||
/**
|
||||
* Download export and stop further script execution
|
||||
*/
|
||||
public function Download()
|
||||
{
|
||||
$this->mExport->Download();
|
||||
}
|
||||
|
||||
/**
|
||||
* Save export to file
|
||||
*/
|
||||
public function SaveToFile()
|
||||
{
|
||||
$this->mExport->SaveToFile();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
Loading…
Add table
Add a link
Reference in a new issue