summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2015-02-03 14:39:15 +0300
committerAndrew Dolgov <[email protected]>2015-02-03 14:39:15 +0300
commitefcc5d365db4d1b0f3a26098011319daf50e018e (patch)
tree503d6ea0a5fe577f1bb19f9fbc2727cd7128daa6
parent47cdc58c6065c997b03c311fa6c1d0ebf6b19690 (diff)
add placeholder update checker using git changesets
-rw-r--r--include/functions2.php29
-rw-r--r--include/version.php4
-rw-r--r--index.php4
-rw-r--r--js/tt-rss.js10
4 files changed, 47 insertions, 0 deletions
diff --git a/include/functions2.php b/include/functions2.php
index 4e133dde4..0207c1240 100644
--- a/include/functions2.php
+++ b/include/functions2.php
@@ -203,6 +203,26 @@
return array($prefixes, $hotkeys);
}
+ function check_for_update() {
+ if (defined("GIT_VERSION_TIMESTAMP")) {
+ $content = @fetch_file_contents("http://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"]) {
+
+ return $content["changeset"]["id"];
+ }
+ }
+ }
+ }
+
+ return false;
+ }
+
function make_runtime_info() {
$data = array();
@@ -221,6 +241,15 @@
$data['dep_ts'] = calculate_dep_timestamp();
$data['reload_on_ts_change'] = !defined('_NO_RELOAD_ON_TS_CHANGE');
+
+ if (true || $_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")) {
$data['daemon_is_running'] = (int) file_is_locked("update_daemon.lock");
diff --git a/include/version.php b/include/version.php
index a7ca8a32b..34c11e6e7 100644
--- a/include/version.php
+++ b/include/version.php
@@ -8,6 +8,10 @@
if (is_dir("$root_dir/.git") && file_exists("$root_dir/.git/refs/heads/master")) {
$suffix = substr(trim(file_get_contents("$root_dir/.git/refs/heads/master")), 0, 7);
+ $timestamp = filemtime("$root_dir/.git/refs/heads/master");
+
+ define("GIT_VERSION_HEAD", $suffix);
+ define("GIT_VERSION_TIMESTAMP", $timestamp);
return VERSION_STATIC . ".$suffix";
} else {
diff --git a/index.php b/index.php
index 309ca2e29..322635978 100644
--- a/index.php
+++ b/index.php
@@ -252,6 +252,10 @@
<?php } ?>
</div>
</div>
+
+ <button id="updatesIcon" dojoType="dijit.form.Button" style="display : none">
+ <img src="images/new_version.png" title="<?php echo __('Updates are available from Git.') ?>"/>
+ </button>
</div>
</div> <!-- toolbar -->
</div> <!-- toolbar pane -->
diff --git a/js/tt-rss.js b/js/tt-rss.js
index 26749d108..df41a9cc5 100644
--- a/js/tt-rss.js
+++ b/js/tt-rss.js
@@ -767,6 +767,16 @@ function parse_runtime_info(data) {
return;
}
+ if (k == "update_result") {
+ var updatesIcon = dijit.byId("updatesIcon").domNode;
+
+ if (v != "") {
+ Element.show(updatesIcon);
+ } else {
+ Element.hide(updatesIcon);
+ }
+ }
+
if (k == "daemon_stamp_ok" && v != 1) {
notify_error("<span onclick=\"javascript:explainError(3)\">Update daemon is not updating feeds.</span>", true);
return;