예제 #1
0
void AdBlockSubscription::subscriptionDownloaded() {
  if (m_reply != qobject_cast<QNetworkReply*>(sender())) {
    return;
  }

  bool error = false;
  const QByteArray response = QString::fromUtf8(m_reply->readAll()).toUtf8();

  if (m_reply->error() != QNetworkReply::NoError || !response.startsWith(QByteArray("[Adblock")) || !saveDownloadedData(response)) {
    error = true;
  }

  m_reply->manager()->deleteLater();
  m_reply->deleteLater();
  m_reply = 0;

  if (error) {
    emit subscriptionError(tr("Cannot load subscription!"));

    return;
  }

  loadSubscription(AdBlockManager::instance()->disabledRules());
  emit subscriptionUpdated();
  emit subscriptionChanged();
}
void AdBlockSubscription::subscriptionDownloaded()
{
    if (m_reply != qobject_cast<FollowRedirectReply*>(sender())) {
        return;
    }

    QByteArray response = QString::fromUtf8(m_reply->readAll()).toUtf8();

    if (m_reply->error() == QNetworkReply::NoError && response.startsWith("[Adblock")) {
        // Prepend subscription info
        response.prepend(QString("Title: %1\nUrl: %2\n").arg(title(), url().toString()).toUtf8());

        saveDownloadedData(response);

        loadSubscription(AdBlockManager::instance()->disabledRules());
        emit subscriptionUpdated();
    }

    m_reply->deleteLater();
    m_reply = 0;
}