From ae669126e718ede5dbf76929215d8514cd960976 Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Tue, 12 Jul 2016 13:51:05 +0200 Subject: Import Firefox & Chrome bookmarks into wallabag --- .../ImportBundle/Controller/BrowserController.php | 91 ++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 src/Wallabag/ImportBundle/Controller/BrowserController.php (limited to 'src/Wallabag/ImportBundle/Controller') diff --git a/src/Wallabag/ImportBundle/Controller/BrowserController.php b/src/Wallabag/ImportBundle/Controller/BrowserController.php new file mode 100644 index 00000000..3b54a72e --- /dev/null +++ b/src/Wallabag/ImportBundle/Controller/BrowserController.php @@ -0,0 +1,91 @@ +get('wallabag_import.browser.import'); + } + + /** + * Return the template used for the form. + * + * @return string + */ + protected function getImportTemplate() + { + return 'WallabagImportBundle:Browser:index.html.twig'; + } + + /** + * @Route("/browser", name="import_browser") + * + * @param Request $request + * + * @return Response + */ + public function indexAction(Request $request) + { + $form = $this->createForm(UploadImportType::class); + $form->handleRequest($request); + + $wallabag = $this->getImportService(); + + if ($form->isValid()) { + $file = $form->get('file')->getData(); + $markAsRead = $form->get('mark_as_read')->getData(); + $name = $this->getUser()->getId().'.json'; + + if (in_array($file->getClientMimeType(), $this->getParameter('wallabag_import.allow_mimetypes')) && $file->move($this->getParameter('wallabag_import.resource_dir'), $name)) { + $res = $wallabag + ->setUser($this->getUser()) + ->setFilepath($this->getParameter('wallabag_import.resource_dir').'/'.$name) + ->setMarkAsRead($markAsRead) + ->import(); + + $message = 'flashes.import.notice.failed'; + + if (true === $res) { + $summary = $wallabag->getSummary(); + // TODO : Pluralize these messages + $message = $this->get('translator')->trans('flashes.import.notice.summary', [ + '%imported%' => $summary['imported'], + '%skipped%' => $summary['skipped'], + ]); + + unlink($this->getParameter('wallabag_import.resource_dir').'/'.$name); + } + + $this->get('session')->getFlashBag()->add( + 'notice', + $message + ); + + return $this->redirect($this->generateUrl('homepage')); + } else { + $this->get('session')->getFlashBag()->add( + 'notice', + 'flashes.import.notice.failed_on_file' + ); + } + } + + return $this->render($this->getImportTemplate(), [ + 'form' => $form->createView(), + 'import' => $wallabag, + ]); + } +} -- cgit v1.2.3 From 59201088b4fc13fd361238396f630dabd9bd1990 Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Wed, 21 Sep 2016 17:47:47 +0200 Subject: bring chrome and firefox as separate imports --- .../ImportBundle/Controller/BrowserController.php | 23 ++++++------ .../ImportBundle/Controller/ChromeController.php | 41 ++++++++++++++++++++++ .../ImportBundle/Controller/FirefoxController.php | 41 ++++++++++++++++++++++ 3 files changed, 93 insertions(+), 12 deletions(-) create mode 100644 src/Wallabag/ImportBundle/Controller/ChromeController.php create mode 100644 src/Wallabag/ImportBundle/Controller/FirefoxController.php (limited to 'src/Wallabag/ImportBundle/Controller') diff --git a/src/Wallabag/ImportBundle/Controller/BrowserController.php b/src/Wallabag/ImportBundle/Controller/BrowserController.php index 3b54a72e..144a4880 100644 --- a/src/Wallabag/ImportBundle/Controller/BrowserController.php +++ b/src/Wallabag/ImportBundle/Controller/BrowserController.php @@ -8,27 +8,21 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Wallabag\ImportBundle\Form\Type\UploadImportType; -class BrowserController extends Controller +abstract class BrowserController extends Controller { /** * Return the service to handle the import. * * @return \Wallabag\ImportBundle\Import\ImportInterface */ - protected function getImportService() - { - return $this->get('wallabag_import.browser.import'); - } + abstract protected function getImportService(); /** * Return the template used for the form. * * @return string */ - protected function getImportTemplate() - { - return 'WallabagImportBundle:Browser:index.html.twig'; - } + abstract protected function getImportTemplate(); /** * @Route("/browser", name="import_browser") @@ -43,15 +37,15 @@ class BrowserController extends Controller $form->handleRequest($request); $wallabag = $this->getImportService(); + $wallabag->setUser($this->getUser()); if ($form->isValid()) { $file = $form->get('file')->getData(); $markAsRead = $form->get('mark_as_read')->getData(); $name = $this->getUser()->getId().'.json'; - if (in_array($file->getClientMimeType(), $this->getParameter('wallabag_import.allow_mimetypes')) && $file->move($this->getParameter('wallabag_import.resource_dir'), $name)) { + if (null !== $file && in_array($file->getClientMimeType(), $this->getParameter('wallabag_import.allow_mimetypes')) && $file->move($this->getParameter('wallabag_import.resource_dir'), $name)) { $res = $wallabag - ->setUser($this->getUser()) ->setFilepath($this->getParameter('wallabag_import.resource_dir').'/'.$name) ->setMarkAsRead($markAsRead) ->import(); @@ -60,12 +54,17 @@ class BrowserController extends Controller if (true === $res) { $summary = $wallabag->getSummary(); - // TODO : Pluralize these messages $message = $this->get('translator')->trans('flashes.import.notice.summary', [ '%imported%' => $summary['imported'], '%skipped%' => $summary['skipped'], ]); + if (0 < $summary['queued']) { + $message = $this->get('translator')->trans('flashes.import.notice.summary_with_queue', [ + '%queued%' => $summary['queued'], + ]); + } + unlink($this->getParameter('wallabag_import.resource_dir').'/'.$name); } diff --git a/src/Wallabag/ImportBundle/Controller/ChromeController.php b/src/Wallabag/ImportBundle/Controller/ChromeController.php new file mode 100644 index 00000000..e4cc322a --- /dev/null +++ b/src/Wallabag/ImportBundle/Controller/ChromeController.php @@ -0,0 +1,41 @@ +get('wallabag_import.chrome.import'); + + if ($this->get('craue_config')->get('import_with_rabbitmq')) { + $service->setProducer($this->get('old_sound_rabbit_mq.import_wallabag_v1_producer')); + } elseif ($this->get('craue_config')->get('import_with_redis')) { + $service->setProducer($this->get('wallabag_import.producer.redis.wallabag_v1')); + } + + return $service; + } + + /** + * {@inheritdoc} + */ + protected function getImportTemplate() + { + return 'WallabagImportBundle:Chrome:index.html.twig'; + } + + /** + * @Route("/chrome", name="import_chrome") + */ + public function indexAction(Request $request) + { + return parent::indexAction($request); + } +} diff --git a/src/Wallabag/ImportBundle/Controller/FirefoxController.php b/src/Wallabag/ImportBundle/Controller/FirefoxController.php new file mode 100644 index 00000000..e0dd8214 --- /dev/null +++ b/src/Wallabag/ImportBundle/Controller/FirefoxController.php @@ -0,0 +1,41 @@ +get('wallabag_import.firefox.import'); + + if ($this->get('craue_config')->get('import_with_rabbitmq')) { + $service->setProducer($this->get('old_sound_rabbit_mq.import_wallabag_v1_producer')); + } elseif ($this->get('craue_config')->get('import_with_redis')) { + $service->setProducer($this->get('wallabag_import.producer.redis.wallabag_v1')); + } + + return $service; + } + + /** + * {@inheritdoc} + */ + protected function getImportTemplate() + { + return 'WallabagImportBundle:Firefox:index.html.twig'; + } + + /** + * @Route("/firefox", name="import_firefox") + */ + public function indexAction(Request $request) + { + return parent::indexAction($request); + } +} -- cgit v1.2.3 From 2c61db30b737685ae9102ec10f2371778fb13f1a Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Wed, 21 Sep 2016 18:00:08 +0200 Subject: cs & fixes --- src/Wallabag/ImportBundle/Controller/ChromeController.php | 4 ++-- src/Wallabag/ImportBundle/Controller/FirefoxController.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'src/Wallabag/ImportBundle/Controller') diff --git a/src/Wallabag/ImportBundle/Controller/ChromeController.php b/src/Wallabag/ImportBundle/Controller/ChromeController.php index e4cc322a..454f3347 100644 --- a/src/Wallabag/ImportBundle/Controller/ChromeController.php +++ b/src/Wallabag/ImportBundle/Controller/ChromeController.php @@ -15,9 +15,9 @@ class ChromeController extends BrowserController $service = $this->get('wallabag_import.chrome.import'); if ($this->get('craue_config')->get('import_with_rabbitmq')) { - $service->setProducer($this->get('old_sound_rabbit_mq.import_wallabag_v1_producer')); + $service->setProducer($this->get('old_sound_rabbit_mq.import_chrome_producer')); } elseif ($this->get('craue_config')->get('import_with_redis')) { - $service->setProducer($this->get('wallabag_import.producer.redis.wallabag_v1')); + $service->setProducer($this->get('wallabag_import.producer.redis.chrome')); } return $service; diff --git a/src/Wallabag/ImportBundle/Controller/FirefoxController.php b/src/Wallabag/ImportBundle/Controller/FirefoxController.php index e0dd8214..c329b9c4 100644 --- a/src/Wallabag/ImportBundle/Controller/FirefoxController.php +++ b/src/Wallabag/ImportBundle/Controller/FirefoxController.php @@ -15,9 +15,9 @@ class FirefoxController extends BrowserController $service = $this->get('wallabag_import.firefox.import'); if ($this->get('craue_config')->get('import_with_rabbitmq')) { - $service->setProducer($this->get('old_sound_rabbit_mq.import_wallabag_v1_producer')); + $service->setProducer($this->get('old_sound_rabbit_mq.import_firefox_producer')); } elseif ($this->get('craue_config')->get('import_with_redis')) { - $service->setProducer($this->get('wallabag_import.producer.redis.wallabag_v1')); + $service->setProducer($this->get('wallabag_import.producer.redis.firefox')); } return $service; -- cgit v1.2.3