X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FWallabag%2FCoreBundle%2FService%2FExtractor.php;h=4c067d3afef985fa5226c0359bc81260c2eb7eec;hb=8ce32af61229eec8f4cc34b207273d47f60adc48;hp=790386d4ecdf205b822dfa8d338db76a08ee4f12;hpb=6b767d1cc0e9697af95ec399fd612d203d10826a;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/CoreBundle/Service/Extractor.php b/src/Wallabag/CoreBundle/Service/Extractor.php index 790386d4..4c067d3a 100644 --- a/src/Wallabag/CoreBundle/Service/Extractor.php +++ b/src/Wallabag/CoreBundle/Service/Extractor.php @@ -3,72 +3,76 @@ namespace Wallabag\CoreBundle\Service; use Wallabag\CoreBundle\Helper\Content; -use Wallabag\Wallabag\Url; +use Wallabag\CoreBundle\Helper\Url; final class Extractor { - public static function extract($url) { - $pageContent = Extractor::getPageContent(new Url(base64_encode($url))); - $title = ($pageContent['rss']['channel']['item']['title'] != '') ? $pageContent['rss']['channel']['item']['title'] : _('Untitled'); + public static function extract($url) + { + $pageContent = self::getPageContent(new Url(base64_encode($url))); + $title = $pageContent['rss']['channel']['item']['title'] ?: parse_url($url, PHP_URL_HOST); $body = $pageContent['rss']['channel']['item']['description']; $content = new Content(); $content->setTitle($title); - $content->setBody($body);; + $content->setBody($body); return $content; } + /** - * Get the content for a given URL (by a call to FullTextFeed) + * Get the content for a given URL (by a call to FullTextFeed). * * @param Url $url + * * @return mixed */ public static function getPageContent(Url $url) { // Saving and clearing context $REAL = array(); - foreach( $GLOBALS as $key => $value ) { - if( $key != 'GLOBALS' && $key != '_SESSION' && $key != 'HTTP_SESSION_VARS' ) { - $GLOBALS[$key] = array(); - $REAL[$key] = $value; + foreach ($GLOBALS as $key => $value) { + if ($key != 'GLOBALS' && $key != '_SESSION' && $key != 'HTTP_SESSION_VARS') { + $GLOBALS[$key] = array(); + $REAL[$key] = $value; } } // Saving and clearing session if (isset($_SESSION)) { $REAL_SESSION = array(); - foreach( $_SESSION as $key => $value ) { + foreach ($_SESSION as $key => $value) { $REAL_SESSION[$key] = $value; unset($_SESSION[$key]); } } // Running code in different context - $scope = function() { - extract( func_get_arg(1) ); + $scope = function () { + extract(func_get_arg(1)); $_GET = $_REQUEST = array( - "url" => $url->getUrl(), - "max" => 5, - "links" => "preserve", - "exc" => "", - "format" => "json", - "submit" => "Create Feed" + 'url' => $url->getUrl(), + 'max' => 5, + 'links' => 'preserve', + 'exc' => '', + 'format' => 'json', + 'submit' => 'Create Feed', ); ob_start(); require func_get_arg(0); $json = ob_get_contents(); ob_end_clean(); + return $json; }; // Silence $scope function to avoid // issues with FTRSS when error_reporting is to high // FTRSS generates PHP warnings which break output - $json = @$scope(__DIR__ . "/../../../../vendor/wallabag/Fivefilters_Libraries/makefulltextfeed.php", array("url" => $url)); + $json = @$scope(__DIR__.'/../../../../vendor/wallabag/Fivefilters_Libraries/makefulltextfeed.php', array('url' => $url)); // Clearing and restoring context foreach ($GLOBALS as $key => $value) { - if($key != "GLOBALS" && $key != "_SESSION" ) { + if ($key != 'GLOBALS' && $key != '_SESSION') { unset($GLOBALS[$key]); } } @@ -78,15 +82,15 @@ final class Extractor // Clearing and restoring session if (isset($REAL_SESSION)) { - foreach($_SESSION as $key => $value) { + foreach ($_SESSION as $key => $value) { unset($_SESSION[$key]); } - foreach($REAL_SESSION as $key => $value) { + foreach ($REAL_SESSION as $key => $value) { $_SESSION[$key] = $value; } } return json_decode($json, true); } -} \ No newline at end of file +}