comparison libpurple/status.c @ 17646:27ee01859e9a

disapproval of revision '882bec7b9240768133433a448e9ff4e31e130832'
author Richard Laager <rlaager@wiktel.com>
date Sat, 02 Jun 2007 04:34:56 +0000
parents 3f11fad07eda
children 7b8725f898b3
comparison
equal deleted inserted replaced
17645:3f11fad07eda 17646:27ee01859e9a
1273 1273
1274 void 1274 void
1275 purple_presence_set_idle(PurplePresence *presence, gboolean idle, time_t idle_time) 1275 purple_presence_set_idle(PurplePresence *presence, gboolean idle, time_t idle_time)
1276 { 1276 {
1277 gboolean old_idle; 1277 gboolean old_idle;
1278 time_t current_time;
1279 1278
1280 g_return_if_fail(presence != NULL); 1279 g_return_if_fail(presence != NULL);
1281 1280
1282 if (presence->idle == idle && presence->idle_time == idle_time) 1281 if (presence->idle == idle && presence->idle_time == idle_time)
1283 return; 1282 return;
1284 1283
1285 old_idle = presence->idle; 1284 old_idle = presence->idle;
1286 presence->idle = idle; 1285 presence->idle = idle;
1287 presence->idle_time = (idle ? idle_time : 0); 1286 presence->idle_time = (idle ? idle_time : 0);
1288 1287
1289 current_time = time(NULL);
1290
1291 if (purple_presence_get_context(presence) == PURPLE_PRESENCE_CONTEXT_BUDDY) 1288 if (purple_presence_get_context(presence) == PURPLE_PRESENCE_CONTEXT_BUDDY)
1292 { 1289 {
1290 time_t current_time = time(NULL);
1291
1293 update_buddy_idle(purple_presence_get_buddy(presence), presence, current_time, 1292 update_buddy_idle(purple_presence_get_buddy(presence), presence, current_time,
1294 old_idle, idle); 1293 old_idle, idle);
1295 } 1294 }
1296 else if (purple_presence_get_context(presence) == PURPLE_PRESENCE_CONTEXT_ACCOUNT) 1295 else if(purple_presence_get_context(presence) == PURPLE_PRESENCE_CONTEXT_ACCOUNT)
1297 { 1296 {
1298 PurpleAccount *account; 1297 PurpleAccount *account;
1299 PurpleConnection *gc; 1298 PurpleConnection *gc;
1300 PurplePluginProtocolInfo *prpl_info = NULL; 1299 PurplePluginProtocolInfo *prpl_info = NULL;
1301 1300
1311 1310
1312 if (idle) 1311 if (idle)
1313 msg = g_strdup_printf(_("+++ %s became idle"), purple_account_get_username(account)); 1312 msg = g_strdup_printf(_("+++ %s became idle"), purple_account_get_username(account));
1314 else 1313 else
1315 msg = g_strdup_printf(_("+++ %s became unidle"), purple_account_get_username(account)); 1314 msg = g_strdup_printf(_("+++ %s became unidle"), purple_account_get_username(account));
1316
1317 purple_log_write(log, PURPLE_MESSAGE_SYSTEM, 1315 purple_log_write(log, PURPLE_MESSAGE_SYSTEM,
1318 purple_account_get_username(account), 1316 purple_account_get_username(account),
1319 (idle ? idle_time : current_time), msg); 1317 idle_time, msg);
1320 g_free(msg); 1318 g_free(msg);
1321 } 1319 }
1322 } 1320 }
1323 1321
1324 gc = purple_account_get_connection(account); 1322 gc = purple_account_get_connection(account);
1326 if (gc != NULL && PURPLE_CONNECTION_IS_CONNECTED(gc) && 1324 if (gc != NULL && PURPLE_CONNECTION_IS_CONNECTED(gc) &&
1327 gc->prpl != NULL) 1325 gc->prpl != NULL)
1328 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl); 1326 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl);
1329 1327
1330 if (prpl_info && prpl_info->set_idle) 1328 if (prpl_info && prpl_info->set_idle)
1331 prpl_info->set_idle(gc, (idle ? (current_time - idle_time) : 0)); 1329 prpl_info->set_idle(gc, (idle ? (time(NULL) - idle_time) : 0));
1332 } 1330 }
1333 } 1331 }
1334 1332
1335 void 1333 void
1336 purple_presence_set_login_time(PurplePresence *presence, time_t login_time) 1334 purple_presence_set_login_time(PurplePresence *presence, time_t login_time)