X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FWallabag%2FCoreBundle%2FHelper%2FEntriesExport.php;h=82004a6d51371c348a012cae99dc11b7b49adbf8;hb=ba2157b270095757eb5af8062df72ce16c497637;hp=6e06086fcf93f56fc80fa08db8dc5f149f5894f6;hpb=365a38984e32d152ec0170991a61bf704756cf1e;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/CoreBundle/Helper/EntriesExport.php b/src/Wallabag/CoreBundle/Helper/EntriesExport.php index 6e06086f..82004a6d 100644 --- a/src/Wallabag/CoreBundle/Helper/EntriesExport.php +++ b/src/Wallabag/CoreBundle/Helper/EntriesExport.php @@ -6,7 +6,6 @@ use JMS\Serializer; use JMS\Serializer\SerializationContext; use JMS\Serializer\SerializerBuilder; use PHPePub\Core\EPub; -use Html2Text\Html2Text; use PHPePub\Core\Structure\OPF\DublinCore; use Symfony\Component\HttpFoundation\Response; use Craue\ConfigBundle\Util\Config; @@ -82,26 +81,9 @@ class EntriesExport */ public function exportAs($format) { - switch ($format) { - case 'epub': - return $this->produceEpub(); - - case 'mobi': - return $this->produceMobi(); - - case 'pdf': - return $this->producePDF(); - - case 'csv': - return $this->produceCSV(); - - case 'json': - return $this->produceJSON(); - - case 'xml': - return $this->produceXML(); - case 'txt': - return $this->produceTXT(); + $functionName = 'produce'.ucfirst($format); + if (method_exists($this, $functionName)) { + return $this->$functionName(); } throw new \InvalidArgumentException(sprintf('The format "%s" is not yet supported.', $format)); @@ -186,7 +168,7 @@ class EntriesExport 'Content-Disposition' => 'attachment; filename="'.$this->title.'.epub"', 'Content-Transfer-Encoding' => 'binary', ) - )->send(); + ); } /** @@ -236,13 +218,13 @@ class EntriesExport 'Content-Disposition' => 'attachment; filename="'.$this->title.'.mobi"', 'Content-Transfer-Encoding' => 'binary', ) - )->send(); + ); } /** * Use TCPDF to dump a .pdf file. */ - private function producePDF() + private function producePdf() { $pdf = new \TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); @@ -290,13 +272,13 @@ class EntriesExport 'Content-Disposition' => 'attachment; filename="'.$this->title.'.pdf"', 'Content-Transfer-Encoding' => 'binary', ) - )->send(); + ); } /** * Inspired from CsvFileDumper. */ - private function produceCSV() + private function produceCsv() { $delimiter = ';'; $enclosure = '"'; @@ -333,10 +315,10 @@ class EntriesExport 'Content-Disposition' => 'attachment; filename="'.$this->title.'.csv"', 'Content-Transfer-Encoding' => 'UTF-8', ) - )->send(); + ); } - private function produceJSON() + private function produceJson() { return Response::create( $this->prepareSerializingContent('json'), @@ -346,10 +328,10 @@ class EntriesExport 'Content-Disposition' => 'attachment; filename="'.$this->title.'.json"', 'Content-Transfer-Encoding' => 'UTF-8', ) - )->send(); + ); } - private function produceXML() + private function produceXml() { return Response::create( $this->prepareSerializingContent('xml'), @@ -359,16 +341,18 @@ class EntriesExport 'Content-Disposition' => 'attachment; filename="'.$this->title.'.xml"', 'Content-Transfer-Encoding' => 'UTF-8', ) - )->send(); + ); } - private function produceTXT() + private function produceTxt() { $content = ''; + $bar = str_repeat('=', 100); foreach ($this->entries as $entry) { - $content .= "\n\n" . str_repeat("=",100) . "\n\n" . $entry->getTitle() . "\n\n" . str_repeat("=",100) . "\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( $content, 200, @@ -377,10 +361,9 @@ class EntriesExport 'Content-Disposition' => 'attachment; filename="'.$this->title.'.txt"', 'Content-Transfer-Encoding' => 'UTF-8', ) - )->send(); + ); } - /** * Return a Serializer object for producing processes that need it (JSON & XML). *