diff options
author | Thomas Citharel <tcit@tcit.fr> | 2016-02-11 13:27:17 +0100 |
---|---|---|
committer | Thomas Citharel <tcit@tcit.fr> | 2016-02-11 13:27:17 +0100 |
commit | 0783c99a196d1626d91119f715285150662fbe6e (patch) | |
tree | a8d992d43cba099ec7f26e52f2009a00be7367f8 /src/Wallabag/ImportBundle/Import/WallabagV1Import.php | |
parent | ae5b37ef2e52c06182bc6edb14f6b3aae381ddb4 (diff) | |
download | wallabag-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.php | 22 |
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; | |||
8 | use Wallabag\CoreBundle\Entity\Entry; | 8 | use Wallabag\CoreBundle\Entity\Entry; |
9 | use Wallabag\UserBundle\Entity\User; | 9 | use Wallabag\UserBundle\Entity\User; |
10 | use Wallabag\CoreBundle\Tools\Utils; | 10 | use Wallabag\CoreBundle\Tools\Utils; |
11 | use Wallabag\CoreBundle\Helper\ContentProxy; | ||
12 | |||
11 | 13 | ||
12 | class WallabagV1Import implements ImportInterface | 14 | class 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; |