diff --git a/formats/HtmlFormat.php b/formats/HtmlFormat.php
index 1001acf..c32c3a1 100644
--- a/formats/HtmlFormat.php
+++ b/formats/HtmlFormat.php
@@ -13,8 +13,23 @@ class HtmlFormat extends FormatAbstract {
$entryAuthor = isset($item['author']) ? '
by: ' . $item['author'] . '
' : '';
$entryTitle = isset($item['title']) ? $this->sanitizeHtml(strip_tags($item['title'])) : '';
$entryUri = isset($item['uri']) ? $item['uri'] : $uri;
- $entryTimestamp = isset($item['timestamp']) ? '' : '';
- $entryContent = isset($item['content']) ? '' . $this->sanitizeHtml($item['content']). '
' : '';
+
+ $entryTimestamp = '';
+ if(isset($item['timestamp'])){
+ $entryTimestamp = '';
+ }
+
+ $entryContent = '';
+ if(isset($item['content'])){
+ $entryContent = ''
+ . $this->sanitizeHtml($item['content'])
+ . '
';
+ }
+
$entries .= <<
diff --git a/formats/MrssFormat.php b/formats/MrssFormat.php
index fddbf0a..373c438 100644
--- a/formats/MrssFormat.php
+++ b/formats/MrssFormat.php
@@ -14,7 +14,13 @@ class MrssFormat extends FormatAbstract {
$extraInfos = $this->getExtraInfos();
$title = $this->xml_encode($extraInfos['name']);
- $uri = $this->xml_encode(!empty($extraInfos['uri']) ? $extraInfos['uri'] : 'https://github.com/sebsauvage/rss-bridge');
+
+ if(!empty($extraInfos['uri'])){
+ $uri = $this->xml_encode($extraInfos['uri']);
+ } else {
+ $uri = 'https://github.com/sebsauvage/rss-bridge';
+ }
+
$icon = $this->xml_encode('http://icons.better-idea.org/icon?url='. $uri .'&size=64');
$items = '';
@@ -41,7 +47,10 @@ EOD;
/* Data are prepared, now let's begin the "MAGIE !!!" */
$toReturn = '';
$toReturn .= <<
+
{$title}
http{$https}://{$httpHost}{$httpInfo}/
diff --git a/index.php b/index.php
index 10a13e0..73d2b8a 100644
--- a/index.php
+++ b/index.php
@@ -2,7 +2,7 @@
/*
TODO :
- factorize the annotation system
-- factorize to adapter : Format, Bridge, Cache (actually code is almost the same)
+- factorize to adapter : Format, Bridge, Cache(actually code is almost the same)
- implement annotation cache for entrance page
- Cache : I think logic must be change as least to avoid to reconvert object from json in FileCache case.
- add namespace to avoid futur problem ?
@@ -12,9 +12,9 @@ TODO :
//define('PROXY_URL', 'tcp://192.168.0.0:28');
// Set to true if you allow users to disable proxy usage for specific bridges
-define('PROXY_BYBRIDGE',false);
+define('PROXY_BYBRIDGE', false);
// Comment this line or keep PROXY_NAME empty to display PROXY_URL instead
-define('PROXY_NAME','Hidden Proxy Name');
+define('PROXY_NAME', 'Hidden Proxy Name');
date_default_timezone_set('UTC');
error_reporting(0);
@@ -22,37 +22,39 @@ error_reporting(0);
/*
Create a file named 'DEBUG' for enabling debug mode.
For further security, you may put whitelisted IP addresses
- in the 'DEBUG' file, one IP per line. Empty file allows anyone (!).
+ in the 'DEBUG' file, one IP per line. Empty file allows anyone(!).
Debugging allows displaying PHP error messages and bypasses the cache: this can allow a malicious
client to retrieve data about your server and hammer a provider throught your rss-bridge instance.
*/
-if (file_exists('DEBUG')) {
- $debug_enabled = true;
- $debug_whitelist = trim(file_get_contents('DEBUG'));
- if (strlen($debug_whitelist) > 0) {
- $debug_enabled = false;
- foreach (explode("\n", $debug_whitelist) as $allowed_ip) {
- if (trim($allowed_ip) === $_SERVER['REMOTE_ADDR']) {
- $debug_enabled = true;
- break;
- }
- }
- }
- if ($debug_enabled) {
- ini_set('display_errors', '1');
- error_reporting(E_ALL);
- define('DEBUG', 'true');
- }
+if(file_exists('DEBUG')){
+ $debug_enabled = true;
+ $debug_whitelist = trim(file_get_contents('DEBUG'));
+ if(strlen($debug_whitelist) > 0){
+ $debug_enabled = false;
+ foreach(explode("\n", $debug_whitelist) as $allowed_ip){
+ if(trim($allowed_ip) === $_SERVER['REMOTE_ADDR']){
+ $debug_enabled = true;
+ break;
+ }
+ }
+ }
+ if($debug_enabled){
+ ini_set('display_errors', '1');
+ error_reporting(E_ALL);
+ define('DEBUG', 'true');
+ }
}
require_once __DIR__ . '/lib/RssBridge.php';
// extensions check
-if (!extension_loaded('openssl'))
+if(!extension_loaded('openssl'))
die('"openssl" extension not loaded. Please check "php.ini"');
// FIXME : beta test UA spoofing, please report any blacklisting by PHP-fopen-unfriendly websites
-ini_set('user_agent', 'Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20121202 Firefox/30.0 (rss-bridge/0.1; +https://github.com/sebsauvage/rss-bridge)');
+ini_set('user_agent', 'Mozilla/5.0(X11; Linux x86_64; rv:30.0)
+ Gecko/20121202 Firefox/30.0(rss-bridge/0.1;
+ +https://github.com/sebsauvage/rss-bridge)');
// default whitelist
$whitelist_file = './whitelist.txt';
@@ -74,91 +76,89 @@ $whitelist_default = array(
"WikipediaBridge",
"YoutubeBridge");
-if (!file_exists($whitelist_file)) {
+if(!file_exists($whitelist_file)){
$whitelist_selection = $whitelist_default;
$whitelist_write = implode("\n", $whitelist_default);
file_put_contents($whitelist_file, $whitelist_write);
-}
-else {
+} else {
$whitelist_selection = explode("\n", file_get_contents($whitelist_file));
}
Cache::purge();
-try{
+try {
- Bridge::setDir(__DIR__ . '/bridges/');
- Format::setDir(__DIR__ . '/formats/');
- Cache::setDir(__DIR__ . '/caches/');
+ Bridge::setDir(__DIR__ . '/bridges/');
+ Format::setDir(__DIR__ . '/formats/');
+ Cache::setDir(__DIR__ . '/caches/');
- $action=filter_input(INPUT_GET,'action');
- $bridge=filter_input(INPUT_GET,'bridge');
- if($action === 'display' && !empty($bridge)){
- // DEPRECATED: 'nameBridge' scheme is replaced by 'name' in bridge parameter values
- // this is to keep compatibility until futher complete removal
- if(($pos=strpos($bridge,'Bridge'))===(strlen($bridge)-strlen('Bridge'))){
- $bridge=substr($bridge,0,$pos);
- }
+ $action = filter_input(INPUT_GET, 'action');
+ $bridge = filter_input(INPUT_GET, 'bridge');
- $format = filter_input(INPUT_GET,'format');
- // DEPRECATED: 'nameFormat' scheme is replaced by 'name' in format parameter values
- // this is to keep compatibility until futher complete removal
- if(($pos=strpos($format,'Format'))===(strlen($format)-strlen('Format'))){
- $format=substr($format,0,$pos);
- }
+ if($action === 'display' && !empty($bridge)){
+ // DEPRECATED: 'nameBridge' scheme is replaced by 'name' in bridge parameter values
+ // this is to keep compatibility until futher complete removal
+ if(($pos = strpos($bridge, 'Bridge')) === (strlen($bridge) - strlen('Bridge'))){
+ $bridge = substr($bridge, 0, $pos);
+ }
+ $format = filter_input(INPUT_GET, 'format');
- // whitelist control
- if(!Bridge::isWhitelisted($whitelist_selection, $bridge)) {
- throw new \HttpException('This bridge is not whitelisted', 401);
- die;
- }
+ // DEPRECATED: 'nameFormat' scheme is replaced by 'name' in format parameter values
+ // this is to keep compatibility until futher complete removal
+ if(($pos = strpos($format, 'Format')) === (strlen($format) - strlen('Format'))){
+ $format = substr($format, 0, $pos);
+ }
- $cache = Cache::create('FileCache');
+ // whitelist control
+ if(!Bridge::isWhitelisted($whitelist_selection, $bridge)){
+ throw new \HttpException('This bridge is not whitelisted', 401);
+ die;
+ }
- // Data retrieval
- $bridge = Bridge::create($bridge);
- if(!defined("DEBUG")) {
- $bridge->setCache($cache);
- }
+ $cache = Cache::create('FileCache');
- $noproxy=filter_input(INPUT_GET,'_noproxy',FILTER_VALIDATE_BOOLEAN);
- if(defined('PROXY_URL') && PROXY_BYBRIDGE && $noproxy){
- $bridge->useProxy=false;
- }
+ // Data retrieval
+ $bridge = Bridge::create($bridge);
+ if(!defined("DEBUG"))
+ $bridge->setCache($cache);
- $params=$_GET;
- unset($params['action']);
- unset($params['bridge']);
- unset($params['format']);
- unset($params['_noproxy']);
- $bridge->setDatas($params);
- // Data transformation
- try {
- $format = Format::create($format);
- $format
- ->setItems($bridge->getItems())
- ->setExtraInfos(array(
- 'name' => $bridge->getName(),
- 'uri' => $bridge->getURI(),
- ))
- ->display();
- } catch(Exception $e) {
+ $noproxy = filter_input(INPUT_GET, '_noproxy', FILTER_VALIDATE_BOOLEAN);
+ if(defined('PROXY_URL') && PROXY_BYBRIDGE && $noproxy)
+ $bridge->useProxy = false;
- echo "The brige has crashed. You should report this to the bridges maintainer";
-
- }
- die;
-
- }
+ $params = $_GET;
+ unset($params['action']);
+ unset($params['bridge']);
+ unset($params['format']);
+ unset($params['_noproxy']);
+ $bridge->setDatas($params);
+
+ // Data transformation
+ try {
+ $format = Format::create($format);
+ $format
+ ->setItems($bridge->getItems())
+ ->setExtraInfos(array(
+ 'name' => $bridge->getName(),
+ 'uri' => $bridge->getURI(),
+ ))
+ ->display();
+ } catch(Exception $e){
+ echo "The bridge has crashed. You should report this to the bridges maintainer";
+ }
+ die;
+ }
}
+
catch(HttpException $e){
- header('HTTP/1.1 ' . $e->getCode() . ' ' . Http::getMessageForCode($e->getCode()));
- header('Content-Type: text/plain');
- die($e->getMessage());
+ header('HTTP/1.1 ' . $e->getCode() . ' ' . Http::getMessageForCode($e->getCode()));
+ header('Content-Type: text/plain');
+ die($e->getMessage());
}
+
catch(\Exception $e){
- die($e->getMessage());
+ die($e->getMessage());
}
$formats = Format::searchInformation();
@@ -167,51 +167,47 @@ $formats = Format::searchInformation();
-
-
-
- RSS-Bridge
-
+
+
+
+ RSS-Bridge
+
-
- RSS-Bridge
- ·Reconnecting the Web·
-
+
+ RSS-Bridge
+ ·Reconnecting the Web·
+
-
+