2015-10-20 11:58:13 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Wallabag\ImportBundle\Controller;
|
|
|
|
|
|
|
|
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
2016-01-09 17:38:40 +00:00
|
|
|
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
2015-10-20 11:58:13 +00:00
|
|
|
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
|
|
|
|
|
|
|
class PocketController extends Controller
|
|
|
|
{
|
|
|
|
/**
|
2015-12-31 10:24:46 +00:00
|
|
|
* @Route("/pocket", name="import_pocket")
|
2015-10-20 11:58:13 +00:00
|
|
|
*/
|
2015-10-23 12:45:50 +00:00
|
|
|
public function indexAction()
|
2015-10-20 11:58:13 +00:00
|
|
|
{
|
2015-12-31 10:24:46 +00:00
|
|
|
return $this->render('WallabagImportBundle:Pocket:index.html.twig', [
|
|
|
|
'import' => $this->get('wallabag_import.pocket.import'),
|
|
|
|
]);
|
2015-10-20 11:58:13 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2015-12-31 10:24:46 +00:00
|
|
|
* @Route("/pocket/auth", name="import_pocket_auth")
|
2015-10-20 11:58:13 +00:00
|
|
|
*/
|
|
|
|
public function authAction()
|
|
|
|
{
|
2015-12-30 11:23:51 +00:00
|
|
|
$requestToken = $this->get('wallabag_import.pocket.import')
|
2016-01-09 17:38:40 +00:00
|
|
|
->getRequestToken($this->generateUrl('import', UrlGeneratorInterface::ABSOLUTE_URL));
|
2015-12-30 11:23:51 +00:00
|
|
|
|
|
|
|
$this->get('session')->set('import.pocket.code', $requestToken);
|
2015-10-20 11:58:13 +00:00
|
|
|
|
2015-12-30 11:23:51 +00:00
|
|
|
return $this->redirect(
|
2016-01-09 17:38:40 +00:00
|
|
|
'https://getpocket.com/auth/authorize?request_token='.$requestToken.'&redirect_uri='.$this->generateUrl('import_pocket_callback', UrlGeneratorInterface::ABSOLUTE_URL),
|
2015-12-30 11:23:51 +00:00
|
|
|
301
|
|
|
|
);
|
2015-10-20 11:58:13 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2015-12-31 10:24:46 +00:00
|
|
|
* @Route("/pocket/callback", name="import_pocket_callback")
|
2015-10-20 11:58:13 +00:00
|
|
|
*/
|
|
|
|
public function callbackAction()
|
|
|
|
{
|
2015-12-30 11:23:51 +00:00
|
|
|
$message = 'Import failed, please try again.';
|
2015-12-24 14:22:56 +00:00
|
|
|
$pocket = $this->get('wallabag_import.pocket.import');
|
2015-12-30 11:23:51 +00:00
|
|
|
|
|
|
|
// 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();
|
2015-12-30 12:26:30 +00:00
|
|
|
$message = 'Import summary: '.$summary['imported'].' imported, '.$summary['skipped'].' already saved.';
|
2015-12-30 11:23:51 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
$this->get('session')->getFlashBag()->add(
|
|
|
|
'notice',
|
|
|
|
$message
|
|
|
|
);
|
2015-10-20 11:58:13 +00:00
|
|
|
|
|
|
|
return $this->redirect($this->generateUrl('homepage'));
|
|
|
|
}
|
|
|
|
}
|