summaryrefslogtreecommitdiff
path: root/src
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
commit06701856f8eaed0f6bf802308c07952f0f0dd92e (patch)
treefde159e73232439ed0899ccfccae31977b7ad37c /src
parent5d4a55c3a67caec2811a2b997753adc116403d77 (diff)
- login package now also uses a "proper" user-agent
Diffstat (limited to 'src')
-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 a238d1c8..18b47707 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;