diff --git a/inc/poche/Poche.class.php b/inc/poche/Poche.class.php index 4832f81..cb33876 100644 --- a/inc/poche/Poche.class.php +++ b/inc/poche/Poche.class.php @@ -364,13 +364,14 @@ class Poche /** * import from Instapaper. poche needs a ./instapaper-export.html file * @todo add the return value + * @param string $targetFile the file used for importing * @return boolean */ - private function importFromInstapaper() + private function importFromInstapaper($targetFile) { # TODO gestion des articles favs $html = new simple_html_dom(); - $html->load_file('./instapaper-export.html'); + $html->load_file($targetFile); Tools::logm('starting import from instapaper'); $read = 0; @@ -403,13 +404,14 @@ class Poche /** * import from Pocket. poche needs a ./ril_export.html file * @todo add the return value + * @param string $targetFile the file used for importing * @return boolean */ - private function importFromPocket() + private function importFromPocket($targetFile) { # TODO gestion des articles favs $html = new simple_html_dom(); - $html->load_file('./ril_export.html'); + $html->load_file($targetFile); Tools::logm('starting import from pocket'); $read = 0; @@ -442,12 +444,13 @@ class Poche /** * import from Readability. poche needs a ./readability file * @todo add the return value + * @param string $targetFile the file used for importing * @return boolean */ - private function importFromReadability() + private function importFromReadability($targetFile) { # TODO gestion des articles lus / favs - $str_data = file_get_contents("./readability"); + $str_data = file_get_contents($targetFile); $data = json_decode($str_data,true); Tools::logm('starting import from Readability'); $count = 0; @@ -499,15 +502,31 @@ class Poche */ public function import($from) { - if ($from == 'pocket') { - return $this->importFromPocket(); + $providers = array( + 'pocket' => 'importFromPocket', + 'readability' => 'importFromReadability', + 'instapaper' => 'importFromInstapaper' + ); + + if (! isset($providers[$from])) { + $this->messages->add('e', _('Unknown import provider.')); + Tools::redirect(); } - else if ($from == 'readability') { - return $this->importFromReadability(); + + $targetDefinition = 'IMPORT_' . strtoupper($from) . '_FILE'; + $targetFile = constant($targetDefinition); + + if (! defined($targetDefinition)) { + $this->messages->add('e', _('Incomplete inc/poche/define.inc.php file, please define "' . $targetDefinition . '".')); + Tools::redirect(); } - else if ($from == 'instapaper') { - return $this->importFromInstapaper(); + + if (! file_exists($targetFile)) { + $this->messages->add('e', _('Could not find required "' . $targetFile . '" import file.')); + Tools::redirect(); } + + $this->$providers[$from]($targetFile); } /** diff --git a/inc/poche/define.inc.php b/inc/poche/define.inc.php index 2154ce8..2d0a39e 100644 --- a/inc/poche/define.inc.php +++ b/inc/poche/define.inc.php @@ -29,4 +29,8 @@ define ('TPL', __DIR__ . '/../../tpl'); define ('LOCALE', __DIR__ . '/../../locale'); define ('CACHE', __DIR__ . '/../../cache'); define ('PAGINATION', '10'); -define ('THEME', 'light'); \ No newline at end of file +define ('THEME', 'light'); + +define ('IMPORT_POCKET_FILE', './ril_export.html'); +define ('IMPORT_READABILITY_FILE', './readability'); +define ('IMPORT_INSTAPAPER_FILE', './instapaper-export.html'); \ No newline at end of file diff --git a/tpl/config.twig b/tpl/config.twig index e856372..89d5bf8 100644 --- a/tpl/config.twig +++ b/tpl/config.twig @@ -50,9 +50,9 @@

{% trans "Please execute the import script locally, it can take a very long time." %}

{% trans "More infos in the official doc:" %} inthepoche.com

{% trans "Export your poche datas" %}