forked from wallabag/wallabag
Add disableContentUpdate import option
This commit also decouples the "import" and "update" functions inside ContentProxy. If a content array is available, it must be passed to the new importEntry method.
This commit is contained in:
committed by
Jeremy Benoist
parent
1c5da417e4
commit
d0e9b3d640
@ -5,6 +5,7 @@ namespace Wallabag\ImportBundle\Command;
|
||||
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
|
||||
use Symfony\Component\Config\Definition\Exception\Exception;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
|
||||
@ -19,7 +20,7 @@ class ImportCommand extends ContainerAwareCommand
|
||||
->addArgument('filepath', InputArgument::REQUIRED, 'Path to the JSON file')
|
||||
->addOption('importer', null, InputArgument::OPTIONAL, 'The importer to use: v1, v2, instapaper, pinboard, readability, firefox or chrome', 'v1')
|
||||
->addOption('markAsRead', null, InputArgument::OPTIONAL, 'Mark all entries as read', false)
|
||||
->addOption('useUserId', null, InputArgument::OPTIONAL, 'Use user id instead of username to find account', false)
|
||||
->addOption('disableContentUpdate', null, InputOption::VALUE_NONE, 'Disable fetching updated content from URL')
|
||||
;
|
||||
}
|
||||
|
||||
@ -69,6 +70,7 @@ class ImportCommand extends ContainerAwareCommand
|
||||
}
|
||||
|
||||
$import->setMarkAsRead($input->getOption('markAsRead'));
|
||||
$import->setDisableContentUpdate($input->getOption('disableContentUpdate'));
|
||||
$import->setUser($user);
|
||||
|
||||
$res = $import
|
||||
|
||||
@ -24,6 +24,7 @@ abstract class AbstractImport implements ImportInterface
|
||||
protected $producer;
|
||||
protected $user;
|
||||
protected $markAsRead;
|
||||
protected $disableContentUpdate;
|
||||
protected $skippedEntries = 0;
|
||||
protected $importedEntries = 0;
|
||||
protected $queuedEntries = 0;
|
||||
@ -84,6 +85,27 @@ abstract class AbstractImport implements ImportInterface
|
||||
return $this->markAsRead;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether articles should be fetched for updated content.
|
||||
*
|
||||
* @param bool $markAsRead
|
||||
*/
|
||||
public function setDisableContentUpdate($disableContentUpdate)
|
||||
{
|
||||
$this->disableContentUpdate = $disableContentUpdate;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get whether articles should be fetched for updated content.
|
||||
*/
|
||||
public function getDisableContentUpdate()
|
||||
{
|
||||
return $this->disableContentUpdate;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Fetch content from the ContentProxy (using graby).
|
||||
* If it fails return the given entry to be saved in all case (to avoid user to loose the content).
|
||||
@ -95,9 +117,12 @@ abstract class AbstractImport implements ImportInterface
|
||||
protected function fetchContent(Entry $entry, $url, array $content = [])
|
||||
{
|
||||
try {
|
||||
$this->contentProxy->updateEntry($entry, $url, $content);
|
||||
$this->contentProxy->importEntry($entry, $content, $this->disableContentUpdate);
|
||||
} catch (\Exception $e) {
|
||||
return $entry;
|
||||
$this->logger->error('Error trying to import an entry.', [
|
||||
'entry_url' => $content['url'],
|
||||
'error_msg' => $e->getMessage(),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user