aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Wallabag/ImportBundle/Import/WallabagV1Import.php
diff options
context:
space:
mode:
authorThomas Citharel <tcit@tcit.fr>2016-02-11 13:27:17 +0100
committerThomas Citharel <tcit@tcit.fr>2016-02-11 13:27:17 +0100
commit0783c99a196d1626d91119f715285150662fbe6e (patch)
treea8d992d43cba099ec7f26e52f2009a00be7367f8 /src/Wallabag/ImportBundle/Import/WallabagV1Import.php
parentae5b37ef2e52c06182bc6edb14f6b3aae381ddb4 (diff)
downloadwallabag-0783c99a196d1626d91119f715285150662fbe6e.tar.gz
wallabag-0783c99a196d1626d91119f715285150662fbe6e.tar.zst
wallabag-0783c99a196d1626d91119f715285150662fbe6e.zip
reimport v1 entries if they were not fetched
Diffstat (limited to 'src/Wallabag/ImportBundle/Import/WallabagV1Import.php')
-rw-r--r--src/Wallabag/ImportBundle/Import/WallabagV1Import.php22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/Wallabag/ImportBundle/Import/WallabagV1Import.php b/src/Wallabag/ImportBundle/Import/WallabagV1Import.php
index 0dac6203..82b52ad3 100644
--- a/src/Wallabag/ImportBundle/Import/WallabagV1Import.php
+++ b/src/Wallabag/ImportBundle/Import/WallabagV1Import.php
@@ -8,20 +8,24 @@ use Doctrine\ORM\EntityManager;
8use Wallabag\CoreBundle\Entity\Entry; 8use Wallabag\CoreBundle\Entity\Entry;
9use Wallabag\UserBundle\Entity\User; 9use Wallabag\UserBundle\Entity\User;
10use Wallabag\CoreBundle\Tools\Utils; 10use Wallabag\CoreBundle\Tools\Utils;
11use Wallabag\CoreBundle\Helper\ContentProxy;
12
11 13
12class WallabagV1Import implements ImportInterface 14class WallabagV1Import implements ImportInterface
13{ 15{
14 protected $user; 16 protected $user;
15 protected $em; 17 protected $em;
16 protected $logger; 18 protected $logger;
19 private $contentProxy;
17 protected $skippedEntries = 0; 20 protected $skippedEntries = 0;
18 protected $importedEntries = 0; 21 protected $importedEntries = 0;
19 protected $filepath; 22 protected $filepath;
20 23
21 public function __construct(EntityManager $em) 24 public function __construct(EntityManager $em, ContentProxy $contentProxy)
22 { 25 {
23 $this->em = $em; 26 $this->em = $em;
24 $this->logger = new NullLogger(); 27 $this->logger = new NullLogger();
28 $this->contentProxy = $contentProxy;
25 } 29 }
26 30
27 public function setLogger(LoggerInterface $logger) 31 public function setLogger(LoggerInterface $logger)
@@ -123,6 +127,10 @@ class WallabagV1Import implements ImportInterface
123 protected function parseEntries($entries) 127 protected function parseEntries($entries)
124 { 128 {
125 $i = 1; 129 $i = 1;
130 /**
131 * Untitled in all languages from v1. This should never have been translated
132 */
133 $untitled = array('Untitled','Sans titre','podle nadpisu','Sin título','با عنوان','per titolo','Sem título','Без названия','po naslovu','Без назви');
126 134
127 foreach ($entries as $importedEntry) { 135 foreach ($entries as $importedEntry) {
128 $existingEntry = $this->em 136 $existingEntry = $this->em
@@ -137,12 +145,16 @@ class WallabagV1Import implements ImportInterface
137 // @see ContentProxy->updateEntry 145 // @see ContentProxy->updateEntry
138 $entry = new Entry($this->user); 146 $entry = new Entry($this->user);
139 $entry->setUrl($importedEntry['url']); 147 $entry->setUrl($importedEntry['url']);
140 $entry->setTitle($importedEntry['title']); 148 if (in_array($importedEntry['title'],$untitled)) {
149 $entry = $this->contentProxy->updateEntry($entry, $entry->getUrl());
150 } else {
151 $entry->setContent($importedEntry['content']);
152 $entry->setTitle($importedEntry['title']);
153 $entry->setReadingTime(Utils::getReadingTime($importedEntry['content']));
154 $entry->setDomainName(parse_url($importedEntry['url'], PHP_URL_HOST));
155 }
141 $entry->setArchived($importedEntry['is_read']); 156 $entry->setArchived($importedEntry['is_read']);
142 $entry->setStarred($importedEntry['is_fav']); 157 $entry->setStarred($importedEntry['is_fav']);
143 $entry->setContent($importedEntry['content']);
144 $entry->setReadingTime(Utils::getReadingTime($importedEntry['content']));
145 $entry->setDomainName(parse_url($importedEntry['url'], PHP_URL_HOST));
146 158
147 $this->em->persist($entry); 159 $this->em->persist($entry);
148 ++$this->importedEntries; 160 ++$this->importedEntries;