PurpleConversation *tgp_chat_show (struct tgl_state *TLS, struct tgl_chat *C) { connection_data *conn = TLS->ev_base; PurpleConversation *convo = purple_find_chat (conn->gc, tgl_get_peer_id (C->id)); PurpleConvChat *chat = purple_conversation_get_chat_data (convo); if (! convo || (chat && purple_conv_chat_has_left (chat))) { convo = p2tgl_got_joined_chat (conn->TLS, C); tgp_chat_users_update (conn->TLS, C); } return convo; }
PurpleConversation *chat_show (PurpleConnection *gc, int id) { connection_data *conn = purple_connection_get_protocol_data(gc); PurpleConversation *convo = purple_find_chat (gc, id); PurpleConvChat *chat = purple_conversation_get_chat_data (convo); tgl_peer_t *P = tgl_peer_get (conn->TLS, TGL_MK_CHAT(id)); if (! P) { warning ("Chat %d not existing, not showing...", id); return NULL; } if (! convo || (chat && purple_conv_chat_has_left (chat))) { convo = p2tgl_got_joined_chat (conn->TLS, &P->chat); } chat_users_update (conn->TLS, &P->chat); return convo; }