Пример #1
0
void QTwitchChat::disconnect()
{
    if( reconnectTimerId_ >= 0 )
    {
        killTimer( reconnectTimerId_ );
        reconnectTimerId_ = -1;
        //qDebug() << "Twitch::disconnect(): reconnectTimerId_ = " << reconnectTimerId_;
    }

    if( statisticTimerId_ >= 0 )
    {
        killTimer( statisticTimerId_ );
        statisticTimerId_ = -1;
    }


    //if( !socket_ )
    //    return;

    if( socket_ && socket_->state() == QAbstractSocket::ConnectedState )
    {
        socket_->write( "QUIT\r\n" );
        socket_->flush();
        socket_->disconnect();
    }

    safeDeleteSocket();


    emit newStatistic( new QChatStatistic( TWITCH_SERVICE, "", this ) );
}
Пример #2
0
void QVidiChat::onStatisticLoaded()
{
    QNetworkReply * reply = qobject_cast< QNetworkReply * >( sender() );

    QJsonParseError parseError;

    QJsonDocument jsonDoc = QJsonDocument::fromJson( reply->readAll(), &parseError );

    if( QJsonParseError::NoError == parseError.error && jsonDoc.isObject() )
    {
        QJsonObject jsonObj = jsonDoc.object();

        QJsonObject jsonUser = jsonObj[ "user" ].toObject();

        QJsonObject jsonChannel = jsonUser[ "Channel" ].toObject();

        QString statistic = QString::number( jsonChannel[ "viewers" ].toInt() );

        if( !jsonChannel[ "online" ].toBool() )
            statistic = "0";


        emit newStatistic( new QChatStatistic( SERVICE_NAME, statistic, this ) );
    }

    reply->deleteLater();
}
Пример #3
0
void QVidiChat::disconnect()
{
    if( socket_ )
    {
        socket_->abort();
        socket_->deleteLater();
    }
    socket_ = nullptr;

    /*
    if( joinSocket_ )
    {
        joinSocket_->abort();
        joinSocket_->deleteLater();
    }
    joinSocket_ = nullptr;
    */

    resetTimer( reconnectTimerId_ );
    resetTimer( saveSocketConnectionTimerId_ );

    emit newStatistic( new QChatStatistic( SERVICE_NAME, QString(), this ) );
}