rework git update checking to be initiated by frontend, outside of runtime info output
This commit is contained in:
parent
c3b8b6a2a1
commit
957c44d177
|
@ -324,7 +324,7 @@ class RPC extends Handler_Protected {
|
||||||
|
|
||||||
if ($reply['error']['code'] == 0) {
|
if ($reply['error']['code'] == 0) {
|
||||||
$reply['init-params'] = make_init_params();
|
$reply['init-params'] = make_init_params();
|
||||||
$reply['runtime-info'] = make_runtime_info(true);
|
$reply['runtime-info'] = make_runtime_info();
|
||||||
}
|
}
|
||||||
|
|
||||||
print json_encode($reply);
|
print json_encode($reply);
|
||||||
|
@ -597,4 +597,27 @@ class RPC extends Handler_Protected {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function checkforupdates() {
|
||||||
|
$rv = [];
|
||||||
|
|
||||||
|
if (CHECK_FOR_UPDATES && defined("GIT_VERSION_TIMESTAMP")) {
|
||||||
|
$content = @fetch_file_contents(["url" => "https://tt-rss.org/version.json"]);
|
||||||
|
|
||||||
|
if ($content) {
|
||||||
|
$content = json_decode($content, true);
|
||||||
|
|
||||||
|
if ($content && isset($content["changeset"])) {
|
||||||
|
if ((int)GIT_VERSION_TIMESTAMP < (int)$content["changeset"]["timestamp"] &&
|
||||||
|
GIT_VERSION_HEAD != $content["changeset"]["id"]) {
|
||||||
|
|
||||||
|
$rv = $content["changeset"];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print json_encode($rv);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -679,8 +679,6 @@
|
||||||
$_SESSION["user_agent"] = sha1($_SERVER['HTTP_USER_AGENT']);
|
$_SESSION["user_agent"] = sha1($_SERVER['HTTP_USER_AGENT']);
|
||||||
$_SESSION["pwd_hash"] = $row["pwd_hash"];
|
$_SESSION["pwd_hash"] = $row["pwd_hash"];
|
||||||
|
|
||||||
$_SESSION["last_version_check"] = time();
|
|
||||||
|
|
||||||
initialize_user_prefs($_SESSION["uid"]);
|
initialize_user_prefs($_SESSION["uid"]);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -1068,6 +1066,7 @@
|
||||||
$params[strtolower($param)] = (int) get_pref($param);
|
$params[strtolower($param)] = (int) get_pref($param);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$params["check_for_updates"] = CHECK_FOR_UPDATES;
|
||||||
$params["icons_url"] = ICONS_URL;
|
$params["icons_url"] = ICONS_URL;
|
||||||
$params["cookie_lifetime"] = SESSION_COOKIE_LIFETIME;
|
$params["cookie_lifetime"] = SESSION_COOKIE_LIFETIME;
|
||||||
$params["default_view_mode"] = get_pref("_DEFAULT_VIEW_MODE");
|
$params["default_view_mode"] = get_pref("_DEFAULT_VIEW_MODE");
|
||||||
|
@ -1270,27 +1269,7 @@
|
||||||
return array($prefixes, $hotkeys);
|
return array($prefixes, $hotkeys);
|
||||||
}
|
}
|
||||||
|
|
||||||
function check_for_update() {
|
function make_runtime_info() {
|
||||||
if (defined("GIT_VERSION_TIMESTAMP")) {
|
|
||||||
$content = @fetch_file_contents(array("url" => "http://tt-rss.org/version.json", "timeout" => 5));
|
|
||||||
|
|
||||||
if ($content) {
|
|
||||||
$content = json_decode($content, true);
|
|
||||||
|
|
||||||
if ($content && isset($content["changeset"])) {
|
|
||||||
if ((int)GIT_VERSION_TIMESTAMP < (int)$content["changeset"]["timestamp"] &&
|
|
||||||
GIT_VERSION_HEAD != $content["changeset"]["id"]) {
|
|
||||||
|
|
||||||
return $content["changeset"]["id"];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
function make_runtime_info($disable_update_check = false) {
|
|
||||||
$data = array();
|
$data = array();
|
||||||
|
|
||||||
$pdo = Db::pdo();
|
$pdo = Db::pdo();
|
||||||
|
@ -1323,14 +1302,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CHECK_FOR_UPDATES && !$disable_update_check && $_SESSION["last_version_check"] + 86400 + rand(-1000, 1000) < time()) {
|
|
||||||
$update_result = @check_for_update();
|
|
||||||
|
|
||||||
$data["update_result"] = $update_result;
|
|
||||||
|
|
||||||
$_SESSION["last_version_check"] = time();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (file_exists(LOCK_DIRECTORY . "/update_daemon.lock")) {
|
if (file_exists(LOCK_DIRECTORY . "/update_daemon.lock")) {
|
||||||
|
|
||||||
$data['daemon_is_running'] = (int) file_is_locked("update_daemon.lock");
|
$data['daemon_is_running'] = (int) file_is_locked("update_daemon.lock");
|
||||||
|
|
|
@ -262,14 +262,6 @@ define(["dojo/_base/declare"], function (declare) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (k == "update_result") {
|
|
||||||
if (v) {
|
|
||||||
Element.show("updates-available");
|
|
||||||
} else {
|
|
||||||
Element.hide("updates-available");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (k == "recent_log_events") {
|
if (k == "recent_log_events") {
|
||||||
const alert = $$(".log-alert")[0];
|
const alert = $$(".log-alert")[0];
|
||||||
|
|
||||||
|
|
20
js/tt-rss.js
20
js/tt-rss.js
|
@ -163,11 +163,31 @@ require(["dojo/_base/kernel",
|
||||||
window.setInterval(() => { Feeds.updateRandom() }, 30 * 1000);
|
window.setInterval(() => { Feeds.updateRandom() }, 30 * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (App.getInitParam('check_for_updates')) {
|
||||||
|
window.setInterval(() => {
|
||||||
|
App.checkForUpdates();
|
||||||
|
}, 3600 * 1000);
|
||||||
|
}
|
||||||
|
|
||||||
console.log("second stage ok");
|
console.log("second stage ok");
|
||||||
|
|
||||||
PluginHost.run(PluginHost.HOOK_INIT_COMPLETE, null);
|
PluginHost.run(PluginHost.HOOK_INIT_COMPLETE, null);
|
||||||
|
|
||||||
},
|
},
|
||||||
|
checkForUpdates: function() {
|
||||||
|
console.log('checking for updates...');
|
||||||
|
|
||||||
|
xhrJson("backend.php", {op: 'rpc', method: 'checkforupdates'})
|
||||||
|
.then((reply) => {
|
||||||
|
console.log('update reply', reply);
|
||||||
|
|
||||||
|
if (reply.id) {
|
||||||
|
$("updates-available").show();
|
||||||
|
} else {
|
||||||
|
$("updates-available").hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
updateTitle: function() {
|
updateTitle: function() {
|
||||||
let tmp = "Tiny Tiny RSS";
|
let tmp = "Tiny Tiny RSS";
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue