aboutsummaryrefslogtreecommitdiffstats
path: root/facebook/facebook.c
diff options
context:
space:
mode:
authordequis <dx@dxzone.com.ar>2017-02-24 02:26:20 -0300
committerdequis <dx@dxzone.com.ar>2017-02-24 03:14:00 -0300
commita77eb8feabe9ca8ddebcafc81c2fef981387d3da (patch)
tree7fe8b91dc08e35ef35f92c1c5ee13707b259158f /facebook/facebook.c
parentd3cfb58b424e18319320244749ac6e77e7eab4c0 (diff)
downloadbitlbee-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.c12
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;
}
}