X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FWallabag%2FImportBundle%2FImport%2FWallabagV1Import.php;h=bbac6eafc8dbd2a8137b66122facb7f3f9adbac6;hb=fca2b05200f3e681c3ee195b8bb00088a8de0cf8;hp=c54e73b2c8d53dce1616592b289b8668e345c90b;hpb=eaf9dad777e84d50e8b3e5877b05605ad9138fee;p=github%2Fwallabag%2Fwallabag.git 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(); + } + } }