Made code compatible with spectrum 1 user DB

This commit is contained in:
Sarang Bharadwaj 2012-08-07 10:56:50 +05:30
parent c0c5673c97
commit 561a55e963
2 changed files with 41 additions and 15 deletions

View file

@ -17,19 +17,11 @@ DEFINE_LOGGER(logger, "Twitter Backend");
TwitterPlugin *np = NULL;
Swift::SimpleEventLoop *loop_; // Event Loop
#define abs(x) ((x)<0?-(x):(x))
//#define SHA(x) (convertToChars(Swift::byteArrayToString(Swift::SHA1::getHash(Swift::createByteArray((x))))))
#define SHA(x) (Swift::Hexify::hexify(Swift::SHA1::getHash(Swift::createByteArray((x)))))
const std::string OLD_APP_KEY = "PCWAdQpyyR12ezp2fVwEhw";
const std::string OLD_APP_SECRET = "EveLmCXJIg2R7BTCpm6OWV8YyX49nI0pxnYXh7JMvDg";
//static std::string convertToChars(std::string s)
//{
// std::string ret = "";
// std::string tab[] = {"0","1","2","3","4","5","6","7",
// "8","9","A","B","C","D","E","F"};
// for(int i = 0 ; i < s.size() ; i++)
// ret = tab[s[i]>>4&15] + tab[s[i]&15] + ret;
// return ret;
//}
#define abs(x) ((x)<0?-(x):(x))
#define SHA(x) (Swift::Hexify::hexify(Swift::SHA1::getHash(Swift::createByteArray((x)))))
//Compares two +ve intergers 'a' and 'b' represented as strings
static int cmp(std::string a, std::string b)
@ -121,6 +113,8 @@ void TwitterPlugin::handleLoginRequest(const std::string &user, const std::strin
initUserSession(user, legacyName, password);
handleConnected(user);
LOG4CXX_INFO(logger, "SPECTRUM 1 USER? - " << (userdb[user].spectrum1User? "true" : "false"))
LOG4CXX_INFO(logger, user << ": Adding Buddy " << adminLegacyName << " " << adminAlias)
handleBuddyChanged(user, adminLegacyName, adminAlias, std::vector<std::string>(), pbnetwork::STATUS_ONLINE);
userdb[user].nickName = "";
@ -356,6 +350,26 @@ bool TwitterPlugin::getUserOAuthKeyAndSecret(const std::string user, std::string
return true;
}
bool TwitterPlugin::checkSpectrum1User(const std::string user)
{
boost::mutex::scoped_lock lock(dblock);
UserInfo info;
if(storagebackend->getUser(user, info) == false) {
LOG4CXX_ERROR(logger, "Didn't find entry for " << user << " in the database!")
return false;
}
std::string first_synchronization_done = "";
int type;
storagebackend->getUserSetting((long)info.id, "first_synchronization_done", type, first_synchronization_done);
LOG4CXX_INFO(logger, "first_synchronization_done: " << first_synchronization_done)
if(first_synchronization_done.length()) return true;
return false;
}
int TwitterPlugin::getTwitterMode(const std::string user)
{
boost::mutex::scoped_lock lock(dblock);
@ -446,12 +460,21 @@ void TwitterPlugin::initUserSession(const std::string user, const std::string le
}
}
//Check if the user is spectrum1 user
userdb[user].spectrum1User = checkSpectrum1User(user);
userdb[user].connectionState = NEW;
userdb[user].legacyName = username;
userdb[user].sessions->setTwitterUsername(username);
userdb[user].sessions->setTwitterPassword(passwd);
userdb[user].sessions->getOAuth().setConsumerKey(consumerKey);
userdb[user].sessions->getOAuth().setConsumerSecret(consumerSecret);
userdb[user].sessions->setTwitterPassword(passwd);
if(!userdb[user].spectrum1User) {
userdb[user].sessions->getOAuth().setConsumerKey(consumerKey);
userdb[user].sessions->getOAuth().setConsumerSecret(consumerSecret);
} else {
userdb[user].sessions->getOAuth().setConsumerKey(OLD_APP_KEY);
userdb[user].sessions->getOAuth().setConsumerSecret(OLD_APP_SECRET);
}
}
void TwitterPlugin::OAuthFlowComplete(const std::string user, twitCurl *obj)

View file

@ -86,6 +86,8 @@ class TwitterPlugin : public NetworkPlugin {
bool getUserOAuthKeyAndSecret(const std::string user, std::string &key, std::string &secret);
bool checkSpectrum1User(const std::string user);
bool storeUserOAuthKeyAndSecret(const std::string user, const std::string OAuthKey, const std::string OAuthSecret);
void initUserSession(const std::string user, const std::string legacyName, const std::string password);
@ -153,6 +155,7 @@ class TwitterPlugin : public NetworkPlugin {
struct UserData
{
std::string legacyName;
bool spectrum1User; //Legacy support
User userTwitterObj;
std::string userImg;
twitCurl* sessions;