Changeset - 8cfb9210876d
[Not reviewed]
0 1 0
Scott Sweeny - 8 years ago 2017-08-09 07:12:24
scott@ssweeny.net
Accept updated purple-hangouts primary prompt (#236)
1 file changed with 2 insertions and 1 deletions:
0 comments (0 inline, 0 general)
backends/libpurple/main.cpp
Show inline comments
 
@@ -1561,97 +1561,98 @@ static void *notify_user_info(PurpleConnection *gc, const char *who, PurpleNotif
 
		PurpleBuddyIcon *icon = NULL;
 
		icon = purple_buddy_icons_find_wrapped(purple_connection_get_account_wrapped(gc), name.c_str());
 
		if (icon) {
 
			if (true) {
 
				gchar *data;
 
				gchar *path = purple_buddy_icon_get_full_path_wrapped(icon);
 
				if (path) {
 
					if (g_file_get_contents(path, &data, &len, NULL)) {
 
						photo = std::string(data, len);
 
						g_free(data);
 
					}
 
					g_free(path);
 
				}
 
			}
 
			else {
 
				const gchar * data = (gchar*)purple_buddy_icon_get_data_wrapped(icon, &len);
 
				if (len < 300000 && data) {
 
					photo = std::string(data, len);
 
				}
 
			}
 
			purple_buddy_icon_unref_wrapped(icon);
 
		}
 
	}
 

	
 
	np->handleVCard(np->m_accounts[account], np->m_vcards[np->m_accounts[account] + name], name, fullName, nickname, photo);
 
	np->m_vcards.erase(np->m_accounts[account] + name);
 

	
 
	return NULL;
 
}
 

	
 
void * requestInput(const char *title, const char *primary,const char *secondary, const char *default_value, gboolean multiline, gboolean masked, gchar *hint,const char *ok_text, GCallback ok_cb,const char *cancel_text, GCallback cancel_cb, PurpleAccount *account, const char *who,PurpleConversation *conv, void *user_data) {
 
	if (primary) {
 
		std::string primaryString(primary);
 
		if (primaryString == "Authorization Request Message:") {
 
			LOG4CXX_INFO(logger, "Authorization Request Message: calling ok_cb(...)");
 
			((PurpleRequestInputCb) ok_cb)(user_data, "Please authorize me.");
 
			return NULL;
 
		}
 
		else if (primaryString == "Authorization Request Message:") {
 
			LOG4CXX_INFO(logger, "Authorization Request Message: calling ok_cb(...)");
 
			((PurpleRequestInputCb) ok_cb)(user_data, "Please authorize me.");
 
			return NULL;
 
		}
 
		else if (primaryString == "Authorization Denied Message:") {
 
			LOG4CXX_INFO(logger, "Authorization Deined Message: calling ok_cb(...)");
 
			((PurpleRequestInputCb) ok_cb)(user_data, "Authorization denied.");
 
			return NULL;
 
		}
 
		else if (boost::starts_with(primaryString, "https://accounts.google.com/o/oauth2/auth")) {
 
		else if (boost::starts_with(primaryString, "https://accounts.google.com/o/oauth2/auth") ||
 
                                boost::starts_with(primaryString, "https://www.youtube.com/watch?v=hlDhp-eNLMU")) {
 
			LOG4CXX_INFO(logger, "prpl-hangouts oauth request");
 
			np->handleMessage(np->m_accounts[account], np->adminLegacyName, std::string("Please visit the following link and authorize this application: ") + primaryString, "");
 
			np->handleMessage(np->m_accounts[account], np->adminLegacyName, std::string("Reply with code provided by Google: "));
 
			inputRequest *req = new inputRequest;
 
			req->ok_cb = (PurpleRequestInputCb)ok_cb;
 
			req->user_data = user_data;
 
			req->account = account;
 
			req->mainJID = np->m_accounts[account];
 
			np->m_inputRequests[req->mainJID] = req;
 
			return NULL;
 
		}
 
		else if (primaryString == "Set your Steam Guard Code") {
 
			LOG4CXX_INFO(logger, "prpl-steam-mobile steam guard request");
 
			np->handleMessage(np->m_accounts[account], np->adminLegacyName, std::string("Steam Guard code: "));
 
			inputRequest *req = new inputRequest;
 
			req->ok_cb = (PurpleRequestInputCb)ok_cb;
 
			req->user_data = user_data;
 
			req->account = account;
 
			req->mainJID = np->m_accounts[account];
 
			np->m_inputRequests[req->mainJID] = req;
 
			return NULL;
 
		}
 
		else {
 
			LOG4CXX_WARN(logger, "Unhandled request input. primary=" << primaryString);
 
		}
 
	}
 
    else if (title) {
 
        std::string titleString(title);
 
        if (titleString == "Xfire Invitation Message") {
 
            LOG4CXX_INFO(logger, "Authorization Request Message: calling ok_cb(...)");
 
            ((PurpleRequestInputCb) ok_cb)(user_data, "Please authorize me.");
 
            return NULL;
 
        }
 
        else {
 
            LOG4CXX_WARN(logger, "Unhandled request input. title=" << titleString);
 
        }
 
    }
 
    else {
 
        LOG4CXX_WARN(logger, "Request input without primary string");
 
    }
 
    return NULL;
 
}
 

	
 
static PurpleNotifyUiOps notifyUiOps =
 
{
 
		NULL,
 
		NULL,
 
		NULL,
0 comments (0 inline, 0 general)