diff options
author | James Booth <boothj5@gmail.com> | 2015-09-25 00:26:58 +0100 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2015-09-25 00:26:58 +0100 |
commit | b484411ea8d94349c2879f09f48d907dbdaf72c9 (patch) | |
tree | 7598ecd667dfff306cb1c499f1efe6a7a9cabe6b /src/config | |
parent | 4257ecb1c50a00da2b40e018e1eb2dfa1a8d4a1b (diff) | |
download | profani-tty-b484411ea8d94349c2879f09f48d907dbdaf72c9.tar.gz |
Save last activity to account on disconnect
Diffstat (limited to 'src/config')
-rw-r--r-- | src/config/accounts.c | 17 | ||||
-rw-r--r-- | src/config/accounts.h | 1 |
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); |