diff options
author | Jérémy Benoist <j0k3r@users.noreply.github.com> | 2017-10-23 11:09:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-23 11:09:17 +0200 |
commit | 1953a872932a63792293b4aec087880265ba89f7 (patch) | |
tree | fd16599e737fcdaf193c933ef3ec4a4ee248b117 /src/Wallabag/ImportBundle/Command/ImportCommand.php | |
parent | d83d25dadec2c38460a32d96f5d2903426fec9d3 (diff) | |
parent | 702f2d67d60ca963492b90dad74cb5f8dcc84e51 (diff) | |
download | wallabag-1953a872932a63792293b4aec087880265ba89f7.tar.gz wallabag-1953a872932a63792293b4aec087880265ba89f7.tar.zst wallabag-1953a872932a63792293b4aec087880265ba89f7.zip |
Merge pull request #3011 from wallabag/2.3
wallabag 2.3.0
Diffstat (limited to 'src/Wallabag/ImportBundle/Command/ImportCommand.php')
-rw-r--r-- | src/Wallabag/ImportBundle/Command/ImportCommand.php | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/src/Wallabag/ImportBundle/Command/ImportCommand.php b/src/Wallabag/ImportBundle/Command/ImportCommand.php index 28d01715..99056c2c 100644 --- a/src/Wallabag/ImportBundle/Command/ImportCommand.php +++ b/src/Wallabag/ImportBundle/Command/ImportCommand.php | |||
@@ -6,6 +6,7 @@ use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand; | |||
6 | use Symfony\Component\Config\Definition\Exception\Exception; | 6 | use Symfony\Component\Config\Definition\Exception\Exception; |
7 | use Symfony\Component\Console\Input\InputArgument; | 7 | use Symfony\Component\Console\Input\InputArgument; |
8 | use Symfony\Component\Console\Input\InputInterface; | 8 | use Symfony\Component\Console\Input\InputInterface; |
9 | use Symfony\Component\Console\Input\InputOption; | ||
9 | use Symfony\Component\Console\Output\OutputInterface; | 10 | use Symfony\Component\Console\Output\OutputInterface; |
10 | 11 | ||
11 | class ImportCommand extends ContainerAwareCommand | 12 | class ImportCommand extends ContainerAwareCommand |
@@ -15,16 +16,18 @@ class ImportCommand extends ContainerAwareCommand | |||
15 | $this | 16 | $this |
16 | ->setName('wallabag:import') | 17 | ->setName('wallabag:import') |
17 | ->setDescription('Import entries from a JSON export') | 18 | ->setDescription('Import entries from a JSON export') |
18 | ->addArgument('userId', InputArgument::REQUIRED, 'User ID to populate') | 19 | ->addArgument('username', InputArgument::REQUIRED, 'User to populate') |
19 | ->addArgument('filepath', InputArgument::REQUIRED, 'Path to the JSON file') | 20 | ->addArgument('filepath', InputArgument::REQUIRED, 'Path to the JSON file') |
20 | ->addOption('importer', null, InputArgument::OPTIONAL, 'The importer to use: v1, v2, instapaper, pinboard, readability, firefox or chrome', 'v1') | 21 | ->addOption('importer', null, InputOption::VALUE_OPTIONAL, 'The importer to use: v1, v2, instapaper, pinboard, readability, firefox or chrome', 'v1') |
21 | ->addOption('markAsRead', null, InputArgument::OPTIONAL, 'Mark all entries as read', false) | 22 | ->addOption('markAsRead', null, InputOption::VALUE_OPTIONAL, 'Mark all entries as read', false) |
23 | ->addOption('useUserId', null, InputOption::VALUE_NONE, 'Use user id instead of username to find account') | ||
24 | ->addOption('disableContentUpdate', null, InputOption::VALUE_NONE, 'Disable fetching updated content from URL') | ||
22 | ; | 25 | ; |
23 | } | 26 | } |
24 | 27 | ||
25 | protected function execute(InputInterface $input, OutputInterface $output) | 28 | protected function execute(InputInterface $input, OutputInterface $output) |
26 | { | 29 | { |
27 | $output->writeln('Start : '.(new \DateTime())->format('d-m-Y G:i:s').' ---'); | 30 | $output->writeln('Start : ' . (new \DateTime())->format('d-m-Y G:i:s') . ' ---'); |
28 | 31 | ||
29 | if (!file_exists($input->getArgument('filepath'))) { | 32 | if (!file_exists($input->getArgument('filepath'))) { |
30 | throw new Exception(sprintf('File "%s" not found', $input->getArgument('filepath'))); | 33 | throw new Exception(sprintf('File "%s" not found', $input->getArgument('filepath'))); |
@@ -34,10 +37,14 @@ class ImportCommand extends ContainerAwareCommand | |||
34 | // Turning off doctrine default logs queries for saving memory | 37 | // Turning off doctrine default logs queries for saving memory |
35 | $em->getConnection()->getConfiguration()->setSQLLogger(null); | 38 | $em->getConnection()->getConfiguration()->setSQLLogger(null); |
36 | 39 | ||
37 | $user = $em->getRepository('WallabagUserBundle:User')->findOneById($input->getArgument('userId')); | 40 | if ($input->getOption('useUserId')) { |
41 | $user = $em->getRepository('WallabagUserBundle:User')->findOneById($input->getArgument('username')); | ||
42 | } else { | ||
43 | $user = $em->getRepository('WallabagUserBundle:User')->findOneByUsername($input->getArgument('username')); | ||
44 | } | ||
38 | 45 | ||
39 | if (!is_object($user)) { | 46 | if (!is_object($user)) { |
40 | throw new Exception(sprintf('User with id "%s" not found', $input->getArgument('userId'))); | 47 | throw new Exception(sprintf('User "%s" not found', $input->getArgument('username'))); |
41 | } | 48 | } |
42 | 49 | ||
43 | switch ($input->getOption('importer')) { | 50 | switch ($input->getOption('importer')) { |
@@ -64,6 +71,7 @@ class ImportCommand extends ContainerAwareCommand | |||
64 | } | 71 | } |
65 | 72 | ||
66 | $import->setMarkAsRead($input->getOption('markAsRead')); | 73 | $import->setMarkAsRead($input->getOption('markAsRead')); |
74 | $import->setDisableContentUpdate($input->getOption('disableContentUpdate')); | ||
67 | $import->setUser($user); | 75 | $import->setUser($user); |
68 | 76 | ||
69 | $res = $import | 77 | $res = $import |
@@ -72,12 +80,12 @@ class ImportCommand extends ContainerAwareCommand | |||
72 | 80 | ||
73 | if (true === $res) { | 81 | if (true === $res) { |
74 | $summary = $import->getSummary(); | 82 | $summary = $import->getSummary(); |
75 | $output->writeln('<info>'.$summary['imported'].' imported</info>'); | 83 | $output->writeln('<info>' . $summary['imported'] . ' imported</info>'); |
76 | $output->writeln('<comment>'.$summary['skipped'].' already saved</comment>'); | 84 | $output->writeln('<comment>' . $summary['skipped'] . ' already saved</comment>'); |
77 | } | 85 | } |
78 | 86 | ||
79 | $em->clear(); | 87 | $em->clear(); |
80 | 88 | ||
81 | $output->writeln('End : '.(new \DateTime())->format('d-m-Y G:i:s').' ---'); | 89 | $output->writeln('End : ' . (new \DateTime())->format('d-m-Y G:i:s') . ' ---'); |
82 | } | 90 | } |
83 | } | 91 | } |