diff options
author | dequis <dx@dxzone.com.ar> | 2017-02-24 02:26:20 -0300 |
---|---|---|
committer | dequis <dx@dxzone.com.ar> | 2017-02-24 03:14:00 -0300 |
commit | a77eb8feabe9ca8ddebcafc81c2fef981387d3da (patch) | |
tree | 7fe8b91dc08e35ef35f92c1c5ee13707b259158f /facebook/facebook.c | |
parent | d3cfb58b424e18319320244749ac6e77e7eab4c0 (diff) | |
download | bitlbee-facebook-a77eb8feabe9ca8ddebcafc81c2fef981387d3da.tar.gz bitlbee-facebook-a77eb8feabe9ca8ddebcafc81c2fef981387d3da.tar.bz2 bitlbee-facebook-a77eb8feabe9ca8ddebcafc81c2fef981387d3da.tar.xz |
Handle new style topic/groupchat membership events
Looks like the mercury topics were deprecated and instead we get these:
* deltaThreadName
* deltaParticipantsAddedToGroupThread
* deltaParticipantLeftGroupThread
Also slightly modified the handlers on the bitlbee side to add users
directly without requiring a thread fetch, and to show a kick message
Diffstat (limited to 'facebook/facebook.c')
-rw-r--r-- | facebook/facebook.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/facebook/facebook.c b/facebook/facebook.c index 29a67e9..995ad59 100644 --- a/facebook/facebook.c +++ b/facebook/facebook.c @@ -353,15 +353,21 @@ fb_cb_api_events(FbApi *api, GSList *events, gpointer data) case FB_API_EVENT_TYPE_THREAD_USER_ADDED: if (bee_user_by_handle(ic->bee, ic, uid) == NULL) { - g_hash_table_insert(fetch, &event->tid, event); - break; + if (event->text) { + bee_user_new(ic->bee, ic, uid, BEE_USER_LOCAL); + imcb_buddy_nick_hint(ic, uid, event->text); + imcb_rename_buddy(ic, uid, event->text); + } else { + g_hash_table_insert(fetch, &event->tid, event); + break; + } } imcb_chat_add_buddy(gc, uid); break; case FB_API_EVENT_TYPE_THREAD_USER_REMOVED: - imcb_chat_remove_buddy(gc, uid, NULL); + imcb_chat_remove_buddy(gc, uid, event->text); break; } } |