Exemple #1
0
void OmegleProto::NewChat()
{
	if (facy.state_ == STATE_WAITING)
	{
		UpdateChat(NULL, TranslateT("We are already waiting for new stranger..."), false);
		return;
	}
	else if (facy.state_ == STATE_ACTIVE || facy.state_ == STATE_SPY)
	{
		UpdateChat(NULL, TranslateT("Disconnecting..."), true);

		if (facy.stop())
			debugLogA("***** Disconnected from stranger %s", facy.chat_id_.c_str());
		else
			debugLogA("***** Error in disconnecting from stranger %s", facy.chat_id_.c_str());

		if (facy.state_ == STATE_SPY) {
			DeleteChatContact(TranslateT("Stranger 1"));
			DeleteChatContact(TranslateT("Stranger 2"));
		}
		else {
			DeleteChatContact(TranslateT("Stranger"));
		}

		SetTopic(); // reset topic content

		ClearChat();

		UpdateChat(NULL, TranslateT("Connecting..."), true);

		facy.state_ = STATE_WAITING;

		if (facy.start())
		{
			UpdateChat(NULL, TranslateT("Waiting for Stranger..."), true);
			debugLogA("***** Waiting for stranger %s", facy.chat_id_.c_str());
		}
	}
	else if (facy.state_ == STATE_DISCONNECTING)
	{
		//UpdateChat(NULL, TranslateT("We are disconnecting now, wait..."), false);
		return;
	}
	else
	{
		ClearChat();
		UpdateChat(NULL, TranslateT("Connecting..."), true);

		facy.state_ = STATE_WAITING;

		if (facy.start())
		{
			UpdateChat(NULL, TranslateT("Waiting for Stranger..."), true);
			debugLogA("***** Waiting for stranger %s", facy.chat_id_.c_str());

			ForkThread(&OmegleProto::EventsLoop, this);
		}
	}

}
Exemple #2
0
void OmegleProto::StopChat(bool disconnect)
{
	if (facy.state_ == STATE_WAITING) {
		UpdateChat(NULL, TranslateT("Connecting canceled."), false);
	}
	else if (facy.state_ == STATE_ACTIVE || facy.state_ == STATE_SPY) {
		bool spy = facy.state_ == STATE_SPY;

		if (disconnect)
		{
			facy.state_ = STATE_DISCONNECTING;
			UpdateChat(NULL, TranslateT("Disconnecting..."), true);

			if (facy.stop())
				debugLogA("***** Disconnected from stranger %s", facy.chat_id_.c_str());
			else
				debugLogA("***** Error in disconnecting from stranger %s", facy.chat_id_.c_str());
		}

		if (spy) {
			DeleteChatContact(TranslateT("Stranger 1"));
			DeleteChatContact(TranslateT("Stranger 2"));
		}
		else {
			DeleteChatContact(TranslateT("Stranger"));
		}

		SetTopic(); // reset topic content

		CallService(MS_MSG_SETSTATUSTEXT, (WPARAM)GetChatHandle(), NULL);
	}
	else
	{ // disconnecting or inactive
		return;
	}

	facy.state_ = STATE_INACTIVE;
	facy.chat_id_.clear();
}
Exemple #3
0
int TwitterProto::OnContactDeleted(WPARAM wParam, LPARAM)
{
	MCONTACT hContact = (MCONTACT)wParam;
	if (m_iStatus != ID_STATUS_ONLINE)
		return 0;

	if (!IsMyContact(hContact))
		return 0;

	DBVARIANT dbv;
	if (!getString(hContact, TWITTER_KEY_UN, &dbv)) {
		if (in_chat_)
			DeleteChatContact(dbv.pszVal);

		mir_cslock s(twitter_lock_);
		twit_.remove_friend(dbv.pszVal); // Be careful about this until Miranda is fixed
		db_free(&dbv);
	}
	return 0;
}