]> git.wh0rd.org - tt-rss.git/blobdiff - include/functions.php
speedup feed subscription process
[tt-rss.git] / include / functions.php
index 940a85fd08de1692a8bcbd56a3b425c526882627..edc196f314baeafae610d520a13ce2dae1629e16 100644 (file)
@@ -1,6 +1,6 @@
 <?php
        define('EXPECTED_CONFIG_VERSION', 26);
-       define('SCHEMA_VERSION', 125);
+       define('SCHEMA_VERSION', 127);
 
        define('LABEL_BASE_INDEX', -1024);
        define('PLUGIN_FEED_BASE_INDEX', -128);
        $fetch_last_error = false;
        $fetch_last_error_code = false;
        $fetch_last_content_type = false;
+       $fetch_last_error_content = false; // curl only for the time being
        $fetch_curl_used = false;
        $suppress_debugging = false;
 
+       libxml_disable_entity_loader(true);
+
        mb_internal_encoding("UTF-8");
        date_default_timezone_set('UTC');
        if (defined('E_DEPRECATED')) {
        function get_translations() {
                $tr = array(
                                        "auto"  => "Detect automatically",
+                                       "ar_SA" => "العربيّة (Arabic)",
+                                       "bg_BG" => "Bulgarian",
                                        "da_DA" => "Dansk",
                                        "ca_CA" => "Català",
                                        "cs_CZ" => "Česky",
                                        "en_US" => "English",
                                        "el_GR" => "Ελληνικά",
-                                       "es_ES" => "Españo (Españal",
+                                       "es_ES" => "Español (España)",
                                        "es_LA" => "Español",
                                        "de_DE" => "Deutsch",
                                        "fr_FR" => "Français",
 
                global $fetch_last_error;
                global $fetch_last_error_code;
+               global $fetch_last_error_content;
                global $fetch_last_content_type;
                global $fetch_curl_used;
 
+               $url = ltrim($url, ' ');
                $url = str_replace(' ', '%20', $url);
 
+               if (strpos($url, "//") === 0)
+                       $url = 'http:' . $url;
+
                if (!defined('NO_CURL') && function_exists('curl_init')) {
 
                        $fetch_curl_used = true;
 
-                       if (ini_get("safe_mode") || ini_get("open_basedir")) {
+                       if (ini_get("safe_mode") || ini_get("open_basedir") || defined("FORCE_GETURL")) {
                                $new_url = geturl($url);
                                if (!$new_url) {
                                    // geturl has already populated $fetch_last_error
                                curl_setopt($ch, CURLOPT_POSTFIELDS, $post_query);
                        }
 
-                       if ((OPENSSL_VERSION_NUMBER >= 0x0090808f) && (OPENSSL_VERSION_NUMBER < 0x10000000)) {
-                               curl_setopt($ch, CURLOPT_SSLVERSION, 3);
-                       }
-
                        if ($login && $pass)
                                curl_setopt($ch, CURLOPT_USERPWD, "$login:$pass");
 
                                } else {
                                        $fetch_last_error = "HTTP Code: $http_code";
                                }
+                               $fetch_last_error_content = $contents;
                                curl_close($ch);
                                return false;
                        }
 
        function initialize_user($uid) {
 
-               db_query("insert into ttrss_feeds (owner_uid,title,feed_url)
-                       values ('$uid', 'Tiny Tiny RSS: New Releases',
-                       'http://tt-rss.org/releases.rss')");
-
                db_query("insert into ttrss_feeds (owner_uid,title,feed_url)
                        values ('$uid', 'Tiny Tiny RSS: Forum',
                                'http://tt-rss.org/forum/rss.php')");
                                                        SET unread = false, last_read = NOW() WHERE ref_id IN
                                                                (SELECT id FROM
                                                                        (SELECT id FROM ttrss_entries, ttrss_user_entries WHERE ref_id = id
-                                                                               AND owner_uid = $owner_uid AND unread = true AND $date_qpart AND $match_part) as tmp)");
+                                                                               AND owner_uid = $owner_uid AND score >= 0 AND unread = true AND $date_qpart AND $match_part) as tmp)");
                                        }
 
                                        if ($feed == -4) {
                        $url = key($feedUrls);
                }
 
-               /* libxml_use_internal_errors(true);
-               $doc = new DOMDocument();
-               $doc->loadXML($contents);
-               $error = libxml_get_last_error();
-               libxml_clear_errors();
-
-               if ($error) {
-                       $error_message = format_libxml_error($error);
-
-                       return array("code" => 6, "message" => $error_message);
-               } */
-
                if ($cat_id == "0" || !$cat_id) {
                        $cat_qpart = "NULL";
                } else {
                        $feed_id = db_fetch_result($result, 0, "id");
 
                        if ($feed_id) {
-                               update_rss_feed($feed_id, true);
+                               set_basic_feed_info($feed_id);
                        }
 
                        return array("code" => 1);
        function getFeedTitle($id, $cat = false) {
                if ($cat) {
                        return getCategoryTitle($id);
-               } else if ($id == 0) {
-                       return __("All feeds");
                } else if ($id == -1) {
                        return __("Starred articles");
                } else if ($id == -2) {