comparison mcabber/src/commands.c @ 625:028c01940490

Show presence timestamps in "/info" and "/room whois"
author Mikael Berthe <mikael@lilotux.net>
date Sat, 17 Dec 2005 18:39:04 +0100
parents 2b7ef605ddc6
children b75f4105ce32
comparison
equal deleted inserted replaced
624:4e882a19077d 625:028c01940490
905 resources = buddy_getresources(bud); 905 resources = buddy_getresources(bud);
906 for ( ; resources ; resources = g_slist_next(resources) ) { 906 for ( ; resources ; resources = g_slist_next(resources) ) {
907 gchar rprio; 907 gchar rprio;
908 enum imstatus rstatus; 908 enum imstatus rstatus;
909 const char *rst_msg; 909 const char *rst_msg;
910 time_t rst_time;
910 911
911 rprio = buddy_getresourceprio(bud, resources->data); 912 rprio = buddy_getresourceprio(bud, resources->data);
912 rstatus = buddy_getstatus(bud, resources->data); 913 rstatus = buddy_getstatus(bud, resources->data);
913 rst_msg = buddy_getstatusmsg(bud, resources->data); 914 rst_msg = buddy_getstatusmsg(bud, resources->data);
915 rst_time = buddy_getstatustime(bud, resources->data);
914 916
915 snprintf(buffer, 127, "Resource: [%c] (%d) %s", imstatus2char[rstatus], 917 snprintf(buffer, 127, "Resource: [%c] (%d) %s", imstatus2char[rstatus],
916 rprio, (char*)resources->data); 918 rprio, (char*)resources->data);
917 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); 919 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO);
918 if (rst_msg) { 920 if (rst_msg) {
919 snprintf(buffer, 127, "Status message: %s", rst_msg); 921 snprintf(buffer, 127, "Status message: %s", rst_msg);
922 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO);
923 }
924 if (rst_time) {
925 char tbuf[256];
926
927 strftime(tbuf, sizeof(tbuf), "%Y-%m-%d %H:%M:%S", localtime(&rst_time));
928 snprintf(buffer, 127, "Status timestamp: %s", tbuf);
920 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); 929 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO);
921 } 930 }
922 } 931 }
923 } else { 932 } else {
924 if (name) scr_LogPrint(LPRINT_NORMAL, "Name: %s", name); 933 if (name) scr_LogPrint(LPRINT_NORMAL, "Name: %s", name);
1504 const char *rst_msg; 1513 const char *rst_msg;
1505 gchar rprio; 1514 gchar rprio;
1506 enum imstatus rstatus; 1515 enum imstatus rstatus;
1507 enum imrole role; 1516 enum imrole role;
1508 enum imaffiliation affil; 1517 enum imaffiliation affil;
1518 time_t rst_time;
1509 1519
1510 char *strroles[] = { "none", "moderator", "participant", "visitor" }; 1520 char *strroles[] = { "none", "moderator", "participant", "visitor" };
1511 char *straffil[] = { "none", "owner", "admin", "member", "outcast" }; 1521 char *straffil[] = { "none", "owner", "admin", "member", "outcast" };
1512 1522
1513 paramlst = split_arg(arg, 1, 0); // nickname 1523 paramlst = split_arg(arg, 1, 0); // nickname
1526 scr_LogPrint(LPRINT_NORMAL, "No such member: %s", nick); 1536 scr_LogPrint(LPRINT_NORMAL, "No such member: %s", nick);
1527 free_arg_lst(paramlst); 1537 free_arg_lst(paramlst);
1528 return; 1538 return;
1529 } 1539 }
1530 1540
1541 rst_time = buddy_getstatustime(bud, nick);
1531 rprio = buddy_getresourceprio(bud, nick); 1542 rprio = buddy_getresourceprio(bud, nick);
1532 rst_msg = buddy_getstatusmsg(bud, nick); 1543 rst_msg = buddy_getstatusmsg(bud, nick);
1533 if (!rst_msg) rst_msg = ""; 1544 if (!rst_msg) rst_msg = "";
1534 1545
1535 role = buddy_getrole(bud, nick); 1546 role = buddy_getrole(bud, nick);
1541 snprintf(buffer, 127, "Whois [%s]", nick); 1552 snprintf(buffer, 127, "Whois [%s]", nick);
1542 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); 1553 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO);
1543 snprintf(buffer, 127, "Status : [%c] %s", imstatus2char[rstatus], 1554 snprintf(buffer, 127, "Status : [%c] %s", imstatus2char[rstatus],
1544 rst_msg); 1555 rst_msg);
1545 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); 1556 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO);
1557
1558 if (rst_time) {
1559 char tbuf[256];
1560
1561 strftime(tbuf, sizeof(tbuf), "%Y-%m-%d %H:%M:%S", localtime(&rst_time));
1562 snprintf(buffer, 127, "Timestamp: %s", tbuf);
1563 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO);
1564 }
1546 1565
1547 if (realjid) { 1566 if (realjid) {
1548 snprintf(buffer, 127, "JID : <%s>", realjid); 1567 snprintf(buffer, 127, "JID : <%s>", realjid);
1549 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); 1568 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO);
1550 } 1569 }
1553 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); 1572 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO);
1554 snprintf(buffer, 127, "Affiliat.: %s", straffil[affil]); 1573 snprintf(buffer, 127, "Affiliat.: %s", straffil[affil]);
1555 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); 1574 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO);
1556 snprintf(buffer, 127, "Priority : %d", rprio); 1575 snprintf(buffer, 127, "Priority : %d", rprio);
1557 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); 1576 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO);
1577
1558 scr_WriteIncomingMessage(jid, "End of WHOIS", 0, HBB_PREFIX_INFO); 1578 scr_WriteIncomingMessage(jid, "End of WHOIS", 0, HBB_PREFIX_INFO);
1559 1579
1560 g_free(buffer); 1580 g_free(buffer);
1561 free_arg_lst(paramlst); 1581 free_arg_lst(paramlst);
1562 } 1582 }