aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--app/Resources/CraueConfigBundle/translations/CraueConfigBundle.da.yml2
-rw-r--r--app/Resources/CraueConfigBundle/translations/CraueConfigBundle.de.yml2
-rw-r--r--app/Resources/CraueConfigBundle/translations/CraueConfigBundle.en.yml2
-rw-r--r--app/Resources/CraueConfigBundle/translations/CraueConfigBundle.es.yml2
-rw-r--r--app/Resources/CraueConfigBundle/translations/CraueConfigBundle.fa.yml2
-rw-r--r--app/Resources/CraueConfigBundle/translations/CraueConfigBundle.fr.yml2
-rw-r--r--app/Resources/CraueConfigBundle/translations/CraueConfigBundle.it.yml2
-rw-r--r--app/Resources/CraueConfigBundle/translations/CraueConfigBundle.oc.yml2
-rw-r--r--app/Resources/CraueConfigBundle/translations/CraueConfigBundle.pl.yml2
-rw-r--r--app/Resources/CraueConfigBundle/translations/CraueConfigBundle.ro.yml2
-rw-r--r--app/Resources/CraueConfigBundle/translations/CraueConfigBundle.tr.yml2
-rw-r--r--app/config/config.yml2
-rw-r--r--docs/de/index.rst1
-rw-r--r--docs/de/user/backup.rst25
-rw-r--r--docs/en/index.rst1
-rw-r--r--docs/en/user/android.rst2
-rw-r--r--docs/en/user/backup.rst25
-rw-r--r--docs/fr/index.rst1
-rw-r--r--docs/fr/user/backup.rst26
-rw-r--r--src/Wallabag/CoreBundle/Command/InstallCommand.php2
-rw-r--r--src/Wallabag/CoreBundle/Controller/EntryController.php9
-rw-r--r--src/Wallabag/CoreBundle/DataFixtures/ORM/LoadSettingData.php2
-rw-r--r--src/Wallabag/CoreBundle/DependencyInjection/Configuration.php2
-rw-r--r--src/Wallabag/CoreBundle/DependencyInjection/WallabagCoreExtension.php1
-rw-r--r--src/Wallabag/CoreBundle/Resources/config/services.yml2
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.da.yml3
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.de.yml3
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.en.yml3
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.es.yml3
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml3
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml5
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.it.yml3
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml3
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml3
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml3
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml3
-rw-r--r--src/Wallabag/CoreBundle/Resources/views/themes/common/Entry/share.html.twig2
-rw-r--r--src/Wallabag/CoreBundle/Twig/WallabagExtension.php5
-rw-r--r--src/Wallabag/ImportBundle/Consumer/AbstractConsumer.php5
-rw-r--r--src/Wallabag/ImportBundle/Import/BrowserImport.php12
-rw-r--r--tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php40
-rw-r--r--tests/Wallabag/ImportBundle/Consumer/RedisEntryConsumerTest.php2
42 files changed, 202 insertions, 22 deletions
diff --git a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.da.yml b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.da.yml
index 85079330..3e11d675 100644
--- a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.da.yml
+++ b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.da.yml
@@ -23,7 +23,7 @@ export: "eksport"
23import: "import" 23import: "import"
24misc: "misc" 24misc: "misc"
25modify_settings: "Gem ændring" 25modify_settings: "Gem ændring"
26piwik_host: Hosting af din side hos Piwik 26piwik_host: Hosting af din side hos Piwik (uden http:// eller https://)
27piwik_site_id: ID for din side hos Piwik 27piwik_site_id: ID for din side hos Piwik
28piwik_enabled: Aktiver Piwik 28piwik_enabled: Aktiver Piwik
29demo_mode_enabled: "Aktiver demo-indstilling? (anvendes kun til wallabags offentlige demo)" 29demo_mode_enabled: "Aktiver demo-indstilling? (anvendes kun til wallabags offentlige demo)"
diff --git a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.de.yml b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.de.yml
index b3412af7..c74b5c1f 100644
--- a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.de.yml
+++ b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.de.yml
@@ -23,7 +23,7 @@ export: "Export"
23import: "Import" 23import: "Import"
24misc: "Verschiedenes" 24misc: "Verschiedenes"
25modify_settings: "Übernehmen" 25modify_settings: "Übernehmen"
26piwik_host: Host deiner Webseite in Piwik 26piwik_host: Host deiner Webseite in Piwik (ohne http:// oder https://)
27piwik_site_id: ID deiner Webseite in Piwik 27piwik_site_id: ID deiner Webseite in Piwik
28piwik_enabled: Piwik aktivieren 28piwik_enabled: Piwik aktivieren
29demo_mode_enabled: "Test-Modus aktivieren? (nur für die öffentliche wallabag-Demo genutzt)" 29demo_mode_enabled: "Test-Modus aktivieren? (nur für die öffentliche wallabag-Demo genutzt)"
diff --git a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.en.yml b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.en.yml
index 8aaa27e7..77c09db4 100644
--- a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.en.yml
+++ b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.en.yml
@@ -23,7 +23,7 @@ export: "export"
23import: "import" 23import: "import"
24misc: "misc" 24misc: "misc"
25modify_settings: "apply" 25modify_settings: "apply"
26piwik_host: Host of your website in Piwik 26piwik_host: Host of your website in Piwik (without http:// ou https://)
27piwik_site_id: ID of your website in Piwik 27piwik_site_id: ID of your website in Piwik
28piwik_enabled: Enable Piwik 28piwik_enabled: Enable Piwik
29demo_mode_enabled: "Enable demo mode ? (only used for the wallabag public demo)" 29demo_mode_enabled: "Enable demo mode ? (only used for the wallabag public demo)"
diff --git a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.es.yml b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.es.yml
index bf3a79af..baa83849 100644
--- a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.es.yml
+++ b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.es.yml
@@ -23,7 +23,7 @@ export: "exportar"
23import: "importar" 23import: "importar"
24misc: "misc" 24misc: "misc"
25modify_settings: "modificar configuración" 25modify_settings: "modificar configuración"
26piwik_host: Host de tu website de Piwik 26piwik_host: Host de tu website de Piwik (sin http:// o https://)
27piwik_site_id: ID de tu website de Piwik 27piwik_site_id: ID de tu website de Piwik
28piwik_enabled: Activar Piwik 28piwik_enabled: Activar Piwik
29demo_mode_enabled: "Activar modo demo (sólo usado para la demo de wallabag)" 29demo_mode_enabled: "Activar modo demo (sólo usado para la demo de wallabag)"
diff --git a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.fa.yml b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.fa.yml
index d86c4343..b394977e 100644
--- a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.fa.yml
+++ b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.fa.yml
@@ -23,7 +23,7 @@ export: "برون‌سپاری"
23import: "درون‌ریزی" 23import: "درون‌ریزی"
24misc: "غیره" 24misc: "غیره"
25modify_settings: "اعمال" 25modify_settings: "اعمال"
26# piwik_host: Host of your website in Piwik 26# piwik_host: Host of your website in Piwik (without http:// or https://)
27# piwik_site_id: ID of your website in Piwik 27# piwik_site_id: ID of your website in Piwik
28# piwik_enabled: Enable Piwik 28# piwik_enabled: Enable Piwik
29# demo_mode_enabled: "Enable demo mode ? (only used for the wallabag public demo)" 29# demo_mode_enabled: "Enable demo mode ? (only used for the wallabag public demo)"
diff --git a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.fr.yml b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.fr.yml
index 5e1ecf26..31a80880 100644
--- a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.fr.yml
+++ b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.fr.yml
@@ -23,7 +23,7 @@ export: "export"
23import: "import" 23import: "import"
24misc: "divers" 24misc: "divers"
25modify_settings: "appliquer" 25modify_settings: "appliquer"
26piwik_host: URL de votre site dans Piwik 26piwik_host: URL de votre site dans Piwik (sans http:// ou https://)
27piwik_site_id: ID de votre site dans Piwik 27piwik_site_id: ID de votre site dans Piwik
28piwik_enabled: Activer Piwik 28piwik_enabled: Activer Piwik
29demo_mode_enabled: "Activer le mode démo ? (utiliser uniquement pour la démo publique de wallabag)" 29demo_mode_enabled: "Activer le mode démo ? (utiliser uniquement pour la démo publique de wallabag)"
diff --git a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.it.yml b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.it.yml
index 9d820e4b..ba038556 100644
--- a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.it.yml
+++ b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.it.yml
@@ -23,7 +23,7 @@ export: "esporta"
23import: "importa" 23import: "importa"
24misc: "misc" 24misc: "misc"
25modify_settings: "applica" 25modify_settings: "applica"
26piwik_host: Host del tuo sito in Piwik 26piwik_host: Host del tuo sito in Piwik (senza http:// o https://)
27piwik_site_id: ID del tuo sito in Piwik 27piwik_site_id: ID del tuo sito in Piwik
28piwik_enabled: Abilita Piwik 28piwik_enabled: Abilita Piwik
29demo_mode_enabled: "Abilita modalità demo ? (usato solo per la demo pubblica di wallabag)" 29demo_mode_enabled: "Abilita modalità demo ? (usato solo per la demo pubblica di wallabag)"
diff --git a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.oc.yml b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.oc.yml
index 49dc7732..55249e33 100644
--- a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.oc.yml
+++ b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.oc.yml
@@ -23,7 +23,7 @@ export: "expòrt"
23import: "impòrt" 23import: "impòrt"
24misc: "divèrs" 24misc: "divèrs"
25modify_settings: "aplicar" 25modify_settings: "aplicar"
26piwik_host: URL de vòstre site dins Piwik 26piwik_host: URL de vòstre site dins Piwik (sense http:// o https://)
27piwik_site_id: ID de vòstre site dins Piwik 27piwik_site_id: ID de vòstre site dins Piwik
28piwik_enabled: Activar Piwik 28piwik_enabled: Activar Piwik
29demo_mode_enabled: "Activar lo mode demostracion ? (utilizar solament per la demostracion publica de wallabag)" 29demo_mode_enabled: "Activar lo mode demostracion ? (utilizar solament per la demostracion publica de wallabag)"
diff --git a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.pl.yml b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.pl.yml
index 7432b0a7..42cc5b52 100644
--- a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.pl.yml
+++ b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.pl.yml
@@ -23,7 +23,7 @@ export: "eksport"
23import: "import" 23import: "import"
24misc: "różne" 24misc: "różne"
25modify_settings: "zatwierdz" 25modify_settings: "zatwierdz"
26piwik_host: Host twojej strony Piwik 26piwik_host: Host twojej strony Piwik (bez http:// lub https://)
27piwik_site_id: ID twojej strony Piwik 27piwik_site_id: ID twojej strony Piwik
28piwik_enabled: Włacz Piwik 28piwik_enabled: Włacz Piwik
29demo_mode_enabled: "Włacz tryb demo? (używany wyłącznie dla publicznej demonstracji Wallabag)" 29demo_mode_enabled: "Włacz tryb demo? (używany wyłącznie dla publicznej demonstracji Wallabag)"
diff --git a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.ro.yml b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.ro.yml
index 20d664f7..8e72b955 100644
--- a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.ro.yml
+++ b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.ro.yml
@@ -23,7 +23,7 @@ export: "exportă"
23import: "importă" 23import: "importă"
24misc: "diverse" 24misc: "diverse"
25modify_settings: "aplică" 25modify_settings: "aplică"
26# piwik_host: Host of your website in Piwik 26# piwik_host: Host of your website in Piwik (without http:// or https://)
27# piwik_site_id: ID of your website in Piwik 27# piwik_site_id: ID of your website in Piwik
28# piwik_enabled: Enable Piwik 28# piwik_enabled: Enable Piwik
29# demo_mode_enabled: "Enable demo mode ? (only used for the wallabag public demo)" 29# demo_mode_enabled: "Enable demo mode ? (only used for the wallabag public demo)"
diff --git a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.tr.yml b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.tr.yml
index 4b4d3edb..55f70843 100644
--- a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.tr.yml
+++ b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.tr.yml
@@ -23,7 +23,7 @@
23# import: "import" 23# import: "import"
24# misc: "misc" 24# misc: "misc"
25# modify_settings: "apply" 25# modify_settings: "apply"
26# piwik_host: Host of your website in Piwik 26# piwik_host: Host of your website in Piwik (without http:// or https://)
27# piwik_site_id: ID of your website in Piwik 27# piwik_site_id: ID of your website in Piwik
28# piwik_enabled: Enable Piwik 28# piwik_enabled: Enable Piwik
29# demo_mode_enabled: "Enable demo mode ? (only used for the wallabag public demo)" 29# demo_mode_enabled: "Enable demo mode ? (only used for the wallabag public demo)"
diff --git a/app/config/config.yml b/app/config/config.yml
index 0b4494d3..81d1728a 100644
--- a/app/config/config.yml
+++ b/app/config/config.yml
@@ -51,6 +51,8 @@ wallabag_core:
51 rss_limit: 50 51 rss_limit: 50
52 reading_speed: 1 52 reading_speed: 1
53 cache_lifetime: 10 53 cache_lifetime: 10
54 fetching_error_message: |
55 wallabag can't retrieve contents for this article. Please <a href="http://doc.wallabag.org/en/master/user/errors_during_fetching.html#how-can-i-help-to-fix-that">troubleshoot this issue</a>.
54 56
55wallabag_user: 57wallabag_user:
56 registration_enabled: "%fosuser_registration%" 58 registration_enabled: "%fosuser_registration%"
diff --git a/docs/de/index.rst b/docs/de/index.rst
index a380d7bd..b422bf83 100644
--- a/docs/de/index.rst
+++ b/docs/de/index.rst
@@ -45,6 +45,7 @@ Die Dokumentation ist in anderen Sprachen verfügbar :
45 user/tags 45 user/tags
46 user/android 46 user/android
47 user/parameters 47 user/parameters
48 user/backup
48 49
49.. _dev-docs: 50.. _dev-docs:
50 51
diff --git a/docs/de/user/backup.rst b/docs/de/user/backup.rst
new file mode 100644
index 00000000..ffe3ce37
--- /dev/null
+++ b/docs/de/user/backup.rst
@@ -0,0 +1,25 @@
1wallabag sichern
2================
3Da es manchmal vorkommen kann, dass dir ein Fehler mit deiner wallabag unterläuft und du Daten verlierst oder deine wallabag auf einen anderen Server verschieben willst, ist eine Sicherung der Daten sicher ratsam.
4Dieser Artikel beschreibt, was du für die Sicherung benötigst.
5
6Grundlegende Einstellungen
7--------------------------
8wallabag speichert grundlegende Parameter (etwa der SMTP-Server oder das Datenbank-Backend) in der Datei `app/config/parameters.yml`.
9
10Datenbank
11---------
12Da wallabag verschiedene Datenbank-Typen unterstützt, hängt der Weg der Sicherung von dem verwendeten Typ ab. Daher verweisen wir an dieser Stelle auf die entsprechenden Dokumentationen:
13
14Hier sind einige Beispiele:
15
16- MySQL: http://dev.mysql.com/doc/refman/5.7/en/backup-methods.html
17- PostgreSQL: https://www.postgresql.org/docs/current/static/backup.html
18
19SQLite
20~~~~~~
21Um die SQLite-Datenbank zu sichern, ist es lediglich notwendig, das Verzeichnis `data/db` aus dem wallabag-Installations-Ordner zu kopieren.
22
23Bilder
24------
25Die Bilder, die von wallabag empfangen worden, sind unter `data/assets/images` gespeichert (der Bilder-Speicher wird in wallabag 2.2 implementiert).
diff --git a/docs/en/index.rst b/docs/en/index.rst
index 6d85db2b..0ead261b 100644
--- a/docs/en/index.rst
+++ b/docs/en/index.rst
@@ -46,6 +46,7 @@ The documentation is available in other languages:
46 user/tags 46 user/tags
47 user/android 47 user/android
48 user/parameters 48 user/parameters
49 user/backup
49 50
50.. _dev-docs: 51.. _dev-docs:
51 52
diff --git a/docs/en/user/android.rst b/docs/en/user/android.rst
index ccbad264..91dcb2fc 100644
--- a/docs/en/user/android.rst
+++ b/docs/en/user/android.rst
@@ -79,7 +79,7 @@ Known limitations
792FA 792FA
80~~~ 80~~~
81 81
82Currently the does not support two-factor authentication. You should disable that to get the app working. 82Currently the Android application does not support two-factor authentication. You should disable that to get the application working.
83 83
84 84
85Limited amount of articles with wallabag v2 85Limited amount of articles with wallabag v2
diff --git a/docs/en/user/backup.rst b/docs/en/user/backup.rst
new file mode 100644
index 00000000..51721000
--- /dev/null
+++ b/docs/en/user/backup.rst
@@ -0,0 +1,25 @@
1Backup wallabag
2===============
3Because sometimes you may do a mistake with your wallabag and lose data or in case you need to move your wallabag to another server you want to backup your data.
4This articles describes what you need to backup.
5
6Basic settings
7--------------
8wallabag stores some basic parameters (like SMTP server or database backend) in the file `app/config/parameters.yml`.
9
10Database
11--------
12As wallabag supports different kinds of database, the way to perform the backup depends on the database you use, so you need to refer to the vendor documentation.
13
14Here's some examples:
15
16- MySQL: http://dev.mysql.com/doc/refman/5.7/en/backup-methods.html
17- PostgreSQL: https://www.postgresql.org/docs/current/static/backup.html
18
19SQLite
20~~~~~~
21To backup the SQLite database, you just need to copy the directory `data/db` from the wallabag application directory.
22
23Images
24------
25The images retrieved by wallabag are stored under `data/assets/images` (the images storage will be implemented in wallabag 2.2).
diff --git a/docs/fr/index.rst b/docs/fr/index.rst
index 2a265ff3..dbb85910 100644
--- a/docs/fr/index.rst
+++ b/docs/fr/index.rst
@@ -46,6 +46,7 @@ La documentation est disponible dans d'autres langues :
46 user/filters 46 user/filters
47 user/tags 47 user/tags
48 user/parameters 48 user/parameters
49 user/backup
49 50
50.. _dev-docs: 51.. _dev-docs:
51 52
diff --git a/docs/fr/user/backup.rst b/docs/fr/user/backup.rst
new file mode 100644
index 00000000..ec4b1f4d
--- /dev/null
+++ b/docs/fr/user/backup.rst
@@ -0,0 +1,26 @@
1Sauvegarde de wallabag
2======================
3
4Parce que des fois vous faites des erreurs avec votre installation de wallabag et vous perdez des données ou parce que vous souhaitez migrer votre installation sur un autre serveur, vous souhaitez faire une sauvegarde de vos données.
5Cette documentation décrit ce que vous devez sauvegarder.
6
7Configuration
8-------------
9wallabag stocke quelques paramètres (comme la configuration SMTP ou les infos de bases de données) dans le fichier `app/config/parameters.yml`.
10
11Base de données
12---------------
13Comme wallabag supporte différentes sortes de bases de données, la manière de sauvegarder dépend du type de base de données que vous utilisez, donc vous devez vous en référez à la documentation correspondante.
14
15Quelques exemples :
16
17- MySQL: http://dev.mysql.com/doc/refman/5.7/en/backup-methods.html
18- PostgreSQL: https://www.postgresql.org/docs/current/static/backup.html
19
20SQLite
21~~~~~~
22Pour sauvegarder une base SQLite, vous devez juste copier le répertoire `data/db` de votre installation wallabag.
23
24Images
25------
26Les images sauvegardées par wallabag sont stockées dans `data/assets/images` (le stockage des images sera implémenté dans wallabag 2.2).
diff --git a/src/Wallabag/CoreBundle/Command/InstallCommand.php b/src/Wallabag/CoreBundle/Command/InstallCommand.php
index 8e438229..857a8b4c 100644
--- a/src/Wallabag/CoreBundle/Command/InstallCommand.php
+++ b/src/Wallabag/CoreBundle/Command/InstallCommand.php
@@ -364,7 +364,7 @@ class InstallCommand extends ContainerAwareCommand
364 ], 364 ],
365 [ 365 [
366 'name' => 'piwik_host', 366 'name' => 'piwik_host',
367 'value' => 'http://v2.wallabag.org', 367 'value' => 'v2.wallabag.org',
368 'section' => 'analytics', 368 'section' => 'analytics',
369 ], 369 ],
370 [ 370 [
diff --git a/src/Wallabag/CoreBundle/Controller/EntryController.php b/src/Wallabag/CoreBundle/Controller/EntryController.php
index 3b28e635..97bb3d12 100644
--- a/src/Wallabag/CoreBundle/Controller/EntryController.php
+++ b/src/Wallabag/CoreBundle/Controller/EntryController.php
@@ -330,6 +330,15 @@ class EntryController extends Controller
330 330
331 $this->updateEntry($entry, 'entry_reloaded'); 331 $this->updateEntry($entry, 'entry_reloaded');
332 332
333 // if refreshing entry failed, don't save it
334 if ($this->getParameter('wallabag_core.fetching_error_message') === $entry->getContent()) {
335 $bag = $this->get('session')->getFlashBag();
336 $bag->clear();
337 $bag->add('notice', 'flashes.entry.notice.entry_reloaded_failed');
338
339 return $this->redirect($this->generateUrl('view', ['id' => $entry->getId()]));
340 }
341
333 $em = $this->getDoctrine()->getManager(); 342 $em = $this->getDoctrine()->getManager();
334 $em->persist($entry); 343 $em->persist($entry);
335 $em->flush(); 344 $em->flush();
diff --git a/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadSettingData.php b/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadSettingData.php
index 9425f961..a5e1be65 100644
--- a/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadSettingData.php
+++ b/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadSettingData.php
@@ -122,7 +122,7 @@ class LoadSettingData extends AbstractFixture implements OrderedFixtureInterface
122 ], 122 ],
123 [ 123 [
124 'name' => 'piwik_host', 124 'name' => 'piwik_host',
125 'value' => 'http://v2.wallabag.org', 125 'value' => 'v2.wallabag.org',
126 'section' => 'analytics', 126 'section' => 'analytics',
127 ], 127 ],
128 [ 128 [
diff --git a/src/Wallabag/CoreBundle/DependencyInjection/Configuration.php b/src/Wallabag/CoreBundle/DependencyInjection/Configuration.php
index d8141eea..3a3da024 100644
--- a/src/Wallabag/CoreBundle/DependencyInjection/Configuration.php
+++ b/src/Wallabag/CoreBundle/DependencyInjection/Configuration.php
@@ -39,6 +39,8 @@ class Configuration implements ConfigurationInterface
39 ->integerNode('cache_lifetime') 39 ->integerNode('cache_lifetime')
40 ->defaultValue(10) 40 ->defaultValue(10)
41 ->end() 41 ->end()
42 ->scalarNode('fetching_error_message')
43 ->end()
42 ->end() 44 ->end()
43 ; 45 ;
44 46
diff --git a/src/Wallabag/CoreBundle/DependencyInjection/WallabagCoreExtension.php b/src/Wallabag/CoreBundle/DependencyInjection/WallabagCoreExtension.php
index 0cbde908..b4992d54 100644
--- a/src/Wallabag/CoreBundle/DependencyInjection/WallabagCoreExtension.php
+++ b/src/Wallabag/CoreBundle/DependencyInjection/WallabagCoreExtension.php
@@ -23,6 +23,7 @@ class WallabagCoreExtension extends Extension
23 $container->setParameter('wallabag_core.version', $config['version']); 23 $container->setParameter('wallabag_core.version', $config['version']);
24 $container->setParameter('wallabag_core.paypal_url', $config['paypal_url']); 24 $container->setParameter('wallabag_core.paypal_url', $config['paypal_url']);
25 $container->setParameter('wallabag_core.cache_lifetime', $config['cache_lifetime']); 25 $container->setParameter('wallabag_core.cache_lifetime', $config['cache_lifetime']);
26 $container->setParameter('wallabag_core.fetching_error_message', $config['fetching_error_message']);
26 27
27 $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); 28 $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
28 $loader->load('services.yml'); 29 $loader->load('services.yml');
diff --git a/src/Wallabag/CoreBundle/Resources/config/services.yml b/src/Wallabag/CoreBundle/Resources/config/services.yml
index a4b727f4..614488a6 100644
--- a/src/Wallabag/CoreBundle/Resources/config/services.yml
+++ b/src/Wallabag/CoreBundle/Resources/config/services.yml
@@ -40,7 +40,7 @@ services:
40 class: Graby\Graby 40 class: Graby\Graby
41 arguments: 41 arguments:
42 - 42 -
43 error_message: "wallabag can't retrieve contents for this article. Please report this issue to us." 43 error_message: '%wallabag_core.fetching_error_message%'
44 http_client: 44 http_client:
45 user_agents: 45 user_agents:
46 'lifehacker.com': 'PHP/5.2' 46 'lifehacker.com': 'PHP/5.2'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml
index bb23b5fe..714ced14 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml
@@ -445,6 +445,9 @@ user:
445 # delete_confirm: Are you sure? 445 # delete_confirm: Are you sure?
446 # back_to_list: Back to list 446 # back_to_list: Back to list
447 447
448error:
449 # page_title: An error occurred
450
448flashes: 451flashes:
449 config: 452 config:
450 notice: 453 notice:
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml
index d1df8669..57e49f84 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml
@@ -445,6 +445,9 @@ user:
445 delete_confirm: Bist du sicher? 445 delete_confirm: Bist du sicher?
446 back_to_list: Zurück zur Liste 446 back_to_list: Zurück zur Liste
447 447
448error:
449 # page_title: An error occurred
450
448flashes: 451flashes:
449 config: 452 config:
450 notice: 453 notice:
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml
index 4a8934b8..4a59c75e 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml
@@ -445,6 +445,9 @@ user:
445 delete_confirm: Are you sure? 445 delete_confirm: Are you sure?
446 back_to_list: Back to list 446 back_to_list: Back to list
447 447
448error:
449 page_title: An error occurred
450
448flashes: 451flashes:
449 config: 452 config:
450 notice: 453 notice:
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml
index 29f0676e..1b1e0cb1 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml
@@ -445,6 +445,9 @@ user:
445 # delete_confirm: Are you sure? 445 # delete_confirm: Are you sure?
446 # back_to_list: Back to list 446 # back_to_list: Back to list
447 447
448error:
449 # page_title: An error occurred
450
448flashes: 451flashes:
449 config: 452 config:
450 notice: 453 notice:
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml
index 074ab7a8..41dc8acf 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml
@@ -444,6 +444,9 @@ user:
444 # delete_confirm: Are you sure? 444 # delete_confirm: Are you sure?
445 # back_to_list: Back to list 445 # back_to_list: Back to list
446 446
447error:
448 # page_title: An error occurred
449
447flashes: 450flashes:
448 config: 451 config:
449 notice: 452 notice:
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml
index 55453b6c..7fb9681d 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml
@@ -365,7 +365,7 @@ import:
365 how_to: "Choisissez le fichier de sauvegarde de vos marques-page et cliquez sur le bouton pour l'importer. Soyez avertis que le processus peut prendre un temps assez long car tous les articles doivent être récupérés en ligne." 365 how_to: "Choisissez le fichier de sauvegarde de vos marques-page et cliquez sur le bouton pour l'importer. Soyez avertis que le processus peut prendre un temps assez long car tous les articles doivent être récupérés en ligne."
366 instapaper: 366 instapaper:
367 page_title: 'Import > Instapaper' 367 page_title: 'Import > Instapaper'
368 description: 'Sur la page des paramètres (`https://www.instapaper.com/user<https://www.instapaper.com/user>`_), cliquez sur "Download .CSV file" dans la section "Export". Un fichier CSV se téléchargera ("instapaper-export.csv").' 368 description: 'Sur la page des paramètres (https://www.instapaper.com/user), cliquez sur "Download .CSV file" dans la section "Export". Un fichier CSV se téléchargera ("instapaper-export.csv").'
369 how_to: "Choisissez le fichier de votre export Instapaper et cliquez sur le bouton ci-dessous pour l'importer." 369 how_to: "Choisissez le fichier de votre export Instapaper et cliquez sur le bouton ci-dessous pour l'importer."
370 370
371developer: 371developer:
@@ -445,6 +445,9 @@ user:
445 delete_confirm: Êtes-vous sûr? 445 delete_confirm: Êtes-vous sûr?
446 back_to_list: Revenir à la liste 446 back_to_list: Revenir à la liste
447 447
448error:
449 page_title: Une erreur est survenue
450
448flashes: 451flashes:
449 config: 452 config:
450 notice: 453 notice:
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml
index 67205c6d..b279ae40 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml
@@ -445,6 +445,9 @@ user:
445 # delete_confirm: Are you sure? 445 # delete_confirm: Are you sure?
446 # back_to_list: Back to list 446 # back_to_list: Back to list
447 447
448error:
449 # page_title: An error occurred
450
448flashes: 451flashes:
449 config: 452 config:
450 notice: 453 notice:
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml
index 25e5f05a..a4659620 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml
@@ -445,6 +445,9 @@ user:
445 # delete_confirm: Are you sure? 445 # delete_confirm: Are you sure?
446 # back_to_list: Back to list 446 # back_to_list: Back to list
447 447
448error:
449 # page_title: An error occurred
450
448flashes: 451flashes:
449 config: 452 config:
450 notice: 453 notice:
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
index 392f9c19..798b39c2 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
@@ -445,6 +445,9 @@ user:
445 delete_confirm: Jesteś pewien? 445 delete_confirm: Jesteś pewien?
446 back_to_list: Powrót do listy 446 back_to_list: Powrót do listy
447 447
448error:
449 # page_title: An error occurred
450
448flashes: 451flashes:
449 config: 452 config:
450 notice: 453 notice:
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml
index 152d5020..21f27e08 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml
@@ -445,6 +445,9 @@ user:
445 # delete_confirm: Are you sure? 445 # delete_confirm: Are you sure?
446 # back_to_list: Back to list 446 # back_to_list: Back to list
447 447
448error:
449 # page_title: An error occurred
450
448flashes: 451flashes:
449 config: 452 config:
450 notice: 453 notice:
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml
index a2eca59b..f137ec99 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml
@@ -444,6 +444,9 @@ user:
444 # delete_confirm: Are you sure? 444 # delete_confirm: Are you sure?
445 # back_to_list: Back to list 445 # back_to_list: Back to list
446 446
447error:
448 # page_title: An error occurred
449
447flashes: 450flashes:
448 config: 451 config:
449 notice: 452 notice:
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/common/Entry/share.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/common/Entry/share.html.twig
index 804adb36..f77264c6 100644
--- a/src/Wallabag/CoreBundle/Resources/views/themes/common/Entry/share.html.twig
+++ b/src/Wallabag/CoreBundle/Resources/views/themes/common/Entry/share.html.twig
@@ -39,7 +39,7 @@
39 <meta name="twitter:image" content="{{ picturePath }}" /> 39 <meta name="twitter:image" content="{{ picturePath }}" />
40 <meta name="twitter:site" content="@wallabagapp" /> 40 <meta name="twitter:site" content="@wallabagapp" />
41 <meta name="twitter:title" content="{{ entry.title | raw }}" /> 41 <meta name="twitter:title" content="{{ entry.title | raw }}" />
42 <meta name="twitter:description" content="{{ entry.title | raw }}" /> 42 <meta name="twitter:description" content="{{ entry.content|striptags|slice(0, 300)|raw }}&hellip;" />
43 </head> 43 </head>
44 <body> 44 <body>
45 <header> 45 <header>
diff --git a/src/Wallabag/CoreBundle/Twig/WallabagExtension.php b/src/Wallabag/CoreBundle/Twig/WallabagExtension.php
index 783cde3e..a305c53f 100644
--- a/src/Wallabag/CoreBundle/Twig/WallabagExtension.php
+++ b/src/Wallabag/CoreBundle/Twig/WallabagExtension.php
@@ -138,8 +138,11 @@ class WallabagExtension extends \Twig_Extension implements \Twig_Extension_Globa
138 $interval = $user->getCreatedAt()->diff(new \DateTime('now')); 138 $interval = $user->getCreatedAt()->diff(new \DateTime('now'));
139 $nbDays = (int) $interval->format('%a') ?: 1; 139 $nbDays = (int) $interval->format('%a') ?: 1;
140 140
141 // force setlocale for date translation
142 setlocale(LC_TIME, strtolower($user->getConfig()->getLanguage()).'_'.strtoupper(strtolower($user->getConfig()->getLanguage())));
143
141 return $this->translator->trans('footer.stats', [ 144 return $this->translator->trans('footer.stats', [
142 '%user_creation%' => $user->getCreatedAt()->format('F jS, Y'), 145 '%user_creation%' => strftime('%e %B %Y', $user->getCreatedAt()->getTimestamp()),
143 '%nb_archives%' => $nbArchives, 146 '%nb_archives%' => $nbArchives,
144 '%per_day%' => round($nbArchives / $nbDays, 2), 147 '%per_day%' => round($nbArchives / $nbDays, 2),
145 ]); 148 ]);
diff --git a/src/Wallabag/ImportBundle/Consumer/AbstractConsumer.php b/src/Wallabag/ImportBundle/Consumer/AbstractConsumer.php
index 2b85ad76..b893ea29 100644
--- a/src/Wallabag/ImportBundle/Consumer/AbstractConsumer.php
+++ b/src/Wallabag/ImportBundle/Consumer/AbstractConsumer.php
@@ -50,9 +50,10 @@ abstract class AbstractConsumer
50 $entry = $this->import->parseEntry($storedEntry); 50 $entry = $this->import->parseEntry($storedEntry);
51 51
52 if (null === $entry) { 52 if (null === $entry) {
53 $this->logger->warning('Unable to parse entry', ['entry' => $storedEntry]); 53 $this->logger->warning('Entry already exists', ['entry' => $storedEntry]);
54 54
55 return false; 55 // return true to skip message
56 return true;
56 } 57 }
57 58
58 try { 59 try {
diff --git a/src/Wallabag/ImportBundle/Import/BrowserImport.php b/src/Wallabag/ImportBundle/Import/BrowserImport.php
index 9d75685b..2ca1683b 100644
--- a/src/Wallabag/ImportBundle/Import/BrowserImport.php
+++ b/src/Wallabag/ImportBundle/Import/BrowserImport.php
@@ -139,12 +139,24 @@ abstract class BrowserImport extends AbstractImport
139 public function parseEntry(array $importedEntry) 139 public function parseEntry(array $importedEntry)
140 { 140 {
141 if ((!array_key_exists('guid', $importedEntry) || (!array_key_exists('id', $importedEntry))) && is_array(reset($importedEntry))) { 141 if ((!array_key_exists('guid', $importedEntry) || (!array_key_exists('id', $importedEntry))) && is_array(reset($importedEntry))) {
142 if ($this->producer) {
143 $this->parseEntriesForProducer($importedEntry);
144
145 return;
146 }
147
142 $this->parseEntries($importedEntry); 148 $this->parseEntries($importedEntry);
143 149
144 return; 150 return;
145 } 151 }
146 152
147 if (array_key_exists('children', $importedEntry)) { 153 if (array_key_exists('children', $importedEntry)) {
154 if ($this->producer) {
155 $this->parseEntriesForProducer($importedEntry['children']);
156
157 return;
158 }
159
148 $this->parseEntries($importedEntry['children']); 160 $this->parseEntries($importedEntry['children']);
149 161
150 return; 162 return;
diff --git a/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php b/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php
index 9b03a519..05113650 100644
--- a/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php
+++ b/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php
@@ -359,11 +359,49 @@ class EntryControllerTest extends WallabagCoreTestCase
359 359
360 $content = $em 360 $content = $em
361 ->getRepository('WallabagCoreBundle:Entry') 361 ->getRepository('WallabagCoreBundle:Entry')
362 ->findByUrlAndUserId($this->url, $this->getLoggedInUserId()); 362 ->find($content->getId());
363 363
364 $this->assertNotEmpty($content->getContent()); 364 $this->assertNotEmpty($content->getContent());
365 } 365 }
366 366
367 /**
368 * @depends testPostNewOk
369 */
370 public function testReloadWithFetchingFailed()
371 {
372 $this->logInAs('admin');
373 $client = $this->getClient();
374
375 $em = $client->getContainer()
376 ->get('doctrine.orm.entity_manager');
377
378 $content = $em
379 ->getRepository('WallabagCoreBundle:Entry')
380 ->findByUrlAndUserId($this->url, $this->getLoggedInUserId());
381
382 // put a known failed url
383 $content->setUrl('http://0.0.0.0/failed.html');
384 $em->persist($content);
385 $em->flush();
386
387 $client->request('GET', '/reload/'.$content->getId());
388
389 $this->assertEquals(302, $client->getResponse()->getStatusCode());
390
391 // force EntityManager to clear previous entity
392 // otherwise, retrieve the same entity will retrieve change from the previous request :0
393 $em->clear();
394 $newContent = $em
395 ->getRepository('WallabagCoreBundle:Entry')
396 ->find($content->getId());
397
398 $newContent->setUrl($this->url);
399 $em->persist($newContent);
400 $em->flush();
401
402 $this->assertNotEquals($client->getContainer()->getParameter('wallabag_core.fetching_error_message'), $newContent->getContent());
403 }
404
367 public function testEdit() 405 public function testEdit()
368 { 406 {
369 $this->logInAs('admin'); 407 $this->logInAs('admin');
diff --git a/tests/Wallabag/ImportBundle/Consumer/RedisEntryConsumerTest.php b/tests/Wallabag/ImportBundle/Consumer/RedisEntryConsumerTest.php
index 5e8ee41d..01a92ad2 100644
--- a/tests/Wallabag/ImportBundle/Consumer/RedisEntryConsumerTest.php
+++ b/tests/Wallabag/ImportBundle/Consumer/RedisEntryConsumerTest.php
@@ -219,7 +219,7 @@ JSON;
219 219
220 $res = $consumer->manage($body); 220 $res = $consumer->manage($body);
221 221
222 $this->assertFalse($res); 222 $this->assertTrue($res);
223 $this->assertFalse($consumer->isStopJob($body)); 223 $this->assertFalse($consumer->isStopJob($body));
224 } 224 }
225} 225}