Mercurial > hg
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 } |