]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
Use the article domain as author for export files
authorÉtienne Gilli <etienne.gilli@gmail.com>
Sat, 8 Jul 2017 15:55:58 +0000 (17:55 +0200)
committerÉtienne Gilli <etienne.gilli@gmail.com>
Sat, 8 Jul 2017 17:53:43 +0000 (19:53 +0200)
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/ApiBundle/Controller/EntryRestController.php
src/Wallabag/CoreBundle/Command/ExportCommand.php
src/Wallabag/CoreBundle/Controller/ExportController.php
src/Wallabag/CoreBundle/Helper/EntriesExport.php

index 8a2061243a98baeff54644ea84d98ff0ffc8e797..9277e1a19f093837efbb34540bc0996b02d32bc0 100644 (file)
@@ -180,6 +180,7 @@ class EntryRestController extends WallabagRestController
         return $this->get('wallabag_core.helper.entries_export')
             ->setEntries($entry)
             ->updateTitle('entry')
+            ->updateAuthor('entry')
             ->exportAs($request->attributes->get('_format'));
     }
 
index 0dacb73406f013b19433325c477b785ae8a41545..c2e4be05c9a87aac64a8cb63b42e9d3ac16b2e15 100644 (file)
@@ -56,6 +56,7 @@ class ExportCommand extends ContainerAwareCommand
             $data = $this->getContainer()->get('wallabag_core.helper.entries_export')
                 ->setEntries($entries)
                 ->updateTitle('All')
+                ->updateAuthor('All')
                 ->exportJsonData();
             file_put_contents($filePath, $data);
         } catch (\InvalidArgumentException $e) {
index 6fad122e1bf88b3241288dad1abe4fcfa06b1ab5..35a2204606005e21a02e66bdc4a8a5d311555770 100644 (file)
@@ -33,6 +33,7 @@ class ExportController extends Controller
             return $this->get('wallabag_core.helper.entries_export')
                 ->setEntries($entry)
                 ->updateTitle('entry')
+                ->updateAuthor('entry')
                 ->exportAs($format);
         } catch (\InvalidArgumentException $e) {
             throw new NotFoundHttpException($e->getMessage());
@@ -76,6 +77,7 @@ class ExportController extends Controller
             return $this->get('wallabag_core.helper.entries_export')
                 ->setEntries($entries)
                 ->updateTitle($method)
+                ->updateAuthor($method)
                 ->exportAs($format);
         } catch (\InvalidArgumentException $e) {
             throw new NotFoundHttpException($e->getMessage());
index cd74cc4f866a8e6e2b2a3d7e5b7fa63fe52008d0..d749dcf91adc422a832ec207bed4362af4085f80 100644 (file)
@@ -18,7 +18,7 @@ class EntriesExport
     private $logoPath;
     private $title = '';
     private $entries = [];
-    private $authors = ['wallabag'];
+    private $author = 'wallabag';
     private $language = '';
     private $footerTemplate = '<div style="text-align:center;">
         <p>Produced by wallabag with %EXPORT_METHOD%</p>
@@ -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');