]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
Add instance url to the downloaded images
authorJeremy Benoist <jeremy.benoist@gmail.com>
Sun, 30 Oct 2016 18:50:00 +0000 (19:50 +0100)
committerJeremy Benoist <jeremy.benoist@gmail.com>
Sun, 30 Oct 2016 18:50:00 +0000 (19:50 +0100)
src/Wallabag/CoreBundle/Event/Subscriber/DownloadImagesSubscriber.php
src/Wallabag/CoreBundle/Helper/DownloadImages.php
tests/Wallabag/CoreBundle/Helper/DownloadImagesTest.php

index 09f8e9119767d5f9870ff76091e42a4a9b6c7d2b..0792653e061740afed7e6e737f71f4e190a886d2 100644 (file)
@@ -110,6 +110,8 @@ class DownloadImagesSubscriber implements EventSubscriber
      */
     public function downloadImages(Config $config, Entry $entry)
     {
+        $this->downloadImages->setWallabagUrl($config->get('wallabag_url'));
+
         // if ($config->get('download_images_with_rabbitmq')) {
 
         // } else if ($config->get('download_images_with_redis')) {
@@ -132,6 +134,8 @@ class DownloadImagesSubscriber implements EventSubscriber
      */
     public function downloadPreviewImage(Config $config, Entry $entry)
     {
+        $this->downloadImages->setWallabagUrl($config->get('wallabag_url'));
+
         // if ($config->get('download_images_with_rabbitmq')) {
 
         // } else if ($config->get('download_images_with_redis')) {
index 004bb277515b1a436a761526a687c886b5f04082..e7982c560a0feec436229fc32985273e4dc51be3 100644 (file)
@@ -15,6 +15,7 @@ class DownloadImages
     private $baseFolder;
     private $logger;
     private $mimeGuesser;
+    private $wallabagUrl;
 
     public function __construct(Client $client, $baseFolder, LoggerInterface $logger)
     {
@@ -26,6 +27,17 @@ class DownloadImages
         $this->setFolder();
     }
 
+    /**
+     * Since we can't inject CraueConfig service because it'll generate a circular reference when injected in the subscriber
+     * we use a different way to inject the current wallabag url.
+     *
+     * @param string $url Usually from `$config->get('wallabag_url')`
+     */
+    public function setWallabagUrl($url)
+    {
+        $this->wallabagUrl = rtrim($url, '/');
+    }
+
     /**
      * Setup base folder where all images are going to be saved.
      */
@@ -143,7 +155,7 @@ class DownloadImages
 
         imagedestroy($im);
 
-        return '/assets/images/'.$relativePath.'/'.$hashImage.'.'.$ext;
+        return $this->wallabagUrl.'/assets/images/'.$relativePath.'/'.$hashImage.'.'.$ext;
     }
 
     /**
index e000d6817b55e8c6792ac2034589910605835bfe..33d2e389c8bfe299978f8d881e86e6cb07f85d21 100644 (file)
@@ -27,9 +27,11 @@ class DownloadImagesTest extends \PHPUnit_Framework_TestCase
         $logger = new Logger('test', array($logHandler));
 
         $download = new DownloadImages($client, sys_get_temp_dir().'/wallabag_test', $logger);
+        $download->setWallabagUrl('http://wallabag.io/');
+
         $res = $download->processHtml('<div><img src="http://i.imgur.com/T9qgcHc.jpg" /></div>', 'http://imgur.com/gallery/WxtWY');
 
-        $this->assertContains('/assets/images/4/2/4258f71e/c638b4c2.png', $res);
+        $this->assertContains('http://wallabag.io/assets/images/4/2/4258f71e/c638b4c2.png', $res);
     }
 
     public function testProcessHtmlWithBadImage()