Пример #1
0
void purple_chat_invite( struct groupchat *gc, char *who, char *message )
{
	PurpleConversation *pc = gc->data;
	PurpleConvChat *pcc = PURPLE_CONV_CHAT( pc );
	
	serv_chat_invite( purple_account_get_connection( gc->ic->proto_data ),
	                  purple_conv_chat_get_id( pcc ), 
	                  message && *message ? message : "Please join my chat",
	                  who );
}
Пример #2
0
void GaimChatMngr::ChatJoinedCbk(GaimConversation *conv)
{
	mConvInfo_t *mConv = (mConvInfo_t *) conv->ui_data;

	if (mConv->pending_invit)
	{
		for (GList *l = mConv->pending_invit; l != NULL; l = l->next)
		{
			serv_chat_invite(gaim_conversation_get_gc(conv),
				gaim_conv_chat_get_id(GAIM_CONV_CHAT(conv)),
				"Join my conference...", (char *)l->data);
		}
	}
}
Пример #3
0
void PurpleChatMngr::ChatJoinedCbk(PurpleConversation *conv)
{
	mConvInfo_t *mConv = (mConvInfo_t *) conv->ui_data;

	if (mConv->pending_invites)
	{
		for (GList *l = mConv->pending_invites; l != NULL; l = l->next)
		{
			serv_chat_invite(purple_conversation_get_gc(conv),
				purple_conv_chat_get_id(PURPLE_CONV_CHAT(conv)),
				"Join my conference...", (char *)l->data);
		}
	}
}
Пример #4
0
bool PurpleIMChat::addContactCbk(void * dataIn)
{
	Mutex::ScopedLock lock(PurpleIMChat::_mutex);

	PurpleIMChatCallbackData* cbData = (PurpleIMChatCallbackData*) dataIn;

	PurpleIMChat*	imChat		= cbData->getPurpleIMChat();
	IMChatSession*	chatSession = cbData->getIMChatSession();
	PurpleAccount*	gAccount	= getPurpleAccount( imChat->getIMAccount() );

//	const char * contactId = (const char *)((misc_t *)data)->data_ptr2;
	mConvInfo_t *mConv = FindChatStructById(chatSession->getId());
	int BuddyNbr = chatSession->getIMContactSet().size();
	PurpleConversation *gConv = NULL;

	if (mConv)
		gConv = mConv->purple_conv_session;		//VOXOX - JRT - 2009.07.09 
	else
		LOG_FATAL("ConvInfo not created !!!");

	if (purple_conversation_get_type(gConv) == PURPLE_CONV_TYPE_IM)
	{
		GList *mlist = NULL;
		IMContactSet& chatContact = const_cast<IMContactSet&>(chatSession->getIMContactSet());
		IMContactSet::const_iterator it = chatContact.begin();
		const std::string & firstContactId = it->getContactId();
		PurpleConnection *gGC;

		gConv = mConv->purple_conv_session;	//VOXOX - JRT - 2009.07.09 
		gGC = purple_conversation_get_gc(gConv);
		mlist = g_list_append(mlist, const_cast<char*>(cbData->getContactId().c_str()) );
		mlist = g_list_append(mlist, (char *) firstContactId.c_str());

		createPurpleChat(gGC, chatSession->getId(), mlist, *imChat, gAccount);	//VOXOX - JRT - 2009.07.10 
	}
	else if (purple_conversation_get_type(gConv) == PURPLE_CONV_TYPE_CHAT)
	{
		serv_chat_invite(purple_conversation_get_gc(gConv), purple_conv_chat_get_id(PURPLE_CONV_CHAT(gConv)), NULL, cbData->getContactId().c_str() );
	}

	timeoutRemove( cbData );

	delete cbData;

	return TRUE;
}