From fca2b05200f3e681c3ee195b8bb00088a8de0cf8 Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Fri, 12 Feb 2016 14:49:41 +0100 Subject: import tags from v1 (#1657) --- .../ImportBundle/Import/WallabagV1Import.php | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/Wallabag/ImportBundle/Import') diff --git a/src/Wallabag/ImportBundle/Import/WallabagV1Import.php b/src/Wallabag/ImportBundle/Import/WallabagV1Import.php index c54e73b2..bbac6eaf 100644 --- a/src/Wallabag/ImportBundle/Import/WallabagV1Import.php +++ b/src/Wallabag/ImportBundle/Import/WallabagV1Import.php @@ -6,6 +6,7 @@ use Psr\Log\LoggerInterface; use Psr\Log\NullLogger; use Doctrine\ORM\EntityManager; use Wallabag\CoreBundle\Entity\Entry; +use Wallabag\CoreBundle\Entity\Tag; use Wallabag\UserBundle\Entity\User; use Wallabag\CoreBundle\Tools\Utils; use Wallabag\CoreBundle\Helper\ContentProxy; @@ -151,6 +152,10 @@ class WallabagV1Import implements ImportInterface $entry->setReadingTime(Utils::getReadingTime($importedEntry['content'])); $entry->setDomainName(parse_url($importedEntry['url'], PHP_URL_HOST)); } + if (array_key_exists('tags', $importedEntry) && $importedEntry['tags'] != '') { + $tags = explode(',', $importedEntry['tags']); + $this->assignTagsToEntry($entry, $tags); + } $entry->setArchived($importedEntry['is_read']); $entry->setStarred($importedEntry['is_fav']); @@ -166,4 +171,22 @@ class WallabagV1Import implements ImportInterface $this->em->flush(); } + + private function assignTagsToEntry(Entry $entry, $tags) + { + foreach ($tags as $tag) { + $label = trim($tag); + $tagEntity = $this->em + ->getRepository('WallabagCoreBundle:Tag') + ->findOneByLabel($label); + if (is_object($tagEntity)) { + $entry->addTag($tagEntity); + } else { + $newTag = new Tag(); + $newTag->setLabel($label); + $entry->addTag($newTag); + } + $this->em->flush(); + } + } } -- cgit v1.2.3