1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-06-23 21:45:30 +00:00

Implemented "/sub sent" to show outstanding sent subscription requests

This commit is contained in:
James Booth 2012-11-28 01:36:04 +00:00
parent b7a7be37e9
commit 0756a9cec6
4 changed files with 35 additions and 3 deletions

View File

@ -991,7 +991,20 @@ _cmd_sub(gchar **args, struct cmd_help_t help)
}
if (strcmp(subcmd, "sent") == 0) {
cons_show("No pending requests sent.");
if (contact_list_has_pending_subscriptions()) {
cons_show("Awaiting subscription responses from:");
GSList *contacts = get_contact_list();
while (contacts != NULL) {
PContact contact = (PContact) contacts->data;
if (p_contact_pending_out(contact)) {
cons_show(p_contact_jid(contact));
}
contacts = g_slist_next(contacts);
}
} else {
cons_show("No pending requests sent.");
}
return TRUE;
}
@ -1001,7 +1014,7 @@ _cmd_sub(gchar **args, struct cmd_help_t help)
if (received == NULL) {
cons_show("No outstanding subscription requests.");
} else {
cons_show("%d outstanding subscription requests from:",
cons_show("Outstanding subscription requests from:",
g_list_length(received));
while (received != NULL) {
cons_show(received->data);

View File

@ -118,6 +118,24 @@ contact_list_update_subscription(const char * const jid,
}
}
gboolean
contact_list_has_pending_subscriptions(void)
{
GHashTableIter iter;
gpointer key;
gpointer value;
g_hash_table_iter_init(&iter, contacts);
while (g_hash_table_iter_next(&iter, &key, &value)) {
PContact contact = (PContact) value;
if (p_contact_pending_out(contact)) {
return TRUE;
}
}
return FALSE;
}
GSList *
get_contact_list(void)
{

View File

@ -38,6 +38,7 @@ gboolean contact_list_update_contact(const char * const jid, const char * const
const char * const status);
void contact_list_update_subscription(const char * const jid,
const char * const subscription, gboolean pending_out);
gboolean contact_list_has_pending_subscriptions(void);
GSList * get_contact_list(void);
char * contact_list_find_contact(char *search_str);
PContact contact_list_get_contact(const char const *jid);

View File

@ -156,7 +156,7 @@ prof_handle_subscription(const char *from, jabber_subscr_t type)
/* TODO: auto-subscribe if needed */
cons_show("Received authorization request from %s", from);
log_info("Received authorization request from %s", from);
win_show_system_msg(from, "Authorization request, type '/sub add' to accept or '/sub del' to reject");
win_show_system_msg(from, "Authorization request, type '/sub allow' to accept or '/sub deny' to reject");
win_current_page_off();
break;
case PRESENCE_SUBSCRIBED: