Changeset - be6e854f3795
[Not reviewed]
0 2 0
HanzZ - 14 years ago 2011-07-31 19:10:48
hanzz.k@gmail.com
fixed vcards with prpl-any
2 files changed with 9 insertions and 5 deletions:
0 comments (0 inline, 0 general)
backends/libpurple/main.cpp
Show inline comments
 
@@ -349,12 +349,16 @@ class SpectrumNetworkPlugin : public NetworkPlugin {
 
			}
 
		}
 

	
 
		void handleVCardRequest(const std::string &user, const std::string &legacyName, unsigned int id) {
 
			PurpleAccount *account = m_sessions[user];
 
			if (account) {
 
				std::string name = legacyName;
 
				if (CONFIG_STRING(config, "service.protocol") == "any") {
 
					name = name.substr(name.find(".") + 1);
 
				}
 
				serv_get_info(purple_account_get_connection(account), legacyName.c_str());
 
				m_vcards[user + legacyName] = id;
 
			}
 
		}
 

	
 
		void handleVCardUpdatedRequest(const std::string &user, const std::string &p) {
 
@@ -581,13 +585,13 @@ static bool getStatus(PurpleBuddy *m_buddy, Swift::StatusShow &status, std::stri
 

	
 
static std::string getIconHash(PurpleBuddy *m_buddy) {
 
	char *avatarHash = NULL;
 
	PurpleBuddyIcon *icon = purple_buddy_icons_find(purple_buddy_get_account(m_buddy), purple_buddy_get_name(m_buddy));
 
	if (icon) {
 
		avatarHash = purple_buddy_icon_get_full_path(icon);
 
// 		purple_buddy_icon_unref(icon);
 
		purple_buddy_icon_unref(icon);
 
	}
 

	
 
	if (avatarHash) {
 
		// Check if it's patched libpurple which saves icons to directories
 
		char *hash = strrchr(avatarHash,'/');
 
		std::string h;
 
@@ -829,13 +833,13 @@ static void *notify_user_info(PurpleConnection *gc, const char *who, PurpleNotif
 
		if (avatar) {
 
			const gchar * data = (const gchar *) purple_imgstore_get_data(avatar);
 
			size_t len = purple_imgstore_get_size(avatar);
 
			if (len < 300000 && data) {
 
				photo = Swift::createByteArray(data, len);
 
			}
 
// 			purple_imgstore_unref(avatar);
 
			purple_imgstore_unref(avatar);
 
		}
 
	}
 

	
 
	if ((!firstName.empty() || !lastName.empty()) && fullName.empty())
 
		fullName = firstName + " " + lastName;
 

	
 
@@ -859,13 +863,13 @@ static void *notify_user_info(PurpleConnection *gc, const char *who, PurpleNotif
 
// 							extension = "jpeg";
 
// 						}
 
// 						photo->addChild( new Tag("TYPE", "image/" + extension) );
 
// 					}
 
// 				}
 
			}
 
// 			purple_buddy_icon_unref(icon);
 
			purple_buddy_icon_unref(icon);
 
		}
 
	}
 

	
 
	
 
	np->handleVCard(np->m_accounts[account], np->m_vcards[np->m_accounts[account] + name], name, fullName, nickname, Swift::byteArrayToString(photo));
 
	np->m_vcards.erase(np->m_accounts[account] + name);
spectrum/src/sample.cfg
Show inline comments
 
@@ -10,14 +10,14 @@ admin_username=admin
 
admin_password=test
 
#cert= #patch to PKCS#12 certificate
 
#cert_password= #password to that certificate if any
 
users_per_backend=10
 
backend=../../backends/libpurple/spectrum_libpurple_backend
 
#backend=../../backends/libircclient-qt/spectrum_libircclient-qt_backend
 
protocol=prpl-msn
 
#protocol=any
 
#protocol=prpl-msn
 
protocol=any
 
#protocol=prpl-icq
 

	
 
[backend]
 
default_avatar=catmelonhead.jpg
 

	
 
[logging]
0 comments (0 inline, 0 general)