mirror of
https://github.com/wallabag/wallabag.git
synced 2025-07-12 16:58:37 +00:00
Rewrote Pocket Import
For the moment, we won't do a queue system, just a plain synchronous import. We also use ContentProxy to grab content for each article from Pocket. Error from Pocket are now logged using the logger. The ImportInterface need to be simple and not related to oAuth (not all import will use that method).
This commit is contained in:
parent
b4b592a0c0
commit
252ebd6071
9 changed files with 362 additions and 215 deletions
|
@ -8,35 +8,56 @@ use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
|||
class PocketController extends Controller
|
||||
{
|
||||
/**
|
||||
* @Route("/import/pocket", name="pocket_import")
|
||||
* @Route("/import/pocket", name="import_pocket")
|
||||
*/
|
||||
public function indexAction()
|
||||
{
|
||||
return $this->render('WallabagImportBundle:Pocket:index.html.twig', array());
|
||||
return $this->render('WallabagImportBundle:Pocket:index.html.twig', []);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/import/pocket/auth", name="pocket_auth")
|
||||
* @Route("/import/pocket/auth", name="import_pocket_auth")
|
||||
*/
|
||||
public function authAction()
|
||||
{
|
||||
$pocket = $this->get('wallabag_import.pocket.import');
|
||||
$authUrl = $pocket->oAuthRequest(
|
||||
$this->generateUrl('import', array(), true),
|
||||
$this->generateUrl('pocket_callback', array(), true)
|
||||
);
|
||||
$requestToken = $this->get('wallabag_import.pocket.import')
|
||||
->getRequestToken($this->generateUrl('import', [], true));
|
||||
|
||||
return $this->redirect($authUrl, 301);
|
||||
$this->get('session')->set('import.pocket.code', $requestToken);
|
||||
|
||||
return $this->redirect(
|
||||
'https://getpocket.com/auth/authorize?request_token='.$requestToken.'&redirect_uri='.$this->generateUrl('import_pocket_callback', [], true),
|
||||
301
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/import/pocket/callback", name="pocket_callback")
|
||||
* @Route("/import/pocket/callback", name="import_pocket_callback")
|
||||
*/
|
||||
public function callbackAction()
|
||||
{
|
||||
$message = 'Import failed, please try again.';
|
||||
$pocket = $this->get('wallabag_import.pocket.import');
|
||||
$accessToken = $pocket->oAuthAuthorize();
|
||||
$pocket->import($accessToken);
|
||||
|
||||
// something bad happend on pocket side
|
||||
if (false === $pocket->authorize($this->get('session')->get('import.pocket.code'))) {
|
||||
$this->get('session')->getFlashBag()->add(
|
||||
'notice',
|
||||
$message
|
||||
);
|
||||
|
||||
return $this->redirect($this->generateUrl('import_pocket'));
|
||||
}
|
||||
|
||||
if (true === $pocket->import()) {
|
||||
$summary = $pocket->getSummary();
|
||||
$message = $summary['imported'].' entrie(s) imported, '.$summary['skipped'].' already saved.';
|
||||
}
|
||||
|
||||
$this->get('session')->getFlashBag()->add(
|
||||
'notice',
|
||||
$message
|
||||
);
|
||||
|
||||
return $this->redirect($this->generateUrl('homepage'));
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue