spaces to tabs on index

This commit is contained in:
Alexis CHEMEL 2016-12-06 01:45:43 +01:00
parent 9bb6a0999d
commit baa9a7e145

250
index.php
View File

@ -33,43 +33,43 @@ define('CACHE_DIR', __DIR__ . '/cache');
client to retrieve data about your server and hammer a provider throught your rss-bridge instance. client to retrieve data about your server and hammer a provider throught your rss-bridge instance.
*/ */
if (file_exists('DEBUG')) { if (file_exists('DEBUG')) {
$debug_enabled = true; $debug_enabled = true;
$debug_whitelist = trim(file_get_contents('DEBUG')); $debug_whitelist = trim(file_get_contents('DEBUG'));
if (strlen($debug_whitelist) > 0) { if (strlen($debug_whitelist) > 0) {
$debug_enabled = false; $debug_enabled = false;
foreach (explode("\n", $debug_whitelist) as $allowed_ip) { foreach (explode("\n", $debug_whitelist) as $allowed_ip) {
if (trim($allowed_ip) === $_SERVER['REMOTE_ADDR']) { if (trim($allowed_ip) === $_SERVER['REMOTE_ADDR']) {
$debug_enabled = true; $debug_enabled = true;
break; break;
} }
} }
} }
if ($debug_enabled) { if ($debug_enabled) {
ini_set('display_errors', '1'); ini_set('display_errors', '1');
error_reporting(E_ALL); error_reporting(E_ALL);
define('DEBUG', true); define('DEBUG', true);
} }
} }
require_once __DIR__ . '/lib/RssBridge.php'; require_once __DIR__ . '/lib/RssBridge.php';
// Check PHP version // Check PHP version
if (version_compare(PHP_VERSION, PHP_VERSION_REQUIRED) === -1) { if (version_compare(PHP_VERSION, PHP_VERSION_REQUIRED) === -1) {
die('RSS-Bridge requires at least PHP version ' . PHP_VERSION_REQUIRED . '!'); die('RSS-Bridge requires at least PHP version ' . PHP_VERSION_REQUIRED . '!');
} }
// extensions check // extensions check
if (!extension_loaded('openssl')) { if (!extension_loaded('openssl')) {
die('"openssl" extension not loaded. Please check "php.ini"'); die('"openssl" extension not loaded. Please check "php.ini"');
} }
if (!extension_loaded('libxml')) { if (!extension_loaded('libxml')) {
die('"libxml" extension not loaded. Please check "php.ini"'); die('"libxml" extension not loaded. Please check "php.ini"');
} }
// configuration checks // configuration checks
if (ini_get('allow_url_fopen') !== "1") { if (ini_get('allow_url_fopen') !== "1") {
die('"allow_url_fopen" is not set to "1". Please check "php.ini'); die('"allow_url_fopen" is not set to "1". Please check "php.ini');
} }
// FIXME : beta test UA spoofing, please report any blacklisting by PHP-fopen-unfriendly websites // FIXME : beta test UA spoofing, please report any blacklisting by PHP-fopen-unfriendly websites
@ -80,102 +80,102 @@ ini_set('user_agent', 'Mozilla/5.0(X11; Linux x86_64; rv:30.0)
// default whitelist // default whitelist
$whitelist_file = './whitelist.txt'; $whitelist_file = './whitelist.txt';
$whitelist_default = array( $whitelist_default = array(
"BandcampBridge", "BandcampBridge",
"CryptomeBridge", "CryptomeBridge",
"DansTonChatBridge", "DansTonChatBridge",
"DuckDuckGoBridge", "DuckDuckGoBridge",
"FacebookBridge", "FacebookBridge",
"FlickrExploreBridge", "FlickrExploreBridge",
"GooglePlusPostBridge", "GooglePlusPostBridge",
"GoogleSearchBridge", "GoogleSearchBridge",
"IdenticaBridge", "IdenticaBridge",
"InstagramBridge", "InstagramBridge",
"OpenClassroomsBridge", "OpenClassroomsBridge",
"PinterestBridge", "PinterestBridge",
"ScmbBridge", "ScmbBridge",
"TwitterBridge", "TwitterBridge",
"WikipediaBridge", "WikipediaBridge",
"YoutubeBridge"); "YoutubeBridge");
if (!file_exists($whitelist_file)) { if (!file_exists($whitelist_file)) {
$whitelist_selection = $whitelist_default; $whitelist_selection = $whitelist_default;
$whitelist_write = implode("\n", $whitelist_default); $whitelist_write = implode("\n", $whitelist_default);
file_put_contents($whitelist_file, $whitelist_write); file_put_contents($whitelist_file, $whitelist_write);
} else { } else {
$whitelist_selection = explode("\n", file_get_contents($whitelist_file)); $whitelist_selection = explode("\n", file_get_contents($whitelist_file));
} }
try { try {
Bridge::setDir(__DIR__ . '/bridges/'); Bridge::setDir(__DIR__ . '/bridges/');
Format::setDir(__DIR__ . '/formats/'); Format::setDir(__DIR__ . '/formats/');
Cache::setDir(__DIR__ . '/caches/'); Cache::setDir(__DIR__ . '/caches/');
$action = filter_input(INPUT_GET, 'action'); $action = filter_input(INPUT_GET, 'action');
$bridge = filter_input(INPUT_GET, 'bridge'); $bridge = filter_input(INPUT_GET, 'bridge');
if ($action === 'display' && !empty($bridge)) { if ($action === 'display' && !empty($bridge)) {
// DEPRECATED: 'nameBridge' scheme is replaced by 'name' in bridge parameter values // DEPRECATED: 'nameBridge' scheme is replaced by 'name' in bridge parameter values
// this is to keep compatibility until futher complete removal // this is to keep compatibility until futher complete removal
if (($pos = strpos($bridge, 'Bridge')) === (strlen($bridge) - strlen('Bridge'))) { if (($pos = strpos($bridge, 'Bridge')) === (strlen($bridge) - strlen('Bridge'))) {
$bridge = substr($bridge, 0, $pos); $bridge = substr($bridge, 0, $pos);
} }
$format = filter_input(INPUT_GET, 'format'); $format = filter_input(INPUT_GET, 'format');
// DEPRECATED: 'nameFormat' scheme is replaced by 'name' in format parameter values // DEPRECATED: 'nameFormat' scheme is replaced by 'name' in format parameter values
// this is to keep compatibility until futher complete removal // this is to keep compatibility until futher complete removal
if (($pos = strpos($format, 'Format')) === (strlen($format) - strlen('Format'))) { if (($pos = strpos($format, 'Format')) === (strlen($format) - strlen('Format'))) {
$format = substr($format, 0, $pos); $format = substr($format, 0, $pos);
} }
// whitelist control // whitelist control
if (!Bridge::isWhitelisted($whitelist_selection, $bridge)) { if (!Bridge::isWhitelisted($whitelist_selection, $bridge)) {
throw new \HttpException('This bridge is not whitelisted', 401); throw new \HttpException('This bridge is not whitelisted', 401);
die; die;
} }
// Data retrieval // Data retrieval
$bridge = Bridge::create($bridge); $bridge = Bridge::create($bridge);
$noproxy = filter_input(INPUT_GET, '_noproxy', FILTER_VALIDATE_BOOLEAN); $noproxy = filter_input(INPUT_GET, '_noproxy', FILTER_VALIDATE_BOOLEAN);
if (defined('PROXY_URL') && PROXY_BYBRIDGE && $noproxy) { if (defined('PROXY_URL') && PROXY_BYBRIDGE && $noproxy) {
define('NOPROXY', true); define('NOPROXY', true);
} }
$params = $_GET; $params = $_GET;
// Initialize cache // Initialize cache
$cache = Cache::create('FileCache'); $cache = Cache::create('FileCache');
$cache->setPath(CACHE_DIR); $cache->setPath(CACHE_DIR);
$cache->purgeCache(86400); // 24 hours $cache->purgeCache(86400); // 24 hours
$cache->setParameters($params); $cache->setParameters($params);
unset($params['action']); unset($params['action']);
unset($params['bridge']); unset($params['bridge']);
unset($params['format']); unset($params['format']);
unset($params['_noproxy']); unset($params['_noproxy']);
// Load cache & data // Load cache & data
$bridge->setCache($cache); $bridge->setCache($cache);
$bridge->setDatas($params); $bridge->setDatas($params);
// Data transformation // Data transformation
try { try {
$format = Format::create($format); $format = Format::create($format);
$format->setItems($bridge->getItems()); $format->setItems($bridge->getItems());
$format->setExtraInfos($bridge->getExtraInfos()); $format->setExtraInfos($bridge->getExtraInfos());
$format->display(); $format->display();
} catch (Exception $e) { } catch (Exception $e) {
echo "The bridge has crashed. You should report this to the bridges maintainer"; echo "The bridge has crashed. You should report this to the bridges maintainer";
} }
die; die;
} }
} catch (HttpException $e) { } catch (HttpException $e) {
header('HTTP/1.1 ' . $e->getCode() . ' ' . Http::getMessageForCode($e->getCode())); header('HTTP/1.1 ' . $e->getCode() . ' ' . Http::getMessageForCode($e->getCode()));
header('Content-Type: text/plain'); header('Content-Type: text/plain');
die($e->getMessage()); die($e->getMessage());
} catch (\Exception $e) { } catch (\Exception $e) {
die($e->getMessage()); die($e->getMessage());
} }
$formats = Format::searchInformation(); $formats = Format::searchInformation();
@ -193,12 +193,12 @@ $formats = Format::searchInformation();
<body> <body>
<?php <?php
$status = ''; $status = '';
if (defined('DEBUG') && DEBUG === true) { if (defined('DEBUG') && DEBUG === true) {
$status .= 'debug mode active'; $status .= 'debug mode active';
} }
echo <<<EOD echo <<<EOD
<header> <header>
<h1>RSS-Bridge</h1> <h1>RSS-Bridge</h1>
<h2>·Reconnecting the Web·</h2> <h2>·Reconnecting the Web·</h2>
@ -206,34 +206,34 @@ $formats = Format::searchInformation();
</header> </header>
EOD; EOD;
$activeFoundBridgeCount = 0; $activeFoundBridgeCount = 0;
$showInactive = filter_input(INPUT_GET, 'show_inactive', FILTER_VALIDATE_BOOLEAN); $showInactive = filter_input(INPUT_GET, 'show_inactive', FILTER_VALIDATE_BOOLEAN);
$inactiveBridges = ''; $inactiveBridges = '';
$bridgeList = Bridge::listBridges(); $bridgeList = Bridge::listBridges();
foreach ($bridgeList as $bridgeName) { foreach ($bridgeList as $bridgeName) {
if (Bridge::isWhitelisted($whitelist_selection, $bridgeName)) { if (Bridge::isWhitelisted($whitelist_selection, $bridgeName)) {
echo displayBridgeCard($bridgeName, $formats); echo displayBridgeCard($bridgeName, $formats);
$activeFoundBridgeCount++; $activeFoundBridgeCount++;
} elseif ($showInactive) { } elseif ($showInactive) {
// inactive bridges // inactive bridges
$inactiveBridges .= displayBridgeCard($bridgeName, $formats, false) . PHP_EOL; $inactiveBridges .= displayBridgeCard($bridgeName, $formats, false) . PHP_EOL;
} }
} }
echo $inactiveBridges; echo $inactiveBridges;
?> ?>
<section> <section>
<a href="https://github.com/RSS-Bridge/rss-bridge">RSS-Bridge alpha 0.2 ~ Public Domain</a><br /> <a href="https://github.com/RSS-Bridge/rss-bridge">RSS-Bridge alpha 0.2 ~ Public Domain</a><br />
<?= $activeFoundBridgeCount; ?>/<?= count($bridgeList) ?> active bridges. <br /> <?= $activeFoundBridgeCount; ?>/<?= count($bridgeList) ?> active bridges. <br />
<?php <?php
if ($activeFoundBridgeCount !== count($bridgeList)) { if ($activeFoundBridgeCount !== count($bridgeList)) {
// FIXME: This should be done in pure CSS // FIXME: This should be done in pure CSS
if (!$showInactive) { if (!$showInactive) {
echo '<a href="?show_inactive=1"><button class="small">Show inactive bridges</button></a><br />'; echo '<a href="?show_inactive=1"><button class="small">Show inactive bridges</button></a><br />';
} else { } else {
echo '<a href="?show_inactive=0"><button class="small">Hide inactive bridges</button></a><br />'; echo '<a href="?show_inactive=0"><button class="small">Hide inactive bridges</button></a><br />';
} }
} }
?> ?>
</section> </section>
</body> </body>
</html> </html>