Add user config (#653)

Uses the parse_ini_file function to load default settings from the default configuration file 'config.default.ini.php'. Optionally loads custom settings from 'config.ini.php' to replace the default
values.
This commit is contained in:
LogMANOriginal 2018-05-29 11:52:17 +02:00 committed by GitHub
parent c4f32c31a8
commit 8ac8e08abf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 66 additions and 10 deletions

1
.gitignore vendored
View file

@ -227,6 +227,7 @@ pip-log.txt
/cache
/whitelist.txt
DEBUG
config.ini.php
######################
## VisualStudioCode ##

27
config.default.ini.php Normal file
View file

@ -0,0 +1,27 @@
; <?php exit; ?> DO NOT REMOVE THIS LINE
; This file contains the default settings for RSS-Bridge. Do not change this
; file, it will be replaced on the next update of RSS-Bridge! You can specify
; your own configuration in 'config.ini.php' (copy this file).
[cache]
; Allow users to specify custom timeout for specific requests.
; true = enabled
; false = disabled (default)
custom_timeout = false
[proxy]
; Sets the proxy url (i.e. "tcp://192.168.0.0:32")
; "" = Proxy disabled (default)
url = ""
; Sets the proxy name that is shown on the bridge instead of the proxy url.
; "" = Show proxy url
name = "Hidden proxy name"
; Allow users to disable proxy usage for specific requests.
; true = enabled
; false = disabled (default)
by_bridge = false

View file

@ -10,19 +10,47 @@ TODO :
- implement header('X-Cached-Version: '.date(DATE_ATOM, filemtime($cachefile)));
*/
if(!file_exists('config.default.ini.php'))
die('The default configuration file "config.default.ini.php" is missing!');
$config = parse_ini_file('config.default.ini.php', true, INI_SCANNER_TYPED);
if(file_exists('config.ini.php')) {
// Replace default configuration with custom settings
foreach(parse_ini_file('config.ini.php', true, INI_SCANNER_TYPED) as $header => $section) {
foreach($section as $key => $value) {
// Skip unknown sections and keys
if(array_key_exists($header, $config) && array_key_exists($key, $config[$header])) {
$config[$header][$key] = $value;
}
}
}
}
if(!is_string($config['proxy']['url']))
die('Parameter [proxy] => "url" is not a valid string! Please check "config.ini.php"!');
if(!empty($config['proxy']['url']))
define('PROXY_URL', $config['proxy']['url']);
if(!is_bool($config['proxy']['by_bridge']))
die('Parameter [proxy] => "by_bridge" is not a valid Boolean! Please check "config.ini.php"!');
define('PROXY_BYBRIDGE', $config['proxy']['by_bridge']);
if(!is_string($config['proxy']['name']))
die('Parameter [proxy] => "name" is not a valid string! Please check "config.ini.php"!');
define('PROXY_NAME', $config['proxy']['name']);
if(!is_bool($config['cache']['custom_timeout']))
die('Parameter [cache] => "custom_timeout" is not a valid Boolean! Please check "config.ini.php"!');
define('CUSTOM_CACHE_TIMEOUT', $config['cache']['custom_timeout']);
// Defines the minimum required PHP version for RSS-Bridge
define('PHP_VERSION_REQUIRED', '5.6.0');
//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);
// Comment this line or keep PROXY_NAME empty to display PROXY_URL instead
define('PROXY_NAME', 'Hidden Proxy Name');
// Allows the operator to specify custom cache timeouts via '&_cache_timeout=3600'
// true: enabled, false: disabled (default)
define('CUSTOM_CACHE_TIMEOUT', false);
date_default_timezone_set('UTC');
error_reporting(0);