X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FWallabag%2FImportBundle%2FImport%2FWallabagV1Import.php;h=1d773d3bb58e2094ac057c490121c5dc9883479d;hb=fe8b37c137adbe036f58616c15dbcffd07dd2cd4;hp=02327312515fcc4a58f38d2f10c1f0f8b9137f45;hpb=da0a9e01e9b6ef52656aa47367bfc30b1905fe40;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/ImportBundle/Import/WallabagV1Import.php b/src/Wallabag/ImportBundle/Import/WallabagV1Import.php index 02327312..1d773d3b 100644 --- a/src/Wallabag/ImportBundle/Import/WallabagV1Import.php +++ b/src/Wallabag/ImportBundle/Import/WallabagV1Import.php @@ -15,10 +15,11 @@ class WallabagV1Import implements ImportInterface protected $user; protected $em; protected $logger; - private $contentProxy; + protected $contentProxy; protected $skippedEntries = 0; protected $importedEntries = 0; protected $filepath; + protected $markAsRead; public function __construct(EntityManager $em, ContentProxy $contentProxy) { @@ -120,16 +121,27 @@ class WallabagV1Import implements ImportInterface return $this; } + /** + * Set whether articles must be all marked as read. + * + * @param bool $markAsRead + */ + public function setMarkAsRead($markAsRead) + { + $this->markAsRead = $markAsRead; + + return $this; + } + /** * @param $entries */ protected function parseEntries($entries) { $i = 1; - /* - * Untitled in all languages from v1. This should never have been translated - */ - $untitled = array('Untitled', 'Sans titre', 'podle nadpisu', 'Sin título', 'با عنوان', 'per titolo', 'Sem título', 'Без названия', 'po naslovu', 'Без назви'); + + //Untitled in all languages from v1. This should never have been translated + $untitled = array('Untitled', 'Sans titre', 'podle nadpisu', 'Sin título', 'با عنوان', 'per titolo', 'Sem título', 'Без названия', 'po naslovu', 'Без назви', 'No title found', ''); foreach ($entries as $importedEntry) { $existingEntry = $this->em @@ -144,15 +156,24 @@ class WallabagV1Import implements ImportInterface // @see ContentProxy->updateEntry $entry = new Entry($this->user); $entry->setUrl($importedEntry['url']); + if (in_array($importedEntry['title'], $untitled)) { - $entry = $this->contentProxy->updateEntry($entry, $entry->getUrl()); + $entry = $this->contentProxy->updateEntry($entry, $importedEntry['url']); } else { $entry->setContent($importedEntry['content']); $entry->setTitle($importedEntry['title']); $entry->setReadingTime(Utils::getReadingTime($importedEntry['content'])); $entry->setDomainName(parse_url($importedEntry['url'], PHP_URL_HOST)); } - $entry->setArchived($importedEntry['is_read']); + + if (array_key_exists('tags', $importedEntry) && $importedEntry['tags'] != '') { + $this->contentProxy->assignTagsToEntry( + $entry, + $importedEntry['tags'] + ); + } + + $entry->setArchived($importedEntry['is_read'] || $this->markAsRead); $entry->setStarred($importedEntry['is_fav']); $this->em->persist($entry);