mirror of
https://git.tt-rss.org/git/tt-rss.git
synced 2025-12-14 15:55:55 +00:00
rework version checking
This commit is contained in:
@@ -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);
|
$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();
|
$_SESSION["last_version_check"] = time();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $data;
|
return $data;
|
||||||
@@ -3913,62 +3910,22 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function check_for_update($link) {
|
function check_for_update($link) {
|
||||||
$releases_feed = "http://tt-rss.org/releases.rss";
|
if (CHECK_FOR_NEW_VERSION && $_SESSION['access_level'] >= 10) {
|
||||||
|
$version_url = "http://tt-rss.org/version.php?ver=" . VERSION;
|
||||||
|
|
||||||
if (!CHECK_FOR_NEW_VERSION || $_SESSION["access_level"] < 10) {
|
$version_data = @fetch_file_contents($version_url);
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (DEFAULT_UPDATE_METHOD == "1") {
|
if ($version_data) {
|
||||||
$rss = new SimplePie();
|
$version_data = json_decode($version_data, true);
|
||||||
$rss->set_useragent(SELF_USER_AGENT);
|
if ($version_data && $version_data['version']) {
|
||||||
$rss->set_feed_url($fetch_url);
|
|
||||||
$rss->set_output_encoding('UTF-8');
|
|
||||||
$rss->init();
|
|
||||||
} else {
|
|
||||||
$rss = fetch_rss($releases_feed);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($rss) {
|
if (version_compare(VERSION, $version_data['version']) == -1) {
|
||||||
|
return $version_data['version'];
|
||||||
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 (!is_array($items) || count($items) == 0) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$latest_item = $items[0];
|
|
||||||
|
|
||||||
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, $latest_version) == -1) {
|
|
||||||
return sprintf("New version of Tiny-Tiny RSS (%s) is available:",
|
|
||||||
$latest_version)."<div class='milestoneDetails'>$content</div>";
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function markArticlesById($link, $ids, $cmode) {
|
function markArticlesById($link, $ids, $cmode) {
|
||||||
|
|||||||
@@ -217,17 +217,6 @@
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($param == 2) {
|
|
||||||
$msg = check_for_update($link);
|
|
||||||
|
|
||||||
if (!$msg) {
|
|
||||||
print __("You are running the latest version of Tiny Tiny RSS. The fact that you are seeing this dialog is probably a bug.");
|
|
||||||
} else {
|
|
||||||
print $msg;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($param == 3) {
|
if ($param == 3) {
|
||||||
print __("Update daemon is taking too long to perform a feed update. This could indicate a problem like crash or a hang. Please check the daemon process or contact instance owner.");
|
print __("Update daemon is taking too long to perform a feed update. This could indicate a problem like crash or a hang. Please check the daemon process or contact instance owner.");
|
||||||
|
|
||||||
@@ -241,7 +230,7 @@
|
|||||||
|
|
||||||
print "<div align='center'>";
|
print "<div align='center'>";
|
||||||
|
|
||||||
print "<button onclick=\"return closeInfoBox()\"".
|
print "<button onclick=\"return closeInfoBox()\">".
|
||||||
__('Close this window')."</button>";
|
__('Close this window')."</button>";
|
||||||
|
|
||||||
print "</div>";
|
print "</div>";
|
||||||
@@ -777,6 +766,26 @@
|
|||||||
//return;
|
//return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($id == "newVersion") {
|
||||||
|
$version = check_for_update($link);
|
||||||
|
|
||||||
|
$version_link = "<a class=\"visibleLink\" target=\"_blank\"
|
||||||
|
href=\"http://tt-rss.org\">http://tt-rss.org</a>";
|
||||||
|
|
||||||
|
print "<div class='tagCloudContainer'>";
|
||||||
|
|
||||||
|
print T_sprintf("New version of Tiny Tiny RSS is available (%s).<br/>Visit %s for more information.", "<b>$version</b>", $version_link);
|
||||||
|
|
||||||
|
print "</div>";
|
||||||
|
|
||||||
|
print "<div style='text-align : center'>";
|
||||||
|
print "<button dojoType=\"dijit.form.Button\"
|
||||||
|
onclick=\"return dijit.byId('newVersionDlg').hide()\">".
|
||||||
|
__('Close this window')."</button>";
|
||||||
|
print "</div>";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
print "</dlg>";
|
print "</dlg>";
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -1096,6 +1096,7 @@ div.topLinks {
|
|||||||
float : right;
|
float : right;
|
||||||
color : gray;
|
color : gray;
|
||||||
font-size : 12px;
|
font-size : 12px;
|
||||||
|
line-height : 120%;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.topLinks a {
|
div.topLinks a {
|
||||||
@@ -1646,3 +1647,10 @@ a.bookmarklet {
|
|||||||
border : 1px solid #ecf4ff;
|
border : 1px solid #ecf4ff;
|
||||||
padding : 2px;
|
padding : 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#newVersionIcon {
|
||||||
|
margin-left : 5px;
|
||||||
|
vertical-align : middle;
|
||||||
|
position : relative;
|
||||||
|
top : -1px;
|
||||||
|
}
|
||||||
|
|||||||
21
tt-rss.js
21
tt-rss.js
@@ -1107,3 +1107,24 @@ function scheduleFeedUpdate(id, is_cat) {
|
|||||||
exception_error("scheduleFeedUpdate", e);
|
exception_error("scheduleFeedUpdate", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function newVersionDlg() {
|
||||||
|
try {
|
||||||
|
var query = "backend.php?op=dlg&id=newVersion";
|
||||||
|
|
||||||
|
if (dijit.byId("newVersionDlg"))
|
||||||
|
dijit.byId("newVersionDlg").destroyRecursive();
|
||||||
|
|
||||||
|
dialog = new dijit.Dialog({
|
||||||
|
id: "newVersionDlg",
|
||||||
|
title: __("New version available!"),
|
||||||
|
style: "width: 600px",
|
||||||
|
href: query,
|
||||||
|
});
|
||||||
|
|
||||||
|
dialog.show();
|
||||||
|
|
||||||
|
} catch (e) {
|
||||||
|
exception_error("newVersionDlg", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -107,7 +107,7 @@
|
|||||||
| <a href="logout.php"><?php echo __('Logout') ?></a>
|
| <a href="logout.php"><?php echo __('Logout') ?></a>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
|
|
||||||
<img id="newVersionIcon" style="display:none;" onclick="javascript:explainError(2)"
|
<img id="newVersionIcon" style="display:none;" onclick="newVersionDlg()"
|
||||||
width="13" height="13"
|
width="13" height="13"
|
||||||
src="<?php echo theme_image($link, 'images/new_version.png') ?>"
|
src="<?php echo theme_image($link, 'images/new_version.png') ?>"
|
||||||
title="<?php echo __('New version of Tiny Tiny RSS is available!') ?>"
|
title="<?php echo __('New version of Tiny Tiny RSS is available!') ?>"
|
||||||
|
|||||||
Reference in New Issue
Block a user