void tgp_chat_users_update (struct tgl_state *TLS, struct tgl_chat *C) { PurpleConversation *pc = purple_find_chat (tg_get_conn (TLS), tgl_get_peer_id (C->id)); if (pc) { purple_conv_chat_clear_users (purple_conversation_get_chat_data (pc)); tgp_chat_add_all_users (TLS, pc, C); } }
static void on_update_chat_participants (struct tgl_state *TLS, struct tgl_chat *chat) { PurpleConversation *pc = purple_find_chat(tg_get_conn(TLS), tgl_get_peer_id(chat->id)); if (pc) { purple_conv_chat_clear_users (purple_conversation_get_chat_data(pc)); chat_add_all_users (pc, chat); } }
void p2tgl_got_typing (struct tgl_state *TLS, tgl_peer_id_t user, int timeout) { char *who = g_strdup_printf("%d", tgl_get_peer_id(user)); serv_got_typing(tg_get_conn(TLS), who, timeout, PURPLE_TYPING); g_free(who); }
void p2tgl_got_im (struct tgl_state *TLS, tgl_peer_id_t who, const char *msg, int flags, time_t when) { char *name = peer_strdup_id(who); serv_got_im(tg_get_conn(TLS), name, msg,flags, when); g_free (name); }
void p2tgl_got_alias (struct tgl_state *TLS, tgl_peer_id_t who, const char *alias) { char *name = peer_strdup_id(who); serv_got_alias(tg_get_conn(TLS), name, alias); g_free (name); }
void p2tgl_got_chat_in (struct tgl_state *TLS, tgl_peer_id_t chat, tgl_peer_id_t who, const char *message, int flags, time_t when) { char *name = peer_strdup_id(who); serv_got_chat_in(tg_get_conn(TLS), tgl_get_peer_id (chat), name, flags, message, when); g_free (name); }
void *p2tgl_notify_userinfo(struct tgl_state *TLS, tgl_peer_id_t user, PurpleNotifyUserInfo *user_info, PurpleNotifyCloseCallback cb, gpointer user_data) { char *name = peer_strdup_id(user); void *handle = 0; handle = purple_notify_userinfo(tg_get_conn(TLS), name, user_info, cb, user_data); g_free(name); return handle; }
void tgp_msg_err_out (struct tgl_state *TLS, const char *error, tgl_peer_id_t to) { int flags = PURPLE_MESSAGE_ERROR | PURPLE_MESSAGE_SYSTEM; time_t now; time (&now); switch (tgl_get_peer_type (to)) { case TGL_PEER_CHAT: p2tgl_got_chat_in (TLS, to, to, error, flags, now); break; case TGL_PEER_USER: case TGL_PEER_ENCR_CHAT: serv_got_im (tg_get_conn (TLS), tgp_blist_peer_get_purple_name (TLS, to), error, flags, now); break; } }
void p2tgl_connection_set_display_name(struct tgl_state *TLS, tgl_peer_t *user) { char *name = p2tgl_strdup_alias(user); purple_connection_set_display_name(tg_get_conn(TLS), name); g_free(name); }
PurpleChat *p2tgl_chat_find (struct tgl_state *TLS, tgl_peer_id_t id) { char *name = peer_strdup_id(id); PurpleChat *c = blist_find_chat_by_hasht_cond(tg_get_conn(TLS), hasht_cmp_id, &name); g_free(name); return c; }
void p2tgl_got_chat_left (struct tgl_state *TLS, tgl_peer_id_t chat) { serv_got_chat_left(tg_get_conn(TLS), tgl_get_peer_id(chat)); }