From 44e9af9a9deded5a8ac3bc5bbf6201ee94b2fa52 Mon Sep 17 00:00:00 2001 From: saitamasahil Date: Sun, 13 Sep 2026 09:21:02 +0530 Subject: [PATCH] Fix ScreenScraper credential URL-encoding and colon parsing in userCreds --- src/screenscraper.cpp | 4 ++-- src/skyscraper.cpp | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/screenscraper.cpp b/src/screenscraper.cpp index cff00df2..adc5ff7d 100644 --- a/src/screenscraper.cpp +++ b/src/screenscraper.cpp @@ -102,8 +102,8 @@ void ScreenScraper::getSearchResults(QList &gameEntries, StrTools::unMagic( "204;198;236;130;203;181;203;126;191;167;200;198;192;228;169;156") + "&softname=skyscraper" VERSION + - (config->user.isEmpty() ? "" : "&ssid=" + config->user) + - (config->password.isEmpty() ? "" : "&sspassword=" + config->password) + + (config->user.isEmpty() ? "" : "&ssid=" + QString::fromUtf8(QUrl::toPercentEncoding(config->user))) + + (config->password.isEmpty() ? "" : "&sspassword=" + QString::fromUtf8(QUrl::toPercentEncoding(config->password))) + (platformId == -1 ? "" : "&systemeid=" + QString::number(platformId)) + "&output=json&" + searchName; diff --git a/src/skyscraper.cpp b/src/skyscraper.cpp index e44b09eb..f3154d89 100644 --- a/src/skyscraper.cpp +++ b/src/skyscraper.cpp @@ -1257,13 +1257,13 @@ void Skyscraper::loadConfig(const QCommandLineParser &parser) { } if (!config.userCreds.isEmpty()) { - QStringList userCreds = config.userCreds.split(":"); - if (userCreds.length() == 2) { - config.user = userCreds.at(0); - config.password = userCreds.at(1); - } else if (userCreds.length() == 1) { + int colonIdx = config.userCreds.indexOf(':'); + if (colonIdx != -1) { + config.user = config.userCreds.left(colonIdx); + config.password = config.userCreds.mid(colonIdx + 1); + } else { // API key - config.password = userCreds.at(0); + config.password = config.userCreds; } } @@ -1552,8 +1552,8 @@ void Skyscraper::prepareScreenscraper(NetComm &netComm, QEventLoop &q) { "ssuserInfos.php?devid=muldjord&devpassword=" + StrTools::unMagic("204;198;236;130;203;181;203;126;191;167;200;" "198;192;228;169;156") + - "&softname=skyscraper" VERSION "&output=json&ssid=" + config.user + - "&sspassword=" + config.password); + "&softname=skyscraper" VERSION "&output=json&ssid=" + QString::fromUtf8(QUrl::toPercentEncoding(config.user)) + + "&sspassword=" + QString::fromUtf8(QUrl::toPercentEncoding(config.password))); q.exec(); QJsonObject jsonObj = QJsonDocument::fromJson(netComm.getData()).object();