From 63855db147e6efeaa6516dc2b95598b03d1b3ad5 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 23 Nov 2010 10:30:36 +0300 Subject: rework version checking --- functions.php | 69 +++++++++++------------------------------------------------ 1 file changed, 13 insertions(+), 56 deletions(-) (limited to 'functions.php') diff --git a/functions.php b/functions.php index 99db938ba..98e4c688b 100644 --- a/functions.php +++ b/functions.php @@ -3199,15 +3199,12 @@ } } - if (CHECK_FOR_NEW_VERSION && $_SESSION["access_level"] >= 10) { - - if ($_SESSION["last_version_check"] + 86400 + rand(-1000, 1000) < time()) { + if ($_SESSION["last_version_check"] + 86400 + rand(-1000, 1000) < time()) { $new_version_details = @check_for_update($link); - $data['new_version_available'] = (int) $new_version_details != ""; + $data['new_version_available'] = (int) ($new_version_details != false); $_SESSION["last_version_check"] = time(); - } } return $data; @@ -3913,62 +3910,22 @@ } function check_for_update($link) { - $releases_feed = "http://tt-rss.org/releases.rss"; - - if (!CHECK_FOR_NEW_VERSION || $_SESSION["access_level"] < 10) { - return; - } - - if (DEFAULT_UPDATE_METHOD == "1") { - $rss = new SimplePie(); - $rss->set_useragent(SELF_USER_AGENT); - $rss->set_feed_url($fetch_url); - $rss->set_output_encoding('UTF-8'); - $rss->init(); - } else { - $rss = fetch_rss($releases_feed); - } - - if ($rss) { - - if (DEFAULT_UPDATE_METHOD == "1") { - $items = $rss->get_items(); - } else { - $items = $rss->items; - - if (!$items || !is_array($items)) $items = $rss->entries; - if (!$items || !is_array($items)) $items = $rss; - } + if (CHECK_FOR_NEW_VERSION && $_SESSION['access_level'] >= 10) { + $version_url = "http://tt-rss.org/version.php?ver=" . VERSION; - if (!is_array($items) || count($items) == 0) { - return; - } + $version_data = @fetch_file_contents($version_url); - $latest_item = $items[0]; + if ($version_data) { + $version_data = json_decode($version_data, true); + if ($version_data && $version_data['version']) { - if (DEFAULT_UPDATE_METHOD == "1") { - $last_title = $latest_item->get_title(); - } else { - $last_title = $latest_item["title"]; - } - - $latest_version = trim(preg_replace("/(Milestone)|(completed)/", "", $last_title)); - - if (DEFAULT_UPDATE_METHOD == "1") { - $release_url = sanitize_rss($link, $latest_item->get_link()); - $content = sanitize_rss($link, $latest_item->get_description()); - } else { - $release_url = sanitize_rss($link, $latest_item["link"]); - $content = sanitize_rss($link, $latest_item["description"]); + if (version_compare(VERSION, $version_data['version']) == -1) { + return $version_data['version']; + } + } } - - if (version_compare(VERSION, $latest_version) == -1) { - return sprintf("New version of Tiny-Tiny RSS (%s) is available:", - $latest_version)."
$content
"; - } else { - return false; - } } + return false; } function markArticlesById($link, $ids, $cmode) { -- cgit v1.2.3