TwitterPlugin::TwitterPlugin( const QString& pluginId ) : SipPlugin( pluginId ) , m_isAuthed( false ) , m_checkTimer( this ) , m_connectTimer( this ) , m_cachedFriendsSinceId( 0 ) , m_cachedMentionsSinceId( 0 ) , m_cachedDirectMessagesSinceId( 0 ) , m_cachedPeers() , m_keyCache() , m_finishedFriends( false ) , m_finishedMentions( false ) , m_state( Disconnected ) { qDebug() << Q_FUNC_INFO; m_checkTimer.setInterval( 60000 ); m_checkTimer.setSingleShot( false ); connect( &m_checkTimer, SIGNAL( timeout() ), SLOT( checkTimerFired() ) ); m_connectTimer.setInterval( 60000 ); m_connectTimer.setSingleShot( false ); connect( &m_connectTimer, SIGNAL( timeout() ), SLOT( connectTimerFired() ) ); m_configWidget = QWeakPointer< TwitterConfigWidget >( new TwitterConfigWidget( this, 0 ) ); connect( m_configWidget.data(), SIGNAL( twitterAuthed( bool ) ), SLOT( configDialogAuthedSignalSlot( bool ) ) ); }
TwitterPlugin::TwitterPlugin( const QString& pluginId ) : SipPlugin( pluginId ) , m_isAuthed( false ) , m_checkTimer( this ) , m_connectTimer( this ) , m_dmPollTimer( this ) , m_cachedFriendsSinceId( 0 ) , m_cachedMentionsSinceId( 0 ) , m_cachedDirectMessagesSinceId( 0 ) , m_cachedPeers() , m_keyCache() , m_state( Disconnected ) { qDebug() << Q_FUNC_INFO; if ( Database::instance()->dbid() != twitterSavedDbid() ) setTwitterCachedPeers( QVariantHash() ); setTwitterSavedDbid( Database::instance()->dbid() ); m_checkTimer.setInterval( 180000 ); m_checkTimer.setSingleShot( false ); connect( &m_checkTimer, SIGNAL( timeout() ), SLOT( checkTimerFired() ) ); m_dmPollTimer.setInterval( 60000 ); m_dmPollTimer.setSingleShot( false ); connect( &m_dmPollTimer, SIGNAL( timeout() ), SLOT( pollDirectMessages() ) ); m_connectTimer.setInterval( 180000 ); m_connectTimer.setSingleShot( false ); connect( &m_connectTimer, SIGNAL( timeout() ), SLOT( connectTimerFired() ) ); m_configWidget = QWeakPointer< TwitterConfigWidget >( new TwitterConfigWidget( this, 0 ) ); connect( m_configWidget.data(), SIGNAL( twitterAuthed( bool ) ), SLOT( configDialogAuthedSignalSlot( bool ) ) ); }
void TwitterSipPlugin::accountAuthenticated( const QWeakPointer< TomahawkOAuthTwitter > &twitterAuth, const QTweetUser &user ) { Q_UNUSED( user ); if ( !m_account->enabled() || !m_account->isAuthenticated() ) return; m_cachedTwitterAuth = twitterAuth; m_friendsTimeline = QWeakPointer<QTweetFriendsTimeline>( new QTweetFriendsTimeline( m_cachedTwitterAuth.data(), this ) ); m_mentions = QWeakPointer<QTweetMentions>( new QTweetMentions( m_cachedTwitterAuth.data(), this ) ); m_directMessages = QWeakPointer<QTweetDirectMessages>( new QTweetDirectMessages( m_cachedTwitterAuth.data(), this ) ); m_directMessageNew = QWeakPointer<QTweetDirectMessageNew>( new QTweetDirectMessageNew( m_cachedTwitterAuth.data(), this ) ); m_directMessageDestroy = QWeakPointer<QTweetDirectMessageDestroy>( new QTweetDirectMessageDestroy( m_cachedTwitterAuth.data(), this ) ); connect( m_friendsTimeline.data(), SIGNAL( parsedStatuses(const QList< QTweetStatus > &) ), SLOT( friendsTimelineStatuses(const QList<QTweetStatus> &) ) ); connect( m_mentions.data(), SIGNAL( parsedStatuses(const QList< QTweetStatus > &) ), SLOT( mentionsStatuses(const QList<QTweetStatus> &) ) ); connect( m_directMessages.data(), SIGNAL( parsedDirectMessages(const QList<QTweetDMStatus> &)), SLOT( directMessages(const QList<QTweetDMStatus> &) ) ); connect( m_directMessageNew.data(), SIGNAL( parsedDirectMessage(const QTweetDMStatus &)), SLOT( directMessagePosted(const QTweetDMStatus &) ) ); connect( m_directMessageNew.data(), SIGNAL( error(QTweetNetBase::ErrorCode, const QString &) ), SLOT( directMessagePostError(QTweetNetBase::ErrorCode, const QString &) ) ); connect( m_directMessageDestroy.data(), SIGNAL( parsedDirectMessage(const QTweetDMStatus &) ), SLOT( directMessageDestroyed(const QTweetDMStatus &) ) ); m_state = Tomahawk::Accounts::Account::Connected; emit stateChanged( m_state ); QStringList peerList = m_cachedPeers.keys(); qStableSort( peerList.begin(), peerList.end() ); registerOffers( peerList ); m_connectTimer.start(); m_checkTimer.start(); m_dmPollTimer.start(); QMetaObject::invokeMethod( this, "checkTimerFired", Qt::AutoConnection ); QTimer::singleShot( 20000, this, SLOT( connectTimerFired() ) ); }
void TwitterPlugin::connectAuthVerifyReply( const QTweetUser &user ) { if ( user.id() == 0 ) { qDebug() << "TwitterPlugin could not authenticate to Twitter"; m_isAuthed = false; m_state = Disconnected; m_connectTimer.stop(); m_checkTimer.stop(); m_dmPollTimer.stop(); emit stateChanged( m_state ); } else { qDebug() << "TwitterPlugin successfully authenticated to Twitter as user " << user.screenName(); m_isAuthed = true; if ( !m_twitterAuth.isNull() ) { setTwitterScreenName( user.screenName() ); m_friendsTimeline = QWeakPointer<QTweetFriendsTimeline>( new QTweetFriendsTimeline( m_twitterAuth.data(), this ) ); m_mentions = QWeakPointer<QTweetMentions>( new QTweetMentions( m_twitterAuth.data(), this ) ); m_directMessages = QWeakPointer<QTweetDirectMessages>( new QTweetDirectMessages( m_twitterAuth.data(), this ) ); m_directMessageNew = QWeakPointer<QTweetDirectMessageNew>( new QTweetDirectMessageNew( m_twitterAuth.data(), this ) ); m_directMessageDestroy = QWeakPointer<QTweetDirectMessageDestroy>( new QTweetDirectMessageDestroy( m_twitterAuth.data(), this ) ); connect( m_friendsTimeline.data(), SIGNAL( parsedStatuses(const QList< QTweetStatus > &) ), SLOT( friendsTimelineStatuses(const QList<QTweetStatus> &) ) ); connect( m_mentions.data(), SIGNAL( parsedStatuses(const QList< QTweetStatus > &) ), SLOT( mentionsStatuses(const QList<QTweetStatus> &) ) ); connect( m_directMessages.data(), SIGNAL( parsedDirectMessages(const QList<QTweetDMStatus> &)), SLOT( directMessages(const QList<QTweetDMStatus> &) ) ); connect( m_directMessageNew.data(), SIGNAL( parsedDirectMessage(const QTweetDMStatus &)), SLOT( directMessagePosted(const QTweetDMStatus &) ) ); connect( m_directMessageNew.data(), SIGNAL( error(QTweetNetBase::ErrorCode, const QString &) ), SLOT( directMessagePostError(QTweetNetBase::ErrorCode, const QString &) ) ); connect( m_directMessageDestroy.data(), SIGNAL( parsedDirectMessage(const QTweetDMStatus &) ), SLOT( directMessageDestroyed(const QTweetDMStatus &) ) ); m_state = Connected; emit stateChanged( m_state ); m_connectTimer.start(); m_checkTimer.start(); m_dmPollTimer.start(); QMetaObject::invokeMethod( this, "checkTimerFired", Qt::AutoConnection ); QTimer::singleShot( 20000, this, SLOT( connectTimerFired() ) ); } else { if ( refreshTwitterAuth() )
TwitterSipPlugin::TwitterSipPlugin( Tomahawk::Accounts::Account* account ) : SipPlugin( account ) , m_checkTimer( this ) , m_connectTimer( this ) , m_dmPollTimer( this ) , m_cachedFriendsSinceId( 0 ) , m_cachedMentionsSinceId( 0 ) , m_cachedDirectMessagesSinceId( 0 ) , m_cachedPeers() , m_keyCache() , m_state( Tomahawk::Accounts::Account::Disconnected ) { qDebug() << Q_FUNC_INFO; connect( account, SIGNAL( nowAuthenticated( const QWeakPointer< TomahawkOAuthTwitter > &, const QTweetUser & ) ), SLOT( accountAuthenticated( const QWeakPointer< TomahawkOAuthTwitter > &, const QTweetUser & ) ) ); m_configuration = account->configuration(); qDebug() << "SIP configuration:" << m_configuration << m_configuration[ "cachedpeers" ]; if ( Database::instance()->dbid() != m_account->configuration()[ "saveddbid" ].toString() ) { m_configuration[ "cachedpeers" ] = QVariantHash(); m_configuration[ "saveddbid" ] = Database::instance()->dbid(); syncConfig(); } m_checkTimer.setInterval( 180000 ); m_checkTimer.setSingleShot( false ); connect( &m_checkTimer, SIGNAL( timeout() ), SLOT( checkTimerFired() ) ); m_dmPollTimer.setInterval( 60000 ); m_dmPollTimer.setSingleShot( false ); connect( &m_dmPollTimer, SIGNAL( timeout() ), SLOT( pollDirectMessages() ) ); m_connectTimer.setInterval( 180000 ); m_connectTimer.setSingleShot( false ); connect( &m_connectTimer, SIGNAL( timeout() ), SLOT( connectTimerFired() ) ); }