]> git.immae.eu Git - github/wallabag/wallabag.git/blobdiff - src/Wallabag/ApiBundle/Controller/WallabagRestController.php
Integrate graby
[github/wallabag/wallabag.git] / src / Wallabag / ApiBundle / Controller / WallabagRestController.php
index 692a4ae0e5de37d449f85d60a5be1a87aed7c31f..d5579de4e18c4cb8fc06de4546898a67f29b96f9 100644 (file)
@@ -84,12 +84,12 @@ class WallabagRestController extends Controller
     public function getEntriesAction(Request $request)
     {
         $isArchived = $request->query->get('archive');
-        $isStarred  = $request->query->get('star');
-        $sort       = $request->query->get('sort', 'created');
-        $order      = $request->query->get('order', 'desc');
-        $page       = (int) $request->query->get('page', 1);
-        $perPage    = (int) $request->query->get('perPage', 30);
-        $tags       = $request->query->get('tags', []);
+        $isStarred = $request->query->get('star');
+        $sort = $request->query->get('sort', 'created');
+        $order = $request->query->get('order', 'desc');
+        $page = (int) $request->query->get('page', 1);
+        $perPage = (int) $request->query->get('perPage', 30);
+        $tags = $request->query->get('tags', []);
 
         $pager = $this
             ->getDoctrine()
@@ -99,7 +99,7 @@ class WallabagRestController extends Controller
         $pager->setCurrentPage($page);
         $pager->setMaxPerPage($perPage);
 
-        $pagerfantaFactory   = new PagerfantaFactory('page', 'perPage');
+        $pagerfantaFactory = new PagerfantaFactory('page', 'perPage');
         $paginatedCollection = $pagerfantaFactory->createRepresentation(
             $pager,
             new Route('api_get_entries', [], $absolute = true)
@@ -147,11 +147,16 @@ class WallabagRestController extends Controller
     {
         $url = $request->request->get('url');
 
-        $content = Extractor::extract($url);
+        $content = $this->get('wallabag_core.graby')->fetchContent($url);
+
         $entry = new Entry($this->getUser());
         $entry->setUrl($url);
-        $entry->setTitle($request->request->get('title') ?: $content->getTitle());
-        $entry->setContent($content->getBody());
+        $entry->setTitle($request->request->get('title') ?: $content['title']);
+        $entry->setContent($content['html']);
+        $entry->setMimetype($content['content_type']);
+        if (isset($content['open_graph']['og_image'])) {
+            $entry->setPreviewPicture($content['open_graph']['og_image']);
+        }
 
         $tags = $request->request->get('tags', '');
         if (!empty($tags)) {
@@ -188,9 +193,9 @@ class WallabagRestController extends Controller
     {
         $this->validateUserAccess($entry->getUser()->getId(), $this->getUser()->getId());
 
-        $title      = $request->request->get('title');
+        $title = $request->request->get('title');
         $isArchived = $request->request->get('is_archived');
-        $isStarred  = $request->request->get('is_starred');
+        $isStarred = $request->request->get('is_starred');
 
         if (!is_null($title)) {
             $entry->setTitle($title);