libxml_disable_entity_loader(true);
- mb_internal_encoding("UTF-8");
+ // separate test because this is included before sanity checks
+ if (function_exists("mb_internal_encoding")) mb_internal_encoding("UTF-8");
+
date_default_timezone_set('UTC');
if (defined('E_DEPRECATED')) {
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
}
}
- function fetch_file_contents($url, $type = false, $login = false, $pass = false, $post_query = false, $timeout = false, $timestamp = 0, $useragent = false) {
+ // TODO: multiple-argument way is deprecated, first parameter is a hash now
+ function fetch_file_contents($options /* previously: 0: $url , 1: $type = false, 2: $login = false, 3: $pass = false,
+ 4: $post_query = false, 5: $timeout = false, 6: $timestamp = 0, 7: $useragent = false*/) {
global $fetch_last_error;
global $fetch_last_error_code;
global $fetch_last_content_type;
global $fetch_curl_used;
+ if (!is_array($options)) {
+
+ // falling back on compatibility shim
+ $options = array(
+ "url" => func_get_arg(0),
+ "type" => @func_get_arg(1),
+ "login" => @func_get_arg(2),
+ "pass" => @func_get_arg(3),
+ "post_query" => @func_get_arg(4),
+ "timeout" => @func_get_arg(5),
+ "timestamp" => @func_get_arg(6),
+ "useragent" => @func_get_arg(7)
+ );
+ }
+
+ $url = $options["url"];
+ $type = isset($options["type"]) ? $options["type"] : false;
+ $login = isset($options["login"]) ? $options["login"] : false;
+ $pass = isset($options["pass"]) ? $options["pass"] : false;
+ $post_query = isset($options["post_query"]) ? $options["post_query"] : false;
+ $timeout = isset($options["timeout"]) ? $options["timeout"] : false;
+ $timestamp = isset($options["timestamp"]) ? $options["timestamp"] : 0;
+ $useragent = isset($options["useragent"]) ? $options["useragent"] : false;
+
$url = ltrim($url, ' ');
$url = str_replace(' ', '%20', $url);
}
}
+ // TODO: should this support POST requests or not? idk
+
if (!$post_query && $timestamp) {
$context = stream_context_create(array(
'http' => array(
'method' => 'GET',
+ 'timeout' => $timeout ? $timeout : FILE_FETCH_TIMEOUT,
'protocol_version'=> 1.1,
'header' => "If-Modified-Since: ".gmdate("D, d M Y H:i:s \\G\\M\\T\r\n", $timestamp)
)));
$context = stream_context_create(array(
'http' => array(
'method' => 'GET',
+ 'timeout' => $timeout ? $timeout : FILE_FETCH_TIMEOUT,
'protocol_version'=> 1.1
)));
}
return $csrf_token == $_SESSION['csrf_token'];
}
- function load_user_plugins($owner_uid) {
+ function load_user_plugins($owner_uid, $pluginhost = false) {
+
+ if (!$pluginhost) $pluginhost = PluginHost::getInstance();
+
if ($owner_uid && SCHEMA_VERSION >= 100) {
$plugins = get_pref("_ENABLED_PLUGINS", $owner_uid);
- PluginHost::getInstance()->load($plugins, PluginHost::KIND_USER, $owner_uid);
+ $pluginhost->load($plugins, PluginHost::KIND_USER, $owner_uid);
if (get_schema_version() > 100) {
- PluginHost::getInstance()->load_data();
+ $pluginhost->load_data();
}
}
}
}
}
+ // is not utf8 clean
+ function truncate_middle($str, $max_len, $suffix = '…') {
+ if (strlen($str) > $max_len) {
+ return substr_replace($str, $suffix, $max_len / 2, mb_strlen($str) - $max_len);
+ } else {
+ return $str;
+ }
+ }
+
function convert_timestamp($timestamp, $source_tz, $dest_tz) {
try {
set_basic_feed_info($feed_id);
}
- return array("code" => 1);
+ return array("code" => 1, "feed_id" => (int) $feed_id);
} else {
- return array("code" => 0);
+ return array("code" => 0, "feed_id" => (int) db_fetch_result($result, 0, "id"));
}
}