1
0
mirror of https://github.com/moparisthebest/wallabag synced 2025-02-19 20:41:48 -05:00

graceful error-handling with imports, define where import files are stored

This commit is contained in:
EliasZ 2013-08-24 15:59:51 +02:00
parent 38b418b7d6
commit 66b6a3b5e2
2 changed files with 36 additions and 13 deletions

View File

@ -364,13 +364,14 @@ class Poche
/** /**
* import from Instapaper. poche needs a ./instapaper-export.html file * import from Instapaper. poche needs a ./instapaper-export.html file
* @todo add the return value * @todo add the return value
* @param string $targetFile the file used for importing
* @return boolean * @return boolean
*/ */
private function importFromInstapaper() private function importFromInstapaper($targetFile)
{ {
# TODO gestion des articles favs # TODO gestion des articles favs
$html = new simple_html_dom(); $html = new simple_html_dom();
$html->load_file('./instapaper-export.html'); $html->load_file($targetFile);
Tools::logm('starting import from instapaper'); Tools::logm('starting import from instapaper');
$read = 0; $read = 0;
@ -403,13 +404,14 @@ class Poche
/** /**
* import from Pocket. poche needs a ./ril_export.html file * import from Pocket. poche needs a ./ril_export.html file
* @todo add the return value * @todo add the return value
* @param string $targetFile the file used for importing
* @return boolean * @return boolean
*/ */
private function importFromPocket() private function importFromPocket($targetFile)
{ {
# TODO gestion des articles favs # TODO gestion des articles favs
$html = new simple_html_dom(); $html = new simple_html_dom();
$html->load_file('./ril_export.html'); $html->load_file($targetFile);
Tools::logm('starting import from pocket'); Tools::logm('starting import from pocket');
$read = 0; $read = 0;
@ -442,12 +444,13 @@ class Poche
/** /**
* import from Readability. poche needs a ./readability file * import from Readability. poche needs a ./readability file
* @todo add the return value * @todo add the return value
* @param string $targetFile the file used for importing
* @return boolean * @return boolean
*/ */
private function importFromReadability() private function importFromReadability($targetFile)
{ {
# TODO gestion des articles lus / favs # TODO gestion des articles lus / favs
$str_data = file_get_contents("./readability"); $str_data = file_get_contents($targetFile);
$data = json_decode($str_data,true); $data = json_decode($str_data,true);
Tools::logm('starting import from Readability'); Tools::logm('starting import from Readability');
$count = 0; $count = 0;
@ -499,15 +502,31 @@ class Poche
*/ */
public function import($from) public function import($from)
{ {
if ($from == 'pocket') { $providers = array(
return $this->importFromPocket(); '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);
} }
/** /**

View File

@ -29,4 +29,8 @@ define ('TPL', __DIR__ . '/../../tpl');
define ('LOCALE', __DIR__ . '/../../locale'); define ('LOCALE', __DIR__ . '/../../locale');
define ('CACHE', __DIR__ . '/../../cache'); define ('CACHE', __DIR__ . '/../../cache');
define ('PAGINATION', '10'); define ('PAGINATION', '10');
define ('THEME', 'light'); define ('THEME', 'light');
define ('IMPORT_POCKET_FILE', './ril_export.html');
define ('IMPORT_READABILITY_FILE', './readability');
define ('IMPORT_INSTAPAPER_FILE', './instapaper-export.html');