about summary refs log tree commit diff stats
path: root/src/config
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2015-09-25 00:26:58 +0100
committerJames Booth <boothj5@gmail.com>2015-09-25 00:26:58 +0100
commitb484411ea8d94349c2879f09f48d907dbdaf72c9 (patch)
tree7598ecd667dfff306cb1c499f1efe6a7a9cabe6b /src/config
parent4257ecb1c50a00da2b40e018e1eb2dfa1a8d4a1b (diff)
downloadprofani-tty-b484411ea8d94349c2879f09f48d907dbdaf72c9.tar.gz
Save last activity to account on disconnect
Diffstat (limited to 'src/config')
-rw-r--r--src/config/accounts.c17
-rw-r--r--src/config/accounts.h1
2 files changed, 18 insertions, 0 deletions
diff --git a/src/config/accounts.c b/src/config/accounts.c
index a827392b..d43cc3a3 100644
--- a/src/config/accounts.c
+++ b/src/config/accounts.c
@@ -762,6 +762,23 @@ accounts_set_last_presence(const char * const account_name, const char * const v
 }
 
 void
+accounts_set_last_activity(const char * const account_name)
+{
+    if (accounts_account_exists(account_name)) {
+        GDateTime *nowdt = g_date_time_new_now_utc();
+        GTimeVal nowtv;
+        gboolean res = g_date_time_to_timeval(nowdt, &nowtv);
+        g_date_time_unref(nowdt);
+
+        if (res) {
+            char *timestr = g_time_val_to_iso8601(&nowtv);
+            g_key_file_set_string(accounts, account_name, "last.activity", timestr);
+            _save_accounts();
+        }
+    }
+}
+
+void
 accounts_set_login_presence(const char * const account_name, const char * const value)
 {
     if (accounts_account_exists(account_name)) {
diff --git a/src/config/accounts.h b/src/config/accounts.h
index eb981cb8..65106365 100644
--- a/src/config/accounts.h
+++ b/src/config/accounts.h
@@ -66,6 +66,7 @@ void accounts_set_muc_service(const char * const account_name, const char * cons
 void accounts_set_muc_nick(const char * const account_name, const char * const value);
 void accounts_set_otr_policy(const char * const account_name, const char * const value);
 void accounts_set_last_presence(const char * const account_name, const char * const value);
+void accounts_set_last_activity(const char * const account_name);
 void accounts_set_login_presence(const char * const account_name, const char * const value);
 resource_presence_t accounts_get_login_presence(const char * const account_name);
 resource_presence_t accounts_get_last_presence(const char * const account_name);