summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTannin <devnull@localhost>2014-08-18 22:57:00 +0200
committerTannin <devnull@localhost>2014-08-18 22:57:00 +0200
commit5d3c1f34f4345354a1c7270a95919183190f9a7a (patch)
tree58a7018fbbecff9b4b6a17dbedd5433765a487ec
parent844ba99892e0a2c3ffff8b5a010c72104c8e41aa (diff)
- login package now also uses a "proper" user-agent
-rw-r--r--src/nexusinterface.cpp12
-rw-r--r--src/nexusinterface.h2
-rw-r--r--src/nxmaccessmanager.cpp12
-rw-r--r--src/nxmaccessmanager.h7
4 files changed, 22 insertions, 11 deletions
diff --git a/src/nexusinterface.cpp b/src/nexusinterface.cpp
index c7e2df9e..d844cd39 100644
--- a/src/nexusinterface.cpp
+++ b/src/nexusinterface.cpp
@@ -146,17 +146,16 @@ NexusInterface::NexusInterface()
: m_NMMVersion()
{
atexit(&cleanup);
- m_AccessManager = new NXMAccessManager(this);
-
- m_DiskCache = new QNetworkDiskCache(this);
- connect(m_AccessManager, SIGNAL(requestNXMDownload(QString)), this, SLOT(downloadRequestedNXM(QString)));
-
VS_FIXEDFILEINFO version = GetFileVersion(ToWString(QApplication::applicationFilePath()));
-
m_MOVersion = VersionInfo(version.dwFileVersionMS >> 16,
version.dwFileVersionMS & 0xFFFF,
version.dwFileVersionLS >> 16);
+
+ m_AccessManager = new NXMAccessManager(this, m_MOVersion.displayString());
+
+ m_DiskCache = new QNetworkDiskCache(this);
+ connect(m_AccessManager, SIGNAL(requestNXMDownload(QString)), this, SLOT(downloadRequestedNXM(QString)));
}
@@ -188,6 +187,7 @@ void NexusInterface::setCacheDirectory(const QString &directory)
void NexusInterface::setNMMVersion(const QString &nmmVersion)
{
m_NMMVersion = nmmVersion;
+ m_AccessManager->setNMMVersion(nmmVersion);
}
void NexusInterface::loginCompleted()
diff --git a/src/nexusinterface.h b/src/nexusinterface.h
index db61b0bf..cc54daa9 100644
--- a/src/nexusinterface.h
+++ b/src/nexusinterface.h
@@ -305,8 +305,6 @@ private:
private:
-// static NexusInterface *s_Instance;
-
QNetworkDiskCache *m_DiskCache;
NXMAccessManager *m_AccessManager;
diff --git a/src/nxmaccessmanager.cpp b/src/nxmaccessmanager.cpp
index 8231819d..285cf8a1 100644
--- a/src/nxmaccessmanager.cpp
+++ b/src/nxmaccessmanager.cpp
@@ -41,10 +41,11 @@ using namespace MOBase;
using namespace MOShared;
-NXMAccessManager::NXMAccessManager(QObject *parent)
+NXMAccessManager::NXMAccessManager(QObject *parent, const QString &moVersion)
: QNetworkAccessManager(parent)
, m_LoginReply(NULL)
, m_ProgressDialog()
+ , m_MOVersion(moVersion)
, m_LoginAttempted(false)
{
setCookieJar(new PersistentCookieJar(
@@ -59,6 +60,10 @@ NXMAccessManager::~NXMAccessManager()
}
}
+void NXMAccessManager::setNMMVersion(const QString &nmmVersion)
+{
+ m_NMMVersion = nmmVersion;
+}
QNetworkReply *NXMAccessManager::createRequest(
QNetworkAccessManager::Operation operation, const QNetworkRequest &request,
@@ -122,7 +127,7 @@ void NXMAccessManager::login(const QString &username, const QString &password)
void NXMAccessManager::pageLogin()
{
- QString requestString = (ToQString(GameInfo::instance().getNexusPage()) + "/sessions/?Login&uri=%1")
+ QString requestString = (ToQString(GameInfo::instance().getNexusPage()) + "/Sessions/?Login&uri=%1")
.arg(QString(QUrl::toPercentEncoding(ToQString(GameInfo::instance().getNexusPage()))));
QNetworkRequest request(requestString);
@@ -141,6 +146,9 @@ void NXMAccessManager::pageLogin()
postDataQuery = postData.encodedQuery();
#endif
+ QString userAgent = QString("Mod Organizer v%1 (compatible to Nexus Client v%2)").arg(m_MOVersion).arg(m_NMMVersion);
+ request.setRawHeader("User-Agent", userAgent.toUtf8());
+
m_ProgressDialog.setLabelText(tr("Logging into Nexus"));
QList<QPushButton*> buttons = m_ProgressDialog.findChildren<QPushButton*>();
buttons.at(0)->setEnabled(false);
diff --git a/src/nxmaccessmanager.h b/src/nxmaccessmanager.h
index 525394c9..9d692bba 100644
--- a/src/nxmaccessmanager.h
+++ b/src/nxmaccessmanager.h
@@ -35,10 +35,12 @@ class NXMAccessManager : public QNetworkAccessManager
Q_OBJECT
public:
- explicit NXMAccessManager(QObject *parent);
+ explicit NXMAccessManager(QObject *parent, const QString &moVersion);
~NXMAccessManager();
+ void setNMMVersion(const QString &nmmVersion);
+
bool loggedIn() const;
bool loginAttempted() const { return m_LoginAttempted; }
@@ -93,6 +95,9 @@ private:
QNetworkReply *m_LoginReply;
QProgressDialog m_ProgressDialog;
+ QString m_MOVersion;
+ QString m_NMMVersion;
+
QString m_Username;
QString m_Password;