using locale for the DataDragon API
This commit is contained in:
parent
246d5f80bc
commit
f32c436c18
|
@ -17,7 +17,7 @@ class DataDragon {
|
|||
public:
|
||||
using notifyImgfunc_t = std::function<void(cv::Mat)>;
|
||||
|
||||
DataDragon();
|
||||
DataDragon(const std::string& locale);
|
||||
~DataDragon();
|
||||
DataDragon(const DataDragon&) = delete;
|
||||
DataDragon& operator=(const DataDragon&) = delete;
|
||||
|
@ -64,6 +64,7 @@ protected:
|
|||
void stopAndJoinThread();
|
||||
void threadLoop();
|
||||
|
||||
std::string locale;
|
||||
std::string version;
|
||||
std::vector<ChampData> champs;
|
||||
std::mutex cachedatamutex;
|
||||
|
|
|
@ -25,7 +25,7 @@ static size_t arrayWriteCallback(char* contents, size_t size, size_t nmemb, void
|
|||
return 0;
|
||||
}
|
||||
|
||||
DataDragon::DataDragon() : cache({{"square", ".png"}, {"loading", "_0.jpg"}, {"splash", "_0.jpg"}}) {
|
||||
DataDragon::DataDragon(const std::string& locale) : locale(locale), cache({{"square", ".png"}, {"loading", "_0.jpg"}, {"splash", "_0.jpg"}}) {
|
||||
curl = curl_easy_init();
|
||||
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
|
||||
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, arrayWriteCallback);
|
||||
|
@ -238,7 +238,7 @@ QJsonDocument DataDragon::request(const std::string& url) {
|
|||
QJsonParseError err;
|
||||
QJsonDocument parsed = QJsonDocument::fromJson(arr, &err);
|
||||
if(parsed.isNull() || err.error != QJsonParseError::NoError) {
|
||||
Log::error << "DataDragon Jsonparse error " << err.errorString().toStdString() << " offset: " << err.offset;
|
||||
Log::error << "DataDragon Json parse error " << err.errorString().toStdString() << " offset: " << err.offset;
|
||||
return {};
|
||||
}
|
||||
|
||||
|
@ -271,7 +271,12 @@ void DataDragon::getChampsInternal() {
|
|||
return;
|
||||
}
|
||||
|
||||
QJsonDocument jchamps = request(getCDNString() + "data/en_US/champion.json");
|
||||
QJsonDocument jchamps = request(getCDNString() + "data/" + locale + "/champion.json");
|
||||
if(jchamps.isEmpty()) {
|
||||
// try again with default locale
|
||||
locale = "en_US";
|
||||
jchamps = request(getCDNString() + "data/" + locale + "/champion.json");
|
||||
}
|
||||
if(jchamps.isObject()) {
|
||||
QJsonObject obj = jchamps.object();
|
||||
auto it = obj.constFind("data");
|
||||
|
|
|
@ -8,7 +8,7 @@ static void applySetting(const Config::StageConfig& sc, StageSettings* ss) {
|
|||
ss->setChampion(QString::fromStdString(sc.champ));
|
||||
}
|
||||
|
||||
MainWindow::MainWindow(LolAutoAccept& lolaa, QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow), lolaa(lolaa) {
|
||||
MainWindow::MainWindow(LolAutoAccept& lolaa, QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow), lolaa(lolaa), dd(QLocale().name().toStdString()) {
|
||||
ui->setupUi(this);
|
||||
|
||||
conf.load();
|
||||
|
|
|
@ -93,7 +93,11 @@ void StageSettings::applyChampion(const DataDragon::ChampData& cd) {
|
|||
emit championChanged(QString::fromStdString(cd.name));
|
||||
});
|
||||
|
||||
#define QS(A) arg(QString::fromStdString(A))
|
||||
ui->champImg->setToolTip(tr("Champion: %1\nType: %2\nTitle: %3\nID: %4").QS(cd.name).QS(cd.partype).QS(cd.title).arg(cd.key));
|
||||
#undef QS
|
||||
if(cd.key >= 0) {
|
||||
#define QS(A) arg(QString::fromStdString(A))
|
||||
ui->champImg->setToolTip(tr("Champion: %1\nType: %2\nTitle: %3\nID: %4").QS(cd.name).QS(cd.partype).QS(cd.title).arg(cd.key));
|
||||
#undef QS
|
||||
} else {
|
||||
ui->champImg->setToolTip("");
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue