1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-12-04 14:46:46 -05:00

Reduce copy-paste in sv_ev_roster_received()

This commit is contained in:
Dmitry Podgorny 2021-07-17 18:12:42 +03:00
parent e7b6051e57
commit afdae6ac02

View File

@ -168,8 +168,9 @@ sv_ev_roster_received(void)
resource_presence_t conn_presence = accounts_get_login_presence(account_name); resource_presence_t conn_presence = accounts_get_login_presence(account_name);
char* last_activity_str = accounts_get_last_activity(account_name); char* last_activity_str = accounts_get_last_activity(account_name);
char* status_message = accounts_get_login_status(account_name); char* status_message = accounts_get_login_status(account_name);
if (prefs_get_boolean(PREF_LASTACTIVITY) && last_activity_str) { int diff_secs = 0;
if (prefs_get_boolean(PREF_LASTACTIVITY) && last_activity_str) {
GTimeVal lasttv; GTimeVal lasttv;
GDateTime* nowdt = g_date_time_new_now_utc(); GDateTime* nowdt = g_date_time_new_now_utc();
gboolean res = g_time_val_from_iso8601(last_activity_str, &lasttv); gboolean res = g_time_val_from_iso8601(last_activity_str, &lasttv);
@ -177,21 +178,14 @@ sv_ev_roster_received(void)
if (res) { if (res) {
GDateTime* lastdt = g_date_time_new_from_timeval_utc(&lasttv); GDateTime* lastdt = g_date_time_new_from_timeval_utc(&lasttv);
GTimeSpan diff_micros = g_date_time_difference(nowdt, lastdt); GTimeSpan diff_micros = g_date_time_difference(nowdt, lastdt);
int diff_secs = (diff_micros / 1000) / 1000;
connection_set_presence_msg(status_message);
cl_ev_presence_send(conn_presence, diff_secs);
diff_secs = (diff_micros / 1000) / 1000;
g_date_time_unref(lastdt); g_date_time_unref(lastdt);
} else {
connection_set_presence_msg(status_message);
cl_ev_presence_send(conn_presence, 0);
} }
g_date_time_unref(nowdt); g_date_time_unref(nowdt);
} else {
connection_set_presence_msg(status_message);
cl_ev_presence_send(conn_presence, 0);
} }
connection_set_presence_msg(status_message);
cl_ev_presence_send(conn_presence, diff_secs);
g_free(status_message); g_free(status_message);
g_free(last_activity_str); g_free(last_activity_str);