aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNicolas Lœuillet <nicolas@loeuillet.org>2016-04-27 20:30:24 +0200
committerNicolas Lœuillet <nicolas@loeuillet.org>2016-05-27 09:43:48 +0200
commit3fad6c74fe72b50bceb5f1c67c3f81370660634e (patch)
treea99eec7d509da8df008d7977324827e59581ac52
parent7b67f785ff09e093286f3fd665eb263807cbb760 (diff)
downloadwallabag-3fad6c74fe72b50bceb5f1c67c3f81370660634e.tar.gz
wallabag-3fad6c74fe72b50bceb5f1c67c3f81370660634e.tar.zst
wallabag-3fad6c74fe72b50bceb5f1c67c3f81370660634e.zip
Add CLI import for wallabag v2 files
-rw-r--r--docs/en/user/migration.rst36
-rw-r--r--docs/fr/user/migration.rst36
-rw-r--r--src/Wallabag/ImportBundle/Command/ImportCommand.php13
3 files changed, 52 insertions, 33 deletions
diff --git a/docs/en/user/migration.rst b/docs/en/user/migration.rst
index e141ae40..cfbca922 100644
--- a/docs/en/user/migration.rst
+++ b/docs/en/user/migration.rst
@@ -24,20 +24,38 @@ After creating an user account on your new wallabag v2 instance, you must head o
24 :alt: Import from wallabag v1 24 :alt: Import from wallabag v1
25 :align: center 25 :align: center
26 26
27From wallabag 2.x
28-----------------
29
30From the previous wallabag instance on which you were before, go to `All articles`, then export these articles as json.
31
32.. image:: ../../img/user/export_v2.png
33 :alt: Export depuis wallabag v2
34 :align: center
35
36From your new wallabag instance, create your user account and click on the link in the menu to proceed to import. Choose import from wallabag v2 and select your json file to upload it.
37
38.. note::
39 If you encounter issues during the export or the import, don't hesitate to `ask for support <https://www.wallabag.org/pages/support.html>`__.
40
27Import via command-line interface (CLI) 41Import via command-line interface (CLI)
28~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42---------------------------------------
29 43
30If you have a CLI access on your web server, you can execute this command to import your wallabag v1 export: 44If you have a CLI access on your web server, you can execute this command to import your wallabag v1 export:
31 45
32:: 46::
33 47
34 bin/console wallabag:import-v1 1 ~/Downloads/wallabag-export-1-2016-04-05.json --env=prod 48 bin/console wallabag:import 1 ~/Downloads/wallabag-export-1-2016-04-05.json --env=prod
35 49
36Please replace values: 50Please replace values:
37 51
38* ``1`` is the user identifier in database (The ID of the first user created on wallabag is 1) 52* ``1`` is the user identifier in database (The ID of the first user created on wallabag is 1)
39* ``~/Downloads/wallabag-export-1-2016-04-05.json`` is the path of your wallabag v1 export 53* ``~/Downloads/wallabag-export-1-2016-04-05.json`` is the path of your wallabag v1 export
40 54
55If you want to mark all these entries as read, you can add the ``--markAsRead=yes`` option.
56
57To import a wallabag v2 file, you need to add the option ``--importer=v2``.
58
41You'll have this in return: 59You'll have this in return:
42 60
43:: 61::
@@ -46,17 +64,3 @@ You'll have this in return:
46 403 imported 64 403 imported
47 0 already saved 65 0 already saved
48 End : 05-04-2016 11:36:09 --- 66 End : 05-04-2016 11:36:09 ---
49
50From wallabag 2.x
51-----------------
52
53From the previous wallabag instance on which you were before, go to `All articles`, then export these articles as json.
54
55.. image:: ../../img/user/export_v2.png
56 :alt: Export depuis wallabag v2
57 :align: center
58
59From your new wallabag instance, create your user account and click on the link in the menu to proceed to import. Choose import from wallabag v2 and select your json file to upload it.
60
61.. note::
62 If you encounter issues during the export or the import, don't hesitate to `ask for support <https://www.wallabag.org/pages/support.html>`__.
diff --git a/docs/fr/user/migration.rst b/docs/fr/user/migration.rst
index 66024572..a69df295 100644
--- a/docs/fr/user/migration.rst
+++ b/docs/fr/user/migration.rst
@@ -24,20 +24,38 @@ Une fois que vous avez créé un compte utilisateur sur votre nouvelle instance
24 :alt: Import depuis wallabag v1 24 :alt: Import depuis wallabag v1
25 :align: center 25 :align: center
26 26
27Depuis wallabag 2.x
28-------------------
29
30Depuis l'instance sur laquelle vous étiez, rendez-vous dans la section `Tous les articles`, puis exportez ces articles au format json.
31
32.. image:: ../../img/user/export_v2.png
33 :alt: Export depuis wallabag v2
34 :align: center
35
36Depuis votre nouvelle instance de wallabag, créez votre compte utilisateur puis cliquez sur le lien dans le menu pour accéder à l'import. Choisissez l'import depuis wallabag v2 puis sélectionnez votre fichier json pour l'uploader.
37
38.. note::
39 S'il vous arrive des problèmes durant l'export ou l'import, n'hésitez pas à `demander de l'aide <https://www.wallabag.org/pages/support.html>`__.
40
27Import via via la ligne de commande (CLI) 41Import via via la ligne de commande (CLI)
28~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42-----------------------------------------
29 43
30Si vous avez accès à la ligne de commandes de votre serveur web, vous pouvez exécuter cette commande pour import votre fichier wallabag v1 : 44Si vous avez accès à la ligne de commandes de votre serveur web, vous pouvez exécuter cette commande pour import votre fichier wallabag v1 :
31 45
32:: 46::
33 47
34 bin/console wallabag:import-v1 1 ~/Downloads/wallabag-export-1-2016-04-05.json --env=prod 48 bin/console wallabag:import 1 ~/Downloads/wallabag-export-1-2016-04-05.json --env=prod
35 49
36Remplacez les valeurs : 50Remplacez les valeurs :
37 51
38* ``1`` est l'identifiant de votre utilisateur en base (l'ID de votre premier utilisateur créé sur wallabag est 1) 52* ``1`` est l'identifiant de votre utilisateur en base (l'ID de votre premier utilisateur créé sur wallabag est 1)
39* ``~/Downloads/wallabag-export-1-2016-04-05.json`` est le chemin de votre export wallabag v1 53* ``~/Downloads/wallabag-export-1-2016-04-05.json`` est le chemin de votre export wallabag v1
40 54
55Si vous voulez marquer tous ces articles comme lus, vous pouvez ajouter l'option ``--markAsRead=yes``.
56
57Pour importer un fichier wallabag v2, vous devez ajouter l'option ``--importer=v2``.
58
41Vous obtiendrez : 59Vous obtiendrez :
42 60
43:: 61::
@@ -46,17 +64,3 @@ Vous obtiendrez :
46 403 imported 64 403 imported
47 0 already saved 65 0 already saved
48 End : 05-04-2016 11:36:09 --- 66 End : 05-04-2016 11:36:09 ---
49
50Depuis wallabag 2.x
51-------------------
52
53Depuis l'instance sur laquelle vous étiez, rendez-vous dans la section `Tous les articles`, puis exportez ces articles au format json.
54
55.. image:: ../../img/user/export_v2.png
56 :alt: Export depuis wallabag v2
57 :align: center
58
59Depuis votre nouvelle instance de wallabag, créez votre compte utilisateur puis cliquez sur le lien dans le menu pour accéder à l'import. Choisissez l'import depuis wallabag v2 puis sélectionnez votre fichier json pour l'uploader.
60
61.. note::
62 S'il vous arrive des problèmes durant l'export ou l'import, n'hésitez pas à `demander de l'aide <https://www.wallabag.org/pages/support.html>`__.
diff --git a/src/Wallabag/ImportBundle/Command/ImportCommand.php b/src/Wallabag/ImportBundle/Command/ImportCommand.php
index dfbfc2f7..f62176fc 100644
--- a/src/Wallabag/ImportBundle/Command/ImportCommand.php
+++ b/src/Wallabag/ImportBundle/Command/ImportCommand.php
@@ -13,10 +13,12 @@ class ImportCommand extends ContainerAwareCommand
13 protected function configure() 13 protected function configure()
14 { 14 {
15 $this 15 $this
16 ->setName('wallabag:import-v1') 16 ->setName('wallabag:import')
17 ->setDescription('Import entries from a JSON export from a wallabag v1 instance') 17 ->setDescription('Import entries from a JSON export from a wallabag v1 instance')
18 ->addArgument('userId', InputArgument::REQUIRED, 'User ID to populate') 18 ->addArgument('userId', InputArgument::REQUIRED, 'User ID to populate')
19 ->addArgument('filepath', InputArgument::REQUIRED, 'Path to the JSON file') 19 ->addArgument('filepath', InputArgument::REQUIRED, 'Path to the JSON file')
20 ->addOption('importer', null, InputArgument::OPTIONAL, 'The importer to use: v1 or v2', 'v1')
21 ->addOption('markAsRead', null, InputArgument::OPTIONAL, 'Mark all entries as read: true/false', false)
20 ; 22 ;
21 } 23 }
22 24
@@ -35,6 +37,15 @@ class ImportCommand extends ContainerAwareCommand
35 } 37 }
36 38
37 $wallabag = $this->getContainer()->get('wallabag_import.wallabag_v1.import'); 39 $wallabag = $this->getContainer()->get('wallabag_import.wallabag_v1.import');
40
41 if ('v2' === $input->getOption('importer')) {
42 $wallabag = $this->getContainer()->get('wallabag_import.wallabag_v2.import');
43 }
44
45 if ('yes' === $input->getOption('markAsRead')) {
46 $wallabag->setMarkAsRead(true);
47 }
48
38 $res = $wallabag 49 $res = $wallabag
39 ->setUser($user) 50 ->setUser($user)
40 ->setFilepath($input->getArgument('filepath')) 51 ->setFilepath($input->getArgument('filepath'))