diff --git a/src/Wallabag/CoreBundle/Helper/EntriesExport.php b/src/Wallabag/CoreBundle/Helper/EntriesExport.php
index 1318602e2..54304fc50 100644
--- a/src/Wallabag/CoreBundle/Helper/EntriesExport.php
+++ b/src/Wallabag/CoreBundle/Helper/EntriesExport.php
@@ -8,8 +8,10 @@ use JMS\Serializer\SerializerBuilder;
use PHPePub\Core\EPub;
use PHPePub\Core\Structure\OPF\DublinCore;
use Symfony\Component\HttpFoundation\Response;
+use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
use Symfony\Component\Translation\TranslatorInterface;
use Wallabag\CoreBundle\Entity\Entry;
+use Wallabag\UserBundle\Entity\User;
/**
* This class doesn't have unit test BUT it's fully covered by a functional test with ExportControllerTest.
@@ -23,17 +25,26 @@ class EntriesExport
private $entries = [];
private $author = 'wallabag';
private $language = '';
+ private $user;
/**
- * @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
+ * @param TokenStorageInterface $tokenStorage Needed to retrieve the current user
*/
- public function __construct(TranslatorInterface $translator, $wallabagUrl, $logoPath)
+ public function __construct(TranslatorInterface $translator, $wallabagUrl, $logoPath, TokenStorageInterface $tokenStorage)
{
$this->translator = $translator;
$this->wallabagUrl = $wallabagUrl;
$this->logoPath = $logoPath;
+
+ /* @var User $user */
+ $this->user = $tokenStorage->getToken() ? $tokenStorage->getToken()->getUser() : null;
+
+ if (null === $this->user || !\is_object($this->user)) {
+ return;
+ }
}
/**
@@ -202,12 +213,14 @@ class EntriesExport
$publishedDate = $entry->getPublishedAt()->format('Y-m-d');
}
+ $readingTime = $entry->getReadingTime() / $this->user->getConfig()->getReadingSpeed() * 200;
+
$titlepage = $content_start .
'
' . $entry->getTitle() . '
' .
'' .
'- ' . $this->translator->trans('entry.view.published_by') . '
- ' . $authors . '
' .
'- ' . $this->translator->trans('entry.metadata.published_on') . '
- ' . $publishedDate . '
' .
- '- ' . $this->translator->trans('entry.metadata.reading_time') . '
- ' . $this->translator->trans('entry.metadata.reading_time_minutes_short', ['%readingTime%' => $entry->getReadingTime()]) . '
' .
+ '- ' . $this->translator->trans('entry.metadata.reading_time') . '
- ' . $this->translator->trans('entry.metadata.reading_time_minutes_short', ['%readingTime%' => $readingTime]) . '
' .
'- ' . $this->translator->trans('entry.metadata.added_on') . '
- ' . $entry->getCreatedAt()->format('Y-m-d') . '
' .
'- ' . $this->translator->trans('entry.metadata.address') . '
- ' . $entry->getUrl() . '
' .
'
' .
@@ -318,11 +331,13 @@ class EntriesExport
$authors = implode(',', $publishedBy);
}
+ $readingTime = $entry->getReadingTime() / $this->user->getConfig()->getReadingSpeed() * 200;
+
$pdf->addPage();
$html = '' . $entry->getTitle() . '
' .
'' .
'- ' . $this->translator->trans('entry.view.published_by') . '
- ' . $authors . '
' .
- '- ' . $this->translator->trans('entry.metadata.reading_time') . '
- ' . $this->translator->trans('entry.metadata.reading_time_minutes_short', ['%readingTime%' => $entry->getReadingTime()]) . '
' .
+ '- ' . $this->translator->trans('entry.metadata.reading_time') . '
- ' . $this->translator->trans('entry.metadata.reading_time_minutes_short', ['%readingTime%' => $readingTime]) . '
' .
'- ' . $this->translator->trans('entry.metadata.added_on') . '
- ' . $entry->getCreatedAt()->format('Y-m-d') . '
' .
'- ' . $this->translator->trans('entry.metadata.address') . '
- ' . $entry->getUrl() . '
' .
'
';
diff --git a/src/Wallabag/CoreBundle/Resources/config/services.yml b/src/Wallabag/CoreBundle/Resources/config/services.yml
index 89c43e54f..5dfdb9a26 100644
--- a/src/Wallabag/CoreBundle/Resources/config/services.yml
+++ b/src/Wallabag/CoreBundle/Resources/config/services.yml
@@ -151,6 +151,7 @@ services:
- "@translator"
- '%domain_name%'
- web/img/appicon/apple-touch-icon-152.png
+ - "@security.token_storage"
wallabag.operator.array.matches:
class: Wallabag\CoreBundle\Operator\PHP\Matches