diff --git a/inc/poche/Routing.class.php b/inc/poche/Routing.class.php
index 83eabf1..ec33432 100644
--- a/inc/poche/Routing.class.php
+++ b/inc/poche/Routing.class.php
@@ -118,6 +118,10 @@ class Routing
$mobi = new WallabagMobi($this->wallabag, $_GET['method'], $_GET['value']);
$mobi->prepareData();
$mobi->produceMobi();
+ } elseif (isset($_GET['send2kindle'])) {
+ $mobi = new WallabagMobi($this->wallabag, $_GET['method'], $_GET['value']);
+ $mobi->prepareData();
+ $mobi->produceMobi(TRUE);
} elseif (isset($_GET['pdf'])) {
$pdf = new WallabagPDF($this->wallabag, $_GET['method'], $_GET['value']);
$pdf->prepareData();
diff --git a/inc/poche/WallabagEBooks.class.php b/inc/poche/WallabagEBooks.class.php
index 2b18b71..a12befa 100644
--- a/inc/poche/WallabagEBooks.class.php
+++ b/inc/poche/WallabagEBooks.class.php
@@ -151,19 +151,21 @@ class WallabagMobi extends WallabagEBooks
* @author Sander Kromwijk
*/
- public function produceMobi($send = FALSE)
+ private $_kindle_email;
+
+ public function produceMobi($sendByMail = FALSE)
{
$mobi = new MOBI();
-
$content = new MOBIFile();
+
+ $messages = new Messages(); // for later
$content->set("title", $this->bookTitle);
$content->set("author", "wallabag");
$content->set("subject", $this->bookTitle);
# introduction
- //$content->appendChapterTitle("Cover");
$content->appendParagraph('
' . _('Produced by wallabag with PHPMobi') . '
'. _('Please open an issue if you have trouble with the display of this E-Book on your device.') . '
');
$content->appendImage(imagecreatefrompng("themes/baggy/img/apple-touch-icon-152.png"));
$content->appendPageBreak();
@@ -175,7 +177,56 @@ class WallabagMobi extends WallabagEBooks
}
$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 !'));
+ }
+ }
}
}