[core] Apply some fixes

This commit is contained in:
logmanoriginal 2016-09-10 21:01:02 +02:00
parent 62eec43980
commit ab16af631e
10 changed files with 153 additions and 136 deletions

View file

@ -13,8 +13,23 @@ class HtmlFormat extends FormatAbstract {
$entryAuthor = isset($item['author']) ? '<br /><p class="author">by: ' . $item['author'] . '</p>' : '';
$entryTitle = isset($item['title']) ? $this->sanitizeHtml(strip_tags($item['title'])) : '';
$entryUri = isset($item['uri']) ? $item['uri'] : $uri;
$entryTimestamp = isset($item['timestamp']) ? '<time datetime="' . date(DATE_ATOM, $item['timestamp']) . '">' . date(DATE_ATOM, $item['timestamp']) . '</time>' : '';
$entryContent = isset($item['content']) ? '<div class="content">' . $this->sanitizeHtml($item['content']). '</div>' : '';
$entryTimestamp = '';
if(isset($item['timestamp'])){
$entryTimestamp = '<time datetime="'
. date(DATE_ATOM, $item['timestamp'])
. '">'
. date(DATE_ATOM, $item['timestamp'])
. '</time>';
}
$entryContent = '';
if(isset($item['content'])){
$entryContent = '<div class="content">'
. $this->sanitizeHtml($item['content'])
. '</div>';
}
$entries .= <<<EOD
<section class="feeditem">

View file

@ -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 = '<?xml version="1.0" encoding="UTF-8"?>';
$toReturn .= <<<EOD
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:atom="http://www.w3.org/2005/Atom">
<rss version="2.0"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:media="http://search.yahoo.com/mrss/"
xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>{$title}</title>
<link>http{$https}://{$httpHost}{$httpInfo}/</link>

View file

@ -52,7 +52,9 @@ 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';
@ -78,8 +80,7 @@ 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));
}
@ -93,6 +94,7 @@ try{
$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
@ -101,13 +103,13 @@ try{
}
$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);
}
// whitelist control
if(!Bridge::isWhitelisted($whitelist_selection, $bridge)){
throw new \HttpException('This bridge is not whitelisted', 401);
@ -118,14 +120,12 @@ try{
// Data retrieval
$bridge = Bridge::create($bridge);
if(!defined("DEBUG")) {
if(!defined("DEBUG"))
$bridge->setCache($cache);
}
$noproxy = filter_input(INPUT_GET, '_noproxy', FILTER_VALIDATE_BOOLEAN);
if(defined('PROXY_URL') && PROXY_BYBRIDGE && $noproxy){
if(defined('PROXY_URL') && PROXY_BYBRIDGE && $noproxy)
$bridge->useProxy = false;
}
$params = $_GET;
unset($params['action']);
@ -133,6 +133,7 @@ try{
unset($params['format']);
unset($params['_noproxy']);
$bridge->setDatas($params);
// Data transformation
try {
$format = Format::create($format);
@ -144,19 +145,18 @@ try{
))
->display();
} catch(Exception $e){
echo "The brige has crashed. You should report this to the bridges maintainer";
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());
}
catch(\Exception $e){
die($e->getMessage());
}
@ -185,15 +185,11 @@ $formats = Format::searchInformation();
$showInactive = filter_input(INPUT_GET, 'show_inactive', FILTER_VALIDATE_BOOLEAN);
$inactiveBridges = '';
$bridgeList = Bridge::listBridges();
foreach($bridgeList as $bridgeName)
{
if(Bridge::isWhitelisted($whitelist_selection, $bridgeName))
{
foreach($bridgeList as $bridgeName){
if(Bridge::isWhitelisted($whitelist_selection, $bridgeName)){
echo HTMLUtils::displayBridgeCard($bridgeName, $formats);
$activeFoundBridgeCount++;
}
elseif ($showInactive)
{
} elseif($showInactive) {
// inactive bridges
$inactiveBridges .= HTMLUtils::displayBridgeCard($bridgeName, $formats, false) . PHP_EOL;
}

View file

@ -36,8 +36,7 @@ EOD;
$pathBridge = self::getDir() . $nameBridge . '.php';
if(!file_exists($pathBridge)){
throw new \Exception('The bridge you looking for does not exist.'
. ' It should be at path '
throw new \Exception('The bridge you looking for does not exist. It should be at path '
. $pathBridge);
}

View file

@ -10,8 +10,8 @@ class Cache {
static public function create($nameCache){
if(!static::isValidNameCache($nameCache)){
throw new \InvalidArgumentException('Name cache must be at least'
. ' one uppercase follow or not by alphanumeric or dash characters.');
throw new \InvalidArgumentException('Name cache must be at least one
uppercase follow or not by alphanumeric or dash characters.');
}
$pathCache = self::getDir() . $nameCache . '.php';
@ -72,7 +72,7 @@ class Cache {
static public function purge(){
$cacheTimeLimit = time() - 60*60*24;
$cacheTimeLimit = time() - 86400; // 86400 -> 24h
$cachePath = 'cache';
if(file_exists($cachePath)){
$cacheIterator = new RecursiveIteratorIterator(

View file

@ -10,8 +10,8 @@ class Format {
static public function create($nameFormat){
if(!preg_match('@^[A-Z][a-zA-Z]*$@', $nameFormat)){
throw new \InvalidArgumentException('Name format must be at least '
. 'one uppercase follow or not by alphabetic characters.');
throw new \InvalidArgumentException('Name format must be at least
one uppercase follow or not by alphabetic characters.');
}
$nameFormat = $nameFormat . 'Format';

View file

@ -7,8 +7,7 @@ abstract class FormatAbstract implements FormatInterface {
$contentType,
$charset,
$items,
$extraInfos
;
$extraInfos;
public function setCharset($charset){
$this->charset = $charset;

View file

@ -19,9 +19,8 @@ require __DIR__ . '/HTMLUtils.php';
$vendorLibSimpleHtmlDom = __DIR__ . PATH_VENDOR . '/simplehtmldom/simple_html_dom.php';
if( !file_exists($vendorLibSimpleHtmlDom) ){
throw new \HttpException('"PHP Simple HTML DOM Parser" library is missing.'
. ' Get it from http://simplehtmldom.sourceforge.net and place the script'
. ' "simple_html_dom.php" in '
throw new \HttpException('"PHP Simple HTML DOM Parser" library is missing.
Get it from http://simplehtmldom.sourceforge.net and place the script "simple_html_dom.php" in '
. substr(PATH_VENDOR,4)
. '/simplehtmldom/'
, 500);