From f808b01692a835673f328d7221ba8c212caa9b61 Mon Sep 17 00:00:00 2001 From: Jeremy Benoist Date: Sat, 1 Jul 2017 09:52:38 +0200 Subject: Add a real configuration for CS-Fixer --- src/Wallabag/CoreBundle/Helper/EntriesExport.php | 46 ++++++++++++------------ 1 file changed, 23 insertions(+), 23 deletions(-) (limited to 'src/Wallabag/CoreBundle/Helper/EntriesExport.php') diff --git a/src/Wallabag/CoreBundle/Helper/EntriesExport.php b/src/Wallabag/CoreBundle/Helper/EntriesExport.php index 3d36a4c8..cd74cc4f 100644 --- a/src/Wallabag/CoreBundle/Helper/EntriesExport.php +++ b/src/Wallabag/CoreBundle/Helper/EntriesExport.php @@ -63,7 +63,7 @@ class EntriesExport */ public function updateTitle($method) { - $this->title = $method.' articles'; + $this->title = $method . ' articles'; if ('entry' === $method) { $this->title = $this->entries[0]->getTitle(); @@ -81,7 +81,7 @@ class EntriesExport */ public function exportAs($format) { - $functionName = 'produce'.ucfirst($format); + $functionName = 'produce' . ucfirst($format); if (method_exists($this, $functionName)) { return $this->$functionName(); } @@ -106,12 +106,12 @@ class EntriesExport */ $content_start = "\n" - ."\n" - .'' - ."\n" - ."wallabag articles book\n" - ."\n" - ."\n"; + . "\n" + . '' + . "\n" + . "wallabag articles book\n" + . "\n" + . "\n"; $bookEnd = "\n\n"; @@ -164,11 +164,11 @@ class EntriesExport // in filenames, we limit to A-z/0-9 $filename = preg_replace('/[^A-Za-z0-9\-]/', '', $entry->getTitle()); - $chapter = $content_start.$entry->getContent().$bookEnd; - $book->addChapter($entry->getTitle(), htmlspecialchars($filename).'.html', $chapter, true, EPub::EXTERNAL_REF_ADD); + $chapter = $content_start . $entry->getContent() . $bookEnd; + $book->addChapter($entry->getTitle(), htmlspecialchars($filename) . '.html', $chapter, true, EPub::EXTERNAL_REF_ADD); } - $book->addChapter('Notices', 'Cover2.html', $content_start.$this->getExportInformation('PHPePub').$bookEnd); + $book->addChapter('Notices', 'Cover2.html', $content_start . $this->getExportInformation('PHPePub') . $bookEnd); return Response::create( $book->getBook(), @@ -176,7 +176,7 @@ class EntriesExport [ 'Content-Description' => 'File Transfer', 'Content-type' => 'application/epub+zip', - 'Content-Disposition' => 'attachment; filename="'.$this->title.'.epub"', + 'Content-Disposition' => 'attachment; filename="' . $this->title . '.epub"', 'Content-Transfer-Encoding' => 'binary', ] ); @@ -228,7 +228,7 @@ class EntriesExport 'Accept-Ranges' => 'bytes', 'Content-Description' => 'File Transfer', 'Content-type' => 'application/x-mobipocket-ebook', - 'Content-Disposition' => 'attachment; filename="'.$this->title.'.mobi"', + 'Content-Disposition' => 'attachment; filename="' . $this->title . '.mobi"', 'Content-Transfer-Encoding' => 'binary', ] ); @@ -256,7 +256,7 @@ class EntriesExport * Front page */ $pdf->AddPage(); - $intro = '

'.$this->title.'

'.$this->getExportInformation('tcpdf'); + $intro = '

' . $this->title . '

' . $this->getExportInformation('tcpdf'); $pdf->writeHTMLCell(0, 0, '', '', $intro, 0, 1, 0, true, '', true); @@ -269,7 +269,7 @@ class EntriesExport } $pdf->AddPage(); - $html = '

'.$entry->getTitle().'

'; + $html = '

' . $entry->getTitle() . '

'; $html .= $entry->getContent(); $pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true); @@ -284,7 +284,7 @@ class EntriesExport [ 'Content-Description' => 'File Transfer', 'Content-type' => 'application/pdf', - 'Content-Disposition' => 'attachment; filename="'.$this->title.'.pdf"', + 'Content-Disposition' => 'attachment; filename="' . $this->title . '.pdf"', 'Content-Transfer-Encoding' => 'binary', ] ); @@ -330,7 +330,7 @@ class EntriesExport 200, [ 'Content-type' => 'application/csv', - 'Content-Disposition' => 'attachment; filename="'.$this->title.'.csv"', + 'Content-Disposition' => 'attachment; filename="' . $this->title . '.csv"', 'Content-Transfer-Encoding' => 'UTF-8', ] ); @@ -348,7 +348,7 @@ class EntriesExport 200, [ 'Content-type' => 'application/json', - 'Content-Disposition' => 'attachment; filename="'.$this->title.'.json"', + 'Content-Disposition' => 'attachment; filename="' . $this->title . '.json"', 'Content-Transfer-Encoding' => 'UTF-8', ] ); @@ -366,7 +366,7 @@ class EntriesExport 200, [ 'Content-type' => 'application/xml', - 'Content-Disposition' => 'attachment; filename="'.$this->title.'.xml"', + 'Content-Disposition' => 'attachment; filename="' . $this->title . '.xml"', 'Content-Transfer-Encoding' => 'UTF-8', ] ); @@ -382,8 +382,8 @@ class EntriesExport $content = ''; $bar = str_repeat('=', 100); foreach ($this->entries as $entry) { - $content .= "\n\n".$bar."\n\n".$entry->getTitle()."\n\n".$bar."\n\n"; - $content .= trim(preg_replace('/\s+/S', ' ', strip_tags($entry->getContent())))."\n\n"; + $content .= "\n\n" . $bar . "\n\n" . $entry->getTitle() . "\n\n" . $bar . "\n\n"; + $content .= trim(preg_replace('/\s+/S', ' ', strip_tags($entry->getContent()))) . "\n\n"; } return Response::create( @@ -391,7 +391,7 @@ class EntriesExport 200, [ 'Content-type' => 'text/plain', - 'Content-Disposition' => 'attachment; filename="'.$this->title.'.txt"', + 'Content-Disposition' => 'attachment; filename="' . $this->title . '.txt"', 'Content-Transfer-Encoding' => 'UTF-8', ] ); @@ -427,7 +427,7 @@ class EntriesExport $info = str_replace('%EXPORT_METHOD%', $type, $this->footerTemplate); if ('tcpdf' === $type) { - return str_replace('%IMAGE%', '', $info); + return str_replace('%IMAGE%', '', $info); } return str_replace('%IMAGE%', '', $info); -- cgit v1.2.3 From 07320a2bd25c6ace1f9b1aa06b1b08e8dbf4f4fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20Gilli?= Date: Sat, 8 Jul 2017 17:55:58 +0200 Subject: Use the article domain as author for export files When exporting an entry, use the domain name as author name for epub, mobi and pdf formats, instead of 'wallabag'. Change the author from array to string, because for now, there is always only one author. --- src/Wallabag/CoreBundle/Helper/EntriesExport.php | 28 +++++++++++++++++++----- 1 file changed, 22 insertions(+), 6 deletions(-) (limited to 'src/Wallabag/CoreBundle/Helper/EntriesExport.php') diff --git a/src/Wallabag/CoreBundle/Helper/EntriesExport.php b/src/Wallabag/CoreBundle/Helper/EntriesExport.php index cd74cc4f..d749dcf9 100644 --- a/src/Wallabag/CoreBundle/Helper/EntriesExport.php +++ b/src/Wallabag/CoreBundle/Helper/EntriesExport.php @@ -18,7 +18,7 @@ class EntriesExport private $logoPath; private $title = ''; private $entries = []; - private $authors = ['wallabag']; + private $author = 'wallabag'; private $language = ''; private $footerTemplate = '

Produced by wallabag with %EXPORT_METHOD%

@@ -72,6 +72,24 @@ class EntriesExport return $this; } + /** + * Sets the author for just one entry. + * + * @param string $method Method to get articles + * + * @return EntriesExport + */ + public function updateAuthor($method) + { + $this->author = $method.' authors'; + + if ('entry' === $method) { + $this->author = $this->entries[0]->getDomainName(); + } + + return $this; + } + /** * Sets the output format. * @@ -128,9 +146,7 @@ class EntriesExport $book->setLanguage($this->language); $book->setDescription('Some articles saved on my wallabag'); - foreach ($this->authors as $author) { - $book->setAuthor($author, $author); - } + $book->setAuthor($this->author, $this->author); // I hope this is a non existant address :) $book->setPublisher('wallabag', 'wallabag'); @@ -196,7 +212,7 @@ class EntriesExport * Book metadata */ $content->set('title', $this->title); - $content->set('author', implode($this->authors)); + $content->set('author', $this->author); $content->set('subject', $this->title); /* @@ -247,7 +263,7 @@ class EntriesExport * Book metadata */ $pdf->SetCreator(PDF_CREATOR); - $pdf->SetAuthor('wallabag'); + $pdf->SetAuthor($this->author); $pdf->SetTitle($this->title); $pdf->SetSubject('Articles via wallabag'); $pdf->SetKeywords('wallabag'); -- cgit v1.2.3 From c57f69d967dea05e507e997193a783fed991de8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20Gilli?= Date: Sun, 9 Jul 2017 18:33:14 +0200 Subject: Use the article publisher as author for export When exporting an entry, use the publishedBy field as author name for epub, mobi and pdf formats. Fallback to domain name if empty. --- src/Wallabag/CoreBundle/Helper/EntriesExport.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src/Wallabag/CoreBundle/Helper/EntriesExport.php') diff --git a/src/Wallabag/CoreBundle/Helper/EntriesExport.php b/src/Wallabag/CoreBundle/Helper/EntriesExport.php index d749dcf9..e16168b1 100644 --- a/src/Wallabag/CoreBundle/Helper/EntriesExport.php +++ b/src/Wallabag/CoreBundle/Helper/EntriesExport.php @@ -73,7 +73,9 @@ class EntriesExport } /** - * Sets the author for just one entry. + * Sets the author for one entry or category. + * + * The publishers are used, or the domain name if empty. * * @param string $method Method to get articles * @@ -84,7 +86,12 @@ class EntriesExport $this->author = $method.' authors'; if ('entry' === $method) { - $this->author = $this->entries[0]->getDomainName(); + $publishedBy = $this->entries[0]->getPublishedBy(); + if (!empty($publishedBy)) { + $this->author = implode(', ', $this->entries[0]->getPublishedBy()); + } else { + $this->author = $this->entries[0]->getDomainName(); + } } return $this; -- cgit v1.2.3 From eeabca8090ebf9a084b6b823ddf7c6493b956d4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20Gilli?= Date: Mon, 10 Jul 2017 09:58:18 +0200 Subject: Make updateAuthor code simpler to read --- src/Wallabag/CoreBundle/Helper/EntriesExport.php | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'src/Wallabag/CoreBundle/Helper/EntriesExport.php') diff --git a/src/Wallabag/CoreBundle/Helper/EntriesExport.php b/src/Wallabag/CoreBundle/Helper/EntriesExport.php index e16168b1..64d82193 100644 --- a/src/Wallabag/CoreBundle/Helper/EntriesExport.php +++ b/src/Wallabag/CoreBundle/Helper/EntriesExport.php @@ -83,15 +83,17 @@ class EntriesExport */ public function updateAuthor($method) { - $this->author = $method.' authors'; + if ('entry' !== $method) { + $this->author = $method . ' authors'; - if ('entry' === $method) { - $publishedBy = $this->entries[0]->getPublishedBy(); - if (!empty($publishedBy)) { - $this->author = implode(', ', $this->entries[0]->getPublishedBy()); - } else { - $this->author = $this->entries[0]->getDomainName(); - } + return $this; + } + + $this->author = $this->entries[0]->getDomainName(); + + $publishedBy = $this->entries[0]->getPublishedBy(); + if (!empty($publishedBy)) { + $this->author = implode(', ', $publishedBy); } return $this; -- cgit v1.2.3 From 52b84c11a5b5474cd45271d937a46c6adfdf2749 Mon Sep 17 00:00:00 2001 From: Nicolas Hart Date: Sat, 29 Jul 2017 22:51:50 +0200 Subject: Fix some namespaces and phpdoc --- src/Wallabag/CoreBundle/Helper/EntriesExport.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/Wallabag/CoreBundle/Helper/EntriesExport.php') diff --git a/src/Wallabag/CoreBundle/Helper/EntriesExport.php b/src/Wallabag/CoreBundle/Helper/EntriesExport.php index 64d82193..de259e7f 100644 --- a/src/Wallabag/CoreBundle/Helper/EntriesExport.php +++ b/src/Wallabag/CoreBundle/Helper/EntriesExport.php @@ -2,12 +2,12 @@ namespace Wallabag\CoreBundle\Helper; -use JMS\Serializer; use JMS\Serializer\SerializationContext; use JMS\Serializer\SerializerBuilder; use PHPePub\Core\EPub; use PHPePub\Core\Structure\OPF\DublinCore; use Symfony\Component\HttpFoundation\Response; +use Wallabag\CoreBundle\Entity\Entry; /** * This class doesn't have unit test BUT it's fully covered by a functional test with ExportControllerTest. @@ -427,7 +427,7 @@ class EntriesExport * * @param string $format * - * @return Serializer + * @return string */ private function prepareSerializingContent($format) { -- cgit v1.2.3 From c66087838886d5921ffd8b5b1e57e0a09528e4b8 Mon Sep 17 00:00:00 2001 From: Nicolas Hart Date: Sun, 27 Aug 2017 00:04:21 +0200 Subject: better entry txt export using html2text --- src/Wallabag/CoreBundle/Helper/EntriesExport.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/Wallabag/CoreBundle/Helper/EntriesExport.php') diff --git a/src/Wallabag/CoreBundle/Helper/EntriesExport.php b/src/Wallabag/CoreBundle/Helper/EntriesExport.php index de259e7f..838b9734 100644 --- a/src/Wallabag/CoreBundle/Helper/EntriesExport.php +++ b/src/Wallabag/CoreBundle/Helper/EntriesExport.php @@ -2,6 +2,7 @@ namespace Wallabag\CoreBundle\Helper; +use Html2Text\Html2Text; use JMS\Serializer\SerializationContext; use JMS\Serializer\SerializerBuilder; use PHPePub\Core\EPub; @@ -408,7 +409,8 @@ class EntriesExport $bar = str_repeat('=', 100); foreach ($this->entries as $entry) { $content .= "\n\n" . $bar . "\n\n" . $entry->getTitle() . "\n\n" . $bar . "\n\n"; - $content .= trim(preg_replace('/\s+/S', ' ', strip_tags($entry->getContent()))) . "\n\n"; + $html = new Html2Text($entry->getContent(), ['do_links' => 'none', 'width' => 100]); + $content .= $html->getText(); } return Response::create( -- cgit v1.2.3 From b1428a1cf8cad5002b51d97271da66c67aa3638a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Sun, 8 Oct 2017 08:55:30 +0200 Subject: Translated first page of exported article --- src/Wallabag/CoreBundle/Helper/EntriesExport.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/Wallabag/CoreBundle/Helper/EntriesExport.php') diff --git a/src/Wallabag/CoreBundle/Helper/EntriesExport.php b/src/Wallabag/CoreBundle/Helper/EntriesExport.php index 838b9734..3e1cd522 100644 --- a/src/Wallabag/CoreBundle/Helper/EntriesExport.php +++ b/src/Wallabag/CoreBundle/Helper/EntriesExport.php @@ -8,6 +8,7 @@ use JMS\Serializer\SerializerBuilder; use PHPePub\Core\EPub; use PHPePub\Core\Structure\OPF\DublinCore; use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\Translation\TranslatorInterface; use Wallabag\CoreBundle\Entity\Entry; /** @@ -17,6 +18,7 @@ class EntriesExport { private $wallabagUrl; private $logoPath; + private $translator; private $title = ''; private $entries = []; private $author = 'wallabag'; @@ -30,10 +32,11 @@ class EntriesExport * @param string $wallabagUrl Wallabag instance url * @param string $logoPath Path to the logo FROM THE BUNDLE SCOPE */ - public function __construct($wallabagUrl, $logoPath) + public function __construct($wallabagUrl, $logoPath, TranslatorInterface $translator) { $this->wallabagUrl = $wallabagUrl; $this->logoPath = $logoPath; + $this->translator = $translator; } /** @@ -451,7 +454,9 @@ class EntriesExport */ private function getExportInformation($type) { - $info = str_replace('%EXPORT_METHOD%', $type, $this->footerTemplate); + $info = $this->translator->trans('export.footer_template', [ + '%method%' => $type, + ]); if ('tcpdf' === $type) { return str_replace('%IMAGE%', '', $info); -- cgit v1.2.3 From dc7fa8dfc606a03295a58d797f269f3ed7097939 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Sun, 8 Oct 2017 11:03:32 +0200 Subject: Fixed @tcitworld's review --- src/Wallabag/CoreBundle/Helper/EntriesExport.php | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'src/Wallabag/CoreBundle/Helper/EntriesExport.php') diff --git a/src/Wallabag/CoreBundle/Helper/EntriesExport.php b/src/Wallabag/CoreBundle/Helper/EntriesExport.php index 3e1cd522..f43bc33d 100644 --- a/src/Wallabag/CoreBundle/Helper/EntriesExport.php +++ b/src/Wallabag/CoreBundle/Helper/EntriesExport.php @@ -23,20 +23,16 @@ class EntriesExport private $entries = []; private $author = 'wallabag'; private $language = ''; - private $footerTemplate = '
-

Produced by wallabag with %EXPORT_METHOD%

-

Please open an issue if you have trouble with the display of this E-Book on your device.

-
'; /** * @param string $wallabagUrl Wallabag instance url * @param string $logoPath Path to the logo FROM THE BUNDLE SCOPE */ - public function __construct($wallabagUrl, $logoPath, TranslatorInterface $translator) + public function __construct(TranslatorInterface $translator, $wallabagUrl, $logoPath) { + $this->translator = $translator; $this->wallabagUrl = $wallabagUrl; $this->logoPath = $logoPath; - $this->translator = $translator; } /** -- cgit v1.2.3 From 8f187e280f91910534366bee3973a7e3c76a5627 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Sun, 8 Oct 2017 20:39:44 +0200 Subject: Fixed @j0k3r's review --- src/Wallabag/CoreBundle/Helper/EntriesExport.php | 1 + 1 file changed, 1 insertion(+) (limited to 'src/Wallabag/CoreBundle/Helper/EntriesExport.php') diff --git a/src/Wallabag/CoreBundle/Helper/EntriesExport.php b/src/Wallabag/CoreBundle/Helper/EntriesExport.php index f43bc33d..06144ea9 100644 --- a/src/Wallabag/CoreBundle/Helper/EntriesExport.php +++ b/src/Wallabag/CoreBundle/Helper/EntriesExport.php @@ -25,6 +25,7 @@ class EntriesExport private $language = ''; /** + * @param TranslatorInterface $translator Translator service * @param string $wallabagUrl Wallabag instance url * @param string $logoPath Path to the logo FROM THE BUNDLE SCOPE */ -- cgit v1.2.3 From 9dd67fa3420c6cfaf7bdae182ca3433c7f636187 Mon Sep 17 00:00:00 2001 From: Jeremy Benoist Date: Wed, 11 Oct 2017 10:43:36 +0200 Subject: CS --- src/Wallabag/CoreBundle/Helper/EntriesExport.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/Wallabag/CoreBundle/Helper/EntriesExport.php') diff --git a/src/Wallabag/CoreBundle/Helper/EntriesExport.php b/src/Wallabag/CoreBundle/Helper/EntriesExport.php index 06144ea9..830798b8 100644 --- a/src/Wallabag/CoreBundle/Helper/EntriesExport.php +++ b/src/Wallabag/CoreBundle/Helper/EntriesExport.php @@ -25,9 +25,9 @@ class EntriesExport private $language = ''; /** - * @param TranslatorInterface $translator Translator service - * @param string $wallabagUrl Wallabag instance url - * @param string $logoPath Path to the logo FROM THE BUNDLE SCOPE + * @param TranslatorInterface $translator Translator service + * @param string $wallabagUrl Wallabag instance url + * @param string $logoPath Path to the logo FROM THE BUNDLE SCOPE */ public function __construct(TranslatorInterface $translator, $wallabagUrl, $logoPath) { -- cgit v1.2.3