Changeset 830864d for protocols/jabber


Ignore:
Timestamp:
2015-03-15T09:31:18Z (10 years ago)
Author:
dequis <dx@…>
Children:
ac6855b3
Parents:
c0e4c22
git-author:
dequis <dx@…> (05-03-15 10:31:24)
git-committer:
dequis <dx@…> (15-03-15 09:31:18)
Message:

WIP placeholder channels with hipchat implementation

i was going to clean this up and split in two commits but uhhh...
maybe some other day, i'm tired now

not very tested and i'm not 100% happy about the design, but sucks way
less than what i had in the hip-cat branch

feedback still appreciated.

this adds channels to the channel list without creating groupchats for
them, allowing users to /join them. what the hip-cat branch did before
but with proper api and hopefully less dumb behavior

it still 'leaks' them intentionally, just like it did before, but now it
prevents saving them to the xml so yay

also slightly improved channel name generation, refactored
bee_irc_chat_name_hint into three or four functions, and so on

File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/jabber/hipchat.c

    rc0e4c22 r830864d  
    132132        while ((c = xt_find_node(c, "item"))) {
    133133                struct xt_node *c2;
    134                 struct groupchat *gc;
    135                 struct irc_channel *ircc;
    136134                char *topic = NULL;
    137                 gboolean new_room = FALSE;
    138135                char *jid = xt_find_attr(c, "jid");
    139136                char *name = xt_find_attr(c, "name");
     
    146143                }
    147144
    148                 gc = bee_chat_by_title(ic->bee, ic, jid);
    149                 if (!gc) {
    150                         gc = imcb_chat_new(ic, jid);
    151                         new_room = TRUE;
    152                 }
    153                 imcb_chat_name_hint(gc, name);
    154                 imcb_chat_topic(gc, NULL, topic, 0);
    155 
    156                 ircc = gc->ui_data;
    157                 set_setstr(&ircc->set, "account", ic->acc->tag);
    158                 set_setstr(&ircc->set, "room", jid);
    159                 set_setstr(&ircc->set, "chat_type", "room");
    160 
    161                 if (new_room) {
    162                         /* This cleans everything but leaves the irc channel around,
    163                          * since it just graduated to a room.*/
    164                         imcb_chat_free(gc);
    165                 }
    166 
     145                imcb_chat_placeholder_new(ic, jid, name, topic);
    167146                c = c->next;
    168147        }
Note: See TracChangeset for help on using the changeset viewer.