void GTrans::doTrans() { nam = new QNetworkAccessManager(this); // Figure out the URL for translate.google.com QStringList words = inputTxt->toPlainText().split(QRegExp("\\s+")); QString gtUrl = tr("http://translate.google.com/translate_t?langpair=%1|%2&text=").arg(languages[fromLang->currentText()]).arg(languages[toLang->currentText()]) + words.join("+"); QUrl url(gtUrl); QNetworkRequest qnr(url); // Google checks for certain user agents, so spoof one qnr.setRawHeader("User-Agent", ""); // Make the request. nam->get(qnr); // Tell it to get back to us... connect(nam, SIGNAL(finished(QNetworkReply*)), this, SLOT(finishedSlot(QNetworkReply*))); // Go back to the text input inputTxt->selectAll(); inputTxt->setFocus(); }
void GTrans::doTrans() { nam = new QNetworkAccessManager(this); // Figure out the URL for translate.google.com // QStringList words = inputTxt->toPlainText().split(QRegExp("\\s+")); //lzt clipboard QClipboard *clipboard = QApplication::clipboard(); QStringList words = clipboard->text(QClipboard::Selection).split(QRegExp("\\s+")); outputTxt->setPlainText(words.join(" ")); // //QString gtUrl = tr("https://translate.google.com/translate_t?langpair=%1|%2&text=").arg(languages[fromLang->currentText()]).arg(languages[toLang->currentText()]) + words.join("+"); QString gtUrl = tr("http://dict.youdao.com/search?q=") + words.join(" "); // outputTxt->setPlainText(gtUrl); //lzt1 QUrl url(gtUrl); QNetworkRequest qnr(url); // Google checks for certain user agents, so spoof one qnr.setRawHeader("User-Agent", ""); // Make the request. nam->get(qnr); // Tell it to get back to us... connect(nam, SIGNAL(finished(QNetworkReply*)), this, SLOT(finishedSlot(QNetworkReply*))); // Go back to the text input // inputTxt->selectAll(); // inputTxt->setFocus(); usleep(500000); // outputTxt->selectAll(); outputTxt->setFocus(); }
void Server::update() { if (!((! qsRegName.isEmpty()) && (! qsRegName.isEmpty()) && (! qsRegPassword.isEmpty()) && qurlRegWeb.isValid() && qsPassword.isEmpty() && bAllowPing)) return; // When QNAM distinguishes connections by client cert, move this to Meta if (! qnamNetwork) qnamNetwork = new QNetworkAccessManager(this); qtTick.start(1000 * (60 * 60 + (qrand() % 300))); QDomDocument doc; QDomElement root=doc.createElement(QLatin1String("server")); doc.appendChild(root); OSInfo::fillXml(doc, root, meta->qsOS, meta->qsOSVersion, qlBind); QDomElement tag; QDomText t; tag=doc.createElement(QLatin1String("name")); root.appendChild(tag); t=doc.createTextNode(qsRegName); tag.appendChild(t); tag=doc.createElement(QLatin1String("host")); root.appendChild(tag); t=doc.createTextNode(qsRegHost); tag.appendChild(t); tag=doc.createElement(QLatin1String("password")); root.appendChild(tag); t=doc.createTextNode(qsRegPassword); tag.appendChild(t); tag=doc.createElement(QLatin1String("port")); root.appendChild(tag); t=doc.createTextNode(QString::number(usPort)); tag.appendChild(t); tag=doc.createElement(QLatin1String("url")); root.appendChild(tag); t=doc.createTextNode(qurlRegWeb.toString()); tag.appendChild(t); tag=doc.createElement(QLatin1String("digest")); root.appendChild(tag); t=doc.createTextNode(getDigest()); tag.appendChild(t); tag=doc.createElement(QLatin1String("users")); root.appendChild(tag); t=doc.createTextNode(QString::number(qhUsers.count())); tag.appendChild(t); tag=doc.createElement(QLatin1String("channels")); root.appendChild(tag); t=doc.createTextNode(QString::number(qhChannels.count())); tag.appendChild(t); QNetworkRequest qnr(QUrl(QLatin1String("https://mumble.hive.no/register.cgi"))); qnr.setHeader(QNetworkRequest::ContentTypeHeader, QLatin1String("text/xml")); QSslConfiguration ssl = qnr.sslConfiguration(); ssl.setLocalCertificate(qscCert); ssl.setPrivateKey(qskKey); /* Work around bug in QSslConfiguration */ QList<QSslCertificate> calist = ssl.caCertificates(); calist << QSslSocket::defaultCaCertificates(); calist << qscCert; ssl.setCaCertificates(calist); qnr.setSslConfiguration(ssl); QNetworkReply *rep = qnamNetwork->post(qnr, doc.toString().toUtf8()); connect(rep, SIGNAL(finished()), this, SLOT(finished())); connect(rep, SIGNAL(sslErrors(const QList<QSslError> &)), this, SLOT(regSslError(const QList<QSslError> &))); }