aboutsummaryrefslogtreecommitdiffhomepage
path: root/inc
diff options
context:
space:
mode:
authorMaryana Rozhankivska <mariroz@mr.lviv.ua>2014-02-19 19:08:19 +0200
committerMaryana Rozhankivska <mariroz@mr.lviv.ua>2014-02-19 19:08:19 +0200
commitb4fd2154fe1d05d0a0e8e2e309acd3313020d3cb (patch)
tree787a4a23c4110c0aefe6e51bbe6d6c7f0a809493 /inc
parentf37891fdb6d93580f25ced7d6f5c226dce3bf3b8 (diff)
downloadwallabag-b4fd2154fe1d05d0a0e8e2e309acd3313020d3cb.tar.gz
wallabag-b4fd2154fe1d05d0a0e8e2e309acd3313020d3cb.tar.zst
wallabag-b4fd2154fe1d05d0a0e8e2e309acd3313020d3cb.zip
Full-Text RSS included as a script instead of file_get_contents call. Tnx to @Faless. Fix issues #366 and #463
Diffstat (limited to 'inc')
-rwxr-xr-x[-rw-r--r--]inc/3rdparty/config.php2
-rwxr-xr-x[-rw-r--r--]inc/3rdparty/makefulltextfeed.php1
-rwxr-xr-x[-rw-r--r--]inc/poche/Poche.class.php56
3 files changed, 50 insertions, 9 deletions
diff --git a/inc/3rdparty/config.php b/inc/3rdparty/config.php
index 61fc0d0e..e618117b 100644..100755
--- a/inc/3rdparty/config.php
+++ b/inc/3rdparty/config.php
@@ -11,6 +11,8 @@
11// options you'd like to override in custom_config.php. 11// options you'd like to override in custom_config.php.
12// ..................................................... 12// .....................................................
13 13
14global $options;
15
14// Create config object 16// Create config object
15if (!isset($options)) $options = new stdClass(); 17if (!isset($options)) $options = new stdClass();
16 18
diff --git a/inc/3rdparty/makefulltextfeed.php b/inc/3rdparty/makefulltextfeed.php
index 7104bc73..2852c4c2 100644..100755
--- a/inc/3rdparty/makefulltextfeed.php
+++ b/inc/3rdparty/makefulltextfeed.php
@@ -424,6 +424,7 @@ $http->rewriteUrls = $options->rewrite_url;
424////////////////////////////////// 424//////////////////////////////////
425// Set up Content Extractor 425// Set up Content Extractor
426////////////////////////////////// 426//////////////////////////////////
427global $extractor;
427$extractor = new ContentExtractor(dirname(__FILE__).'/site_config/custom', dirname(__FILE__).'/site_config/standard'); 428$extractor = new ContentExtractor(dirname(__FILE__).'/site_config/custom', dirname(__FILE__).'/site_config/standard');
428$extractor->debug = $debug_mode; 429$extractor->debug = $debug_mode;
429SiteConfig::$debug = $debug_mode; 430SiteConfig::$debug = $debug_mode;
diff --git a/inc/poche/Poche.class.php b/inc/poche/Poche.class.php
index 753bd7f0..fc9a455a 100644..100755
--- a/inc/poche/Poche.class.php
+++ b/inc/poche/Poche.class.php
@@ -348,17 +348,55 @@ class Poche
348 348
349 protected function getPageContent(Url $url) 349 protected function getPageContent(Url $url)
350 { 350 {
351 $options = array('http' => array('user_agent' => 'poche')); 351 // Saving and clearing context
352 if (isset($_SERVER['AUTH_TYPE']) && "basic" === strtolower($_SERVER['AUTH_TYPE'])) { 352 $REAL = array();
353 $options['http']['header'] = sprintf( 353 foreach( $GLOBALS as $key => $value ) {
354 "Authorization: Basic %s", 354 if( $key != "GLOBALS" && $key != "_SESSION" ) {
355 base64_encode( 355 $GLOBALS[$key] = array();
356 sprintf('%s:%s', $_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) 356 $REAL[$key] = $value;
357 ) 357 }
358 }
359 // Saving and clearing session
360 $REAL_SESSION = array();
361 foreach( $_SESSION as $key => $value ) {
362 $REAL_SESSION[$key] = $value;
363 unset($_SESSION[$key]);
364 }
365
366 // Running code in different context
367 $scope = function() {
368 extract( func_get_arg(1) );
369 $_GET = $_REQUEST = array(
370 "url" => $url->getUrl(),
371 "max" => 5,
372 "links" => "preserve",
373 "exc" => "",
374 "format" => "json",
375 "submit" => "Create Feed"
358 ); 376 );
377 ob_start();
378 require func_get_arg(0);
379 $json = ob_get_flush();
380 return $json;
381 };
382 $json = $scope( "inc/3rdparty/makefulltextfeed.php", array("url" => $url) );
383
384 // Clearing and restoring context
385 foreach( $GLOBALS as $key => $value ) {
386 if( $key != "GLOBALS" && $key != "_SESSION" ) {
387 unset($GLOBALS[$key]);
388 }
389 }
390 foreach( $REAL as $key => $value ) {
391 $GLOBALS[$key] = $value;
392 }
393 // Clearing and restoring session
394 foreach( $_SESSION as $key => $value ) {
395 unset($_SESSION[$key]);
396 }
397 foreach( $REAL_SESSION as $key => $value ) {
398 $_SESSION[$key] = $value;
359 } 399 }
360 $context = stream_context_create($options);
361 $json = file_get_contents(Tools::getPocheUrl() . '/inc/3rdparty/makefulltextfeed.php?url='.urlencode($url->getUrl()).'&max=5&links=preserve&exc=&format=json&submit=Create+Feed', false, $context);
362 return json_decode($json, true); 400 return json_decode($json, true);
363 } 401 }
364 402