mirror of
https://github.com/wallabag/wallabag.git
synced 2025-07-12 16:58:37 +00:00
send2kindle
This commit is contained in:
parent
deab6280d3
commit
dc59f164a9
2 changed files with 59 additions and 4 deletions
|
@ -118,6 +118,10 @@ class Routing
|
||||||
$mobi = new WallabagMobi($this->wallabag, $_GET['method'], $_GET['value']);
|
$mobi = new WallabagMobi($this->wallabag, $_GET['method'], $_GET['value']);
|
||||||
$mobi->prepareData();
|
$mobi->prepareData();
|
||||||
$mobi->produceMobi();
|
$mobi->produceMobi();
|
||||||
|
} elseif (isset($_GET['send2kindle'])) {
|
||||||
|
$mobi = new WallabagMobi($this->wallabag, $_GET['method'], $_GET['value']);
|
||||||
|
$mobi->prepareData();
|
||||||
|
$mobi->produceMobi(TRUE);
|
||||||
} elseif (isset($_GET['pdf'])) {
|
} elseif (isset($_GET['pdf'])) {
|
||||||
$pdf = new WallabagPDF($this->wallabag, $_GET['method'], $_GET['value']);
|
$pdf = new WallabagPDF($this->wallabag, $_GET['method'], $_GET['value']);
|
||||||
$pdf->prepareData();
|
$pdf->prepareData();
|
||||||
|
|
|
@ -151,19 +151,21 @@ class WallabagMobi extends WallabagEBooks
|
||||||
* @author Sander Kromwijk
|
* @author Sander Kromwijk
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public function produceMobi($send = FALSE)
|
private $_kindle_email;
|
||||||
|
|
||||||
|
public function produceMobi($sendByMail = FALSE)
|
||||||
{
|
{
|
||||||
|
|
||||||
$mobi = new MOBI();
|
$mobi = new MOBI();
|
||||||
|
|
||||||
$content = new MOBIFile();
|
$content = new MOBIFile();
|
||||||
|
|
||||||
|
$messages = new Messages(); // for later
|
||||||
|
|
||||||
$content->set("title", $this->bookTitle);
|
$content->set("title", $this->bookTitle);
|
||||||
$content->set("author", "wallabag");
|
$content->set("author", "wallabag");
|
||||||
$content->set("subject", $this->bookTitle);
|
$content->set("subject", $this->bookTitle);
|
||||||
|
|
||||||
# introduction
|
# introduction
|
||||||
//$content->appendChapterTitle("Cover");
|
|
||||||
$content->appendParagraph('<div style="text-align:center;" ><p>' . _('Produced by wallabag with PHPMobi') . '</p><p>'. _('Please open <a href="https://github.com/wallabag/wallabag/issues" >an issue</a> if you have trouble with the display of this E-Book on your device.') . '</p></div>');
|
$content->appendParagraph('<div style="text-align:center;" ><p>' . _('Produced by wallabag with PHPMobi') . '</p><p>'. _('Please open <a href="https://github.com/wallabag/wallabag/issues" >an issue</a> if you have trouble with the display of this E-Book on your device.') . '</p></div>');
|
||||||
$content->appendImage(imagecreatefrompng("themes/baggy/img/apple-touch-icon-152.png"));
|
$content->appendImage(imagecreatefrompng("themes/baggy/img/apple-touch-icon-152.png"));
|
||||||
$content->appendPageBreak();
|
$content->appendPageBreak();
|
||||||
|
@ -175,7 +177,56 @@ class WallabagMobi extends WallabagEBooks
|
||||||
}
|
}
|
||||||
$mobi->setContentProvider($content);
|
$mobi->setContentProvider($content);
|
||||||
|
|
||||||
$mobi->download($this->bookFileName.".mobi");
|
if (!$sendByMail) {
|
||||||
|
// we offer file to download
|
||||||
|
$mobi->download($this->bookFileName.'.mobi');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// we send file to kindle
|
||||||
|
|
||||||
|
$char_in = array('/', '.', ',', ':', '|'); # we sanitize filename to avoid conflicts with special characters (for instance, / goes for a directory)
|
||||||
|
$mobiExportName = preg_replace('/\s+/', '-', str_replace($char_in, '-', $this->bookFileName . '.mobi'));
|
||||||
|
|
||||||
|
$file = 'cache/' . $mobiExportName;
|
||||||
|
$mobi->save($file);
|
||||||
|
|
||||||
|
$file_size = filesize($file);
|
||||||
|
$filename = basename($file);
|
||||||
|
$handle = fopen($file, "r");
|
||||||
|
$content = fread($handle, $file_size);
|
||||||
|
fclose($handle);
|
||||||
|
$content = chunk_split(base64_encode($content));
|
||||||
|
|
||||||
|
$uid = md5(uniqid(time()));
|
||||||
|
|
||||||
|
//generate header for mail
|
||||||
|
$header = "From: wallabag <". $this->wallabag->user->email .">\r\n";
|
||||||
|
$header .= "MIME-Version: 1.0\r\n";
|
||||||
|
$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
|
||||||
|
$header .= "This is a multi-part message in MIME format.\r\n";
|
||||||
|
$header .= "--".$uid."\r\n";
|
||||||
|
$header .= "Content-type:text/plain; charset=iso-8859-1\r\n";
|
||||||
|
$header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
|
||||||
|
$header .= "send via wallabag\r\n\r\n";
|
||||||
|
$header .= "--".$uid."\r\n";
|
||||||
|
$header .= "Content-Type: application/x-mobipocket-ebook; name=\"".$filename."\"\r\n";
|
||||||
|
$header .= "Content-Transfer-Encoding: base64\r\n";
|
||||||
|
$header .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
|
||||||
|
$header .= $content."\r\n\r\n";
|
||||||
|
$header .= "--".$uid."--";
|
||||||
|
|
||||||
|
# trying to get the kindle email adress
|
||||||
|
if ($this->wallabag->user->getConfigValue('kindleemail'))
|
||||||
|
{
|
||||||
|
#do a try...exeption here
|
||||||
|
mail( $this->wallabag->user->getConfigValue('kindleemail'), '[wallabag] ' . $this->bookTitle, "", $header );
|
||||||
|
$messages->add('s', _('The email has been sent to your kindle !'));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$messages->add('e', _('You didn\'t set your kindle\'s email adress !'));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue