summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2020-09-25 10:04:09 +0300
committerAndrew Dolgov <[email protected]>2020-09-25 10:04:09 +0300
commite993d4feb2e90600f5c896f1e3508f7f95e81c84 (patch)
tree3f3cf10fbf124c49b61bf81fef5f82caa5db2068 /classes
parent71e9f70b8a5fa128204eb4a47c06639206824500 (diff)
parentd0ed7890df949669261f52235151c93cf324714e (diff)
Merge branch 'master' of git.fakecake.org:tt-rss
Diffstat (limited to 'classes')
-rw-r--r--classes/counters.php2
-rw-r--r--classes/digest.php4
-rwxr-xr-xclasses/feeds.php14
-rwxr-xr-xclasses/handler/public.php2
-rwxr-xr-xclasses/pref/feeds.php8
-rwxr-xr-xclasses/pref/filters.php2
-rw-r--r--classes/pref/prefs.php4
-rw-r--r--classes/pref/system.php7
-rw-r--r--classes/pref/users.php8
-rwxr-xr-xclasses/rpc.php2
-rw-r--r--classes/timehelper.php88
11 files changed, 113 insertions, 28 deletions
diff --git a/classes/counters.php b/classes/counters.php
index 4d37e407b..be634c52a 100644
--- a/classes/counters.php
+++ b/classes/counters.php
@@ -112,7 +112,7 @@ class Counters {
$id = $line["id"];
$last_error = htmlspecialchars($line["last_error"]);
- $last_updated = make_local_datetime($line['last_updated'], false);
+ $last_updated = TimeHelper::make_local_datetime($line['last_updated'], false);
if (Feeds::feedHasIcon($id)) {
$has_img = filemtime(Feeds::getIconFile($id));
diff --git a/classes/digest.php b/classes/digest.php
index 9101b52f4..5128b4186 100644
--- a/classes/digest.php
+++ b/classes/digest.php
@@ -97,7 +97,7 @@ class Digest
$tpl_t->readTemplateFromFile("digest_template.txt");
$user_tz_string = get_pref('USER_TIMEZONE', $user_id);
- $local_ts = convert_timestamp(time(), 'UTC', $user_tz_string);
+ $local_ts = TimeHelper::convert_timestamp(time(), 'UTC', $user_tz_string);
$tpl->setVariable('CUR_DATE', date('Y/m/d', $local_ts));
$tpl->setVariable('CUR_TIME', date('G:i', $local_ts));
@@ -159,7 +159,7 @@ class Digest
array_push($affected_ids, $line["ref_id"]);
- $updated = make_local_datetime($line['last_updated'], false,
+ $updated = TimeHelper::make_local_datetime($line['last_updated'], false,
$user_id);
if (get_pref('ENABLE_FEED_CATS', $user_id)) {
diff --git a/classes/feeds.php b/classes/feeds.php
index f6e86f143..2d41be2e1 100755
--- a/classes/feeds.php
+++ b/classes/feeds.php
@@ -211,7 +211,7 @@ class Feeds extends Handler_Protected {
$feed_site_url = $qfh_ret[2];
$last_error = $qfh_ret[3];
$last_updated = strpos($qfh_ret[4], '1970-') === false ?
- make_local_datetime($qfh_ret[4], false) : __("Never");
+ TimeHelper::make_local_datetime($qfh_ret[4], false) : __("Never");
$highlight_words = $qfh_ret[5];
$reply['first_id'] = $qfh_ret[6];
$reply['is_vfeed'] = $qfh_ret[7];
@@ -343,12 +343,12 @@ class Feeds extends Handler_Protected {
}
}
- $line["updated_long"] = make_local_datetime($line["updated"],true);
- $line["updated"] = make_local_datetime($line["updated"], false, false, false, true);
+ $line["updated_long"] = TimeHelper::make_local_datetime($line["updated"],true);
+ $line["updated"] = TimeHelper::make_local_datetime($line["updated"], false, false, false, true);
$line['imported'] = T_sprintf("Imported at %s",
- make_local_datetime($line["date_entered"], false));
+ TimeHelper::make_local_datetime($line["date_entered"], false));
if ($line["tag_cache"])
$tags = explode(",", $line["tag_cache"]);
@@ -426,7 +426,7 @@ class Feeds extends Handler_Protected {
$sth->execute([$_SESSION['uid']]);
$row = $sth->fetch();
- $last_updated = make_local_datetime($row["last_updated"], false);
+ $last_updated = TimeHelper::make_local_datetime($row["last_updated"], false);
$reply['content'] .= sprintf(__("Feeds last updated at %s"), $last_updated);
@@ -580,7 +580,7 @@ class Feeds extends Handler_Protected {
$sth->execute([$_SESSION['uid']]);
$row = $sth->fetch();
- $last_updated = make_local_datetime($row["last_updated"], false);
+ $last_updated = TimeHelper::make_local_datetime($row["last_updated"], false);
$reply['headlines']['content'] .= sprintf(__("Feeds last updated at %s"), $last_updated);
@@ -2239,7 +2239,7 @@ class Feeds extends Handler_Protected {
$user_tz_string = get_pref('USER_TIMEZONE', $_SESSION['uid']);
$orig_ts = strtotime(substr($k, 1));
- $k = date("Y-m-d", convert_timestamp($orig_ts, $user_tz_string, 'UTC'));
+ $k = date("Y-m-d", TimeHelper::convert_timestamp($orig_ts, $user_tz_string, 'UTC'));
//$k = date("Y-m-d", strtotime(substr($k, 1)));
diff --git a/classes/handler/public.php b/classes/handler/public.php
index 9671b18b2..4bd9c06f9 100755
--- a/classes/handler/public.php
+++ b/classes/handler/public.php
@@ -414,7 +414,7 @@ class Handler_Public extends Handler {
$rv .= "<div class='row'>"; # row
//$entry_author = $line["author"] ? " - " . $line["author"] : "";
- $parsed_updated = make_local_datetime($line["updated"], true,
+ $parsed_updated = TimeHelper::make_local_datetime($line["updated"], true,
$owner_uid, true);
$rv .= "<div>".$line['author']."</div>";
diff --git a/classes/pref/feeds.php b/classes/pref/feeds.php
index d7220f9ae..8b9099007 100755
--- a/classes/pref/feeds.php
+++ b/classes/pref/feeds.php
@@ -101,7 +101,7 @@ class Pref_Feeds extends Handler_Protected {
$feed['unread'] = -1;
$feed['error'] = $feed_line['last_error'];
$feed['icon'] = Feeds::getFeedIcon($feed_line['id']);
- $feed['param'] = make_local_datetime(
+ $feed['param'] = TimeHelper::make_local_datetime(
$feed_line['last_updated'], true);
$feed['updates_disabled'] = (int)($feed_line['update_interval'] < 0);
@@ -268,7 +268,7 @@ class Pref_Feeds extends Handler_Protected {
$feed['checkbox'] = false;
$feed['error'] = $feed_line['last_error'];
$feed['icon'] = Feeds::getFeedIcon($feed_line['id']);
- $feed['param'] = make_local_datetime(
+ $feed['param'] = TimeHelper::make_local_datetime(
$feed_line['last_updated'], true);
$feed['unread'] = -1;
$feed['type'] = 'feed';
@@ -303,7 +303,7 @@ class Pref_Feeds extends Handler_Protected {
$feed['checkbox'] = false;
$feed['error'] = $feed_line['last_error'];
$feed['icon'] = Feeds::getFeedIcon($feed_line['id']);
- $feed['param'] = make_local_datetime(
+ $feed['param'] = TimeHelper::make_local_datetime(
$feed_line['last_updated'], true);
$feed['unread'] = -1;
$feed['type'] = 'feed';
@@ -1478,7 +1478,7 @@ class Pref_Feeds extends Handler_Protected {
htmlspecialchars($line["title"])."</a>";
print "</td><td class='text-muted' align='right'>";
- print make_local_datetime($line['last_article'], false);
+ print TimeHelper::make_local_datetime($line['last_article'], false);
print "</td>";
print "</tr>";
diff --git a/classes/pref/filters.php b/classes/pref/filters.php
index 6121e4c14..1113f251e 100755
--- a/classes/pref/filters.php
+++ b/classes/pref/filters.php
@@ -302,7 +302,7 @@ class Pref_Filters extends Handler_Protected {
$filter['name'] = $name[0];
$filter['param'] = $name[1];
$filter['checkbox'] = false;
- $filter['last_triggered'] = $line["last_triggered"] ? make_local_datetime($line["last_triggered"], false) : null;
+ $filter['last_triggered'] = $line["last_triggered"] ? TimeHelper::make_local_datetime($line["last_triggered"], false) : null;
$filter['enabled'] = sql_bool_to_bool($line["enabled"]);
$filter['rules'] = $this->getfilterrules_list($line['id']);
diff --git a/classes/pref/prefs.php b/classes/pref/prefs.php
index f825454dd..d7b486cbb 100644
--- a/classes/pref/prefs.php
+++ b/classes/pref/prefs.php
@@ -1320,11 +1320,11 @@ class Pref_Prefs extends Handler_Protected {
print "<td>" . htmlspecialchars($row["title"]) . "</td>";
print "<td align='right' class='text-muted'>";
- print make_local_datetime($row['created'], false);
+ print TimeHelper::make_local_datetime($row['created'], false);
print "</td>";
print "<td align='right' class='text-muted'>";
- print make_local_datetime($row['last_used'], false);
+ print TimeHelper::make_local_datetime($row['last_used'], false);
print "</td>";
print "</tr>";
diff --git a/classes/pref/system.php b/classes/pref/system.php
index d0f8a8273..7e9aa44a1 100644
--- a/classes/pref/system.php
+++ b/classes/pref/system.php
@@ -26,7 +26,7 @@ class Pref_System extends Handler_Protected {
function index() {
print "<div dojoType=\"dijit.layout.AccordionContainer\" region=\"center\">";
- print "<div dojoType=\"dijit.layout.AccordionPane\"
+ print "<div dojoType=\"dijit.layout.AccordionPane\"
title=\"<i class='material-icons'>report</i> ".__('Event Log')."\">";
if (LOG_DESTINATION == "sql") {
@@ -66,8 +66,7 @@ class Pref_System extends Handler_Protected {
print "<td class='login'>" . $line["login"] . "</td>";
print "<td class='timestamp'>" .
- make_local_datetime(
- $line["created_at"], false) . "</td>";
+ TimeHelper::make_local_datetime($line["created_at"], false) . "</td>";
print "</tr>";
}
@@ -81,7 +80,7 @@ class Pref_System extends Handler_Protected {
print "</div>";
- print "<div dojoType=\"dijit.layout.AccordionPane\"
+ print "<div dojoType=\"dijit.layout.AccordionPane\"
title=\"<i class='material-icons'>info</i> ".__('PHP Information')."\">";
ob_start();
diff --git a/classes/pref/users.php b/classes/pref/users.php
index fd307f7ec..5ec7aa2e6 100644
--- a/classes/pref/users.php
+++ b/classes/pref/users.php
@@ -137,10 +137,10 @@ class Pref_Users extends Handler_Protected {
if ($row = $sth->fetch()) {
print "<table width='100%'>";
- $last_login = make_local_datetime(
+ $last_login = TimeHelper::make_local_datetime(
$row["last_login"], true);
- $created = make_local_datetime(
+ $created = TimeHelper::make_local_datetime(
$row["created"], true);
$stored_articles = $row["stored_articles"];
@@ -399,8 +399,8 @@ class Pref_Users extends Handler_Protected {
print "<tr data-row-id='$uid' onclick='Users.edit($uid)'>";
$line["login"] = htmlspecialchars($line["login"]);
- $line["created"] = make_local_datetime($line["created"], false);
- $line["last_login"] = make_local_datetime($line["last_login"], false);
+ $line["created"] = TimeHelper::make_local_datetime($line["created"], false);
+ $line["last_login"] = TimeHelper::make_local_datetime($line["last_login"], false);
print "<td align='center'><input onclick='Tables.onRowChecked(this); event.stopPropagation();'
dojoType='dijit.form.CheckBox' type='checkbox'></td>";
diff --git a/classes/rpc.php b/classes/rpc.php
index b5cbbbcea..59a119ed7 100755
--- a/classes/rpc.php
+++ b/classes/rpc.php
@@ -647,8 +647,6 @@ class RPC extends Handler_Protected {
$params["php_platform"] = PHP_OS;
$params["php_version"] = PHP_VERSION;
- $params["sanity_checksum"] = sha1(file_get_contents("include/sanity_check.php"));
-
$pdo = Db::pdo();
$sth = $pdo->prepare("SELECT MAX(id) AS mid, COUNT(*) AS nf FROM
diff --git a/classes/timehelper.php b/classes/timehelper.php
new file mode 100644
index 000000000..ce9e35f3e
--- /dev/null
+++ b/classes/timehelper.php
@@ -0,0 +1,88 @@
+<?php
+class TimeHelper {
+
+ static function smart_date_time($timestamp, $tz_offset = 0, $owner_uid = false, $eta_min = false) {
+ if (!$owner_uid) $owner_uid = $_SESSION['uid'];
+
+ if ($eta_min && time() + $tz_offset - $timestamp < 3600) {
+ return T_sprintf("%d min", date("i", time() + $tz_offset - $timestamp));
+ } else if (date("Y.m.d", $timestamp) == date("Y.m.d", time() + $tz_offset)) {
+ $format = get_pref('SHORT_DATE_FORMAT', $owner_uid);
+ if (strpos((strtolower($format)), "a") === false)
+ return date("G:i", $timestamp);
+ else
+ return date("g:i a", $timestamp);
+ } else if (date("Y", $timestamp) == date("Y", time() + $tz_offset)) {
+ $format = get_pref('SHORT_DATE_FORMAT', $owner_uid);
+ return date($format, $timestamp);
+ } else {
+ $format = get_pref('LONG_DATE_FORMAT', $owner_uid);
+ return date($format, $timestamp);
+ }
+ }
+
+ static function make_local_datetime($timestamp, $long, $owner_uid = false,
+ $no_smart_dt = false, $eta_min = false) {
+
+ if (!$owner_uid) $owner_uid = $_SESSION['uid'];
+ if (!$timestamp) $timestamp = '1970-01-01 0:00';
+
+ global $utc_tz;
+ global $user_tz;
+
+ if (!$utc_tz) $utc_tz = new DateTimeZone('UTC');
+
+ $timestamp = substr($timestamp, 0, 19);
+
+ # We store date in UTC internally
+ $dt = new DateTime($timestamp, $utc_tz);
+
+ $user_tz_string = get_pref('USER_TIMEZONE', $owner_uid);
+
+ if ($user_tz_string != 'Automatic') {
+
+ try {
+ if (!$user_tz) $user_tz = new DateTimeZone($user_tz_string);
+ } catch (Exception $e) {
+ $user_tz = $utc_tz;
+ }
+
+ $tz_offset = $user_tz->getOffset($dt);
+ } else {
+ $tz_offset = (int) -$_SESSION["clientTzOffset"];
+ }
+
+ $user_timestamp = $dt->format('U') + $tz_offset;
+
+ if (!$no_smart_dt) {
+ return self::smart_date_time($user_timestamp,
+ $tz_offset, $owner_uid, $eta_min);
+ } else {
+ if ($long)
+ $format = get_pref('LONG_DATE_FORMAT', $owner_uid);
+ else
+ $format = get_pref('SHORT_DATE_FORMAT', $owner_uid);
+
+ return date($format, $user_timestamp);
+ }
+ }
+
+ static function convert_timestamp($timestamp, $source_tz, $dest_tz) {
+
+ try {
+ $source_tz = new DateTimeZone($source_tz);
+ } catch (Exception $e) {
+ $source_tz = new DateTimeZone('UTC');
+ }
+
+ try {
+ $dest_tz = new DateTimeZone($dest_tz);
+ } catch (Exception $e) {
+ $dest_tz = new DateTimeZone('UTC');
+ }
+
+ $dt = new DateTime(date('Y-m-d H:i:s', $timestamp), $source_tz);
+ return $dt->format('U') + $dest_tz->getOffset($dt);
+ }
+
+}