From kde-commits Sun Apr 30 21:28:26 2017 From: Robby Stephenson Date: Sun, 30 Apr 2017 21:28:26 +0000 To: kde-commits Subject: [tellico] src/fetch: Move static hashes to member variables Message-Id: X-MARC-Message: https://marc.info/?l=kde-commits&m=149358772004736 Git commit ff3b030e3b7fb56429342f0ca411cb11ae1d5c7e by Robby Stephenson. Committed on 30/04/2017 at 20:47. Pushed by rstephenson into branch 'master'. Move static hashes to member variables M +180 -186 src/fetch/igdbfetcher.cpp M +6 -6 src/fetch/igdbfetcher.h https://commits.kde.org/tellico/ff3b030e3b7fb56429342f0ca411cb11ae1d5c7e diff --git a/src/fetch/igdbfetcher.cpp b/src/fetch/igdbfetcher.cpp index a9d15316..7fbce943 100644 --- a/src/fetch/igdbfetcher.cpp +++ b/src/fetch/igdbfetcher.cpp @@ -56,22 +56,15 @@ namespace { using namespace Tellico; using Tellico::Fetch::IGDBFetcher; = -QHash IGDBFetcher::s_genreHash; -QHash IGDBFetcher::s_platformHash; -QHash IGDBFetcher::s_companyHash; -QHash IGDBFetcher::s_esrbHash; -QHash IGDBFetcher::s_pegiHash; - IGDBFetcher::IGDBFetcher(QObject* parent_) : Fetcher(parent_), m_started(false), m_apiKey(QLatin1String(IGDB_API_= KEY)) { // setLimit(IGDB_MAX_RETURNS_TOTAL); - if(s_genreHash.isEmpty()) { + if(m_genreHash.isEmpty()) { populateHashes(); } } = IGDBFetcher::~IGDBFetcher() { - myDebug() << "destroyed IGDBFetcher"; } = QString IGDBFetcher::source() const { @@ -261,7 +254,7 @@ void IGDBFetcher::slotComplete(KJob* job_) { void IGDBFetcher::populateEntry(Data::EntryPtr entry_, const QVariantMap& = resultMap_) { entry_->setField(QLatin1String("title"), value(resultMap_, "name")); entry_->setField(QLatin1String("description"), value(resultMap_, "summar= y")); - entry_->setField(QLatin1String("certification"), s_esrbHash.value(value(= resultMap_, "esrb", "rating"))); + entry_->setField(QLatin1String("certification"), m_esrbHash.value(value(= resultMap_, "esrb", "rating"))); entry_->setField(QLatin1String("pub-id"), value(resultMap_, "publishers"= )); entry_->setField(QLatin1String("dev-id"), value(resultMap_, "developers"= )); = @@ -274,7 +267,7 @@ void IGDBFetcher::populateEntry(Data::EntryPtr entry_, = const QVariantMap& result QVariantList genreIDs =3D resultMap_.value(QLatin1String("genres")).toLi= st(); QStringList genres; foreach(const QVariant& id, genreIDs) { - QString g =3D s_genreHash.value(id.toInt()); + QString g =3D m_genreHash.value(id.toInt()); if(!g.isEmpty()) { genres << g; } @@ -286,7 +279,7 @@ void IGDBFetcher::populateEntry(Data::EntryPtr entry_, = const QVariantMap& result QVariantMap releaseMap =3D releases.at(0).toMap(); // for now just grab the year of the first release entry_->setField(QLatin1String("year"), value(releaseMap, "y")); - const QString platform =3D s_platformHash.value(releaseMap.value(QLati= n1String("platform")).toInt()); + const QString platform =3D m_platformHash.value(releaseMap.value(QLati= n1String("platform")).toInt()); if(platform =3D=3D QLatin1String("Nintendo Entertainment System (NES)"= )) { entry_->setField(QLatin1String("platform"), i18n("Nintendo")); } else if(platform =3D=3D QLatin1String("Nintendo PlayStation")) { @@ -319,7 +312,7 @@ void IGDBFetcher::populateEntry(Data::EntryPtr entry_, = const QVariantMap& result } = if(optionalFields().contains(QLatin1String("pegi"))) { - entry_->setField(QLatin1String("pegi"), s_pegiHash.value(value(resultM= ap_, "pegi", "rating"))); + entry_->setField(QLatin1String("pegi"), m_pegiHash.value(value(resultM= ap_, "pegi", "rating"))); } = if(optionalFields().contains(QLatin1String("igdb"))) { @@ -328,8 +321,8 @@ void IGDBFetcher::populateEntry(Data::EntryPtr entry_, = const QVariantMap& result } = QString IGDBFetcher::companyName(const QString& companyId_) const { - if(s_companyHash.contains(companyId_)) { - return s_companyHash.value(companyId_); + if(m_companyHash.contains(companyId_)) { + return m_companyHash.value(companyId_); } QUrl u(QString::fromLatin1(IGDB_API_URL)); u.setPath(u.path() + QLatin1String("companies/") + companyId_); @@ -362,7 +355,7 @@ QString IGDBFetcher::companyName(const QString& company= Id_) const { = QJsonDocument doc =3D QJsonDocument::fromJson(data); const QString company =3D value(doc.array().toVariantList().at(0).toMap(= ), "name"); - s_companyHash.insert(companyId_, company); + m_companyHash.insert(companyId_, company); return company; } = @@ -370,6 +363,178 @@ Tellico::Fetch::ConfigWidget* IGDBFetcher::configWidg= et(QWidget* parent_) const return new IGDBFetcher::ConfigWidget(parent_, this); } = + +// Use member hash for certain field names for now. +// Don't expect IGDB values to change. This avoids exponentially multiplyi= ng the number of API calls +void IGDBFetcher::populateHashes() { + m_genreHash.insert(2, QLatin1String("Point-and-click")); + m_genreHash.insert(4, QLatin1String("Fighting")); + m_genreHash.insert(5, QLatin1String("Shooter")); + m_genreHash.insert(7, QLatin1String("Music")); + m_genreHash.insert(8, QLatin1String("Platform")); + m_genreHash.insert(9, QLatin1String("Puzzle")); + m_genreHash.insert(10, QLatin1String("Racing")); + m_genreHash.insert(11, QLatin1String("Real Time Strategy (RTS)")); + m_genreHash.insert(12, QLatin1String("Role-playing (RPG)")); + m_genreHash.insert(13, QLatin1String("Simulator")); + m_genreHash.insert(14, QLatin1String("Sport")); + m_genreHash.insert(15, QLatin1String("Strategy")); + m_genreHash.insert(16, QLatin1String("Turn-based strategy (TBS)")); + m_genreHash.insert(24, QLatin1String("Tactical")); + m_genreHash.insert(25, QLatin1String("Hack and slash/Beat 'em up")); + m_genreHash.insert(26, QLatin1String("Quiz/Trivia")); + m_genreHash.insert(30, QLatin1String("Pinball")); + m_genreHash.insert(31, QLatin1String("Adventure")); + m_genreHash.insert(32, QLatin1String("Indie")); + m_genreHash.insert(33, QLatin1String("Arcade")); + + m_platformHash.insert(3, QLatin1String("Linux")); + m_platformHash.insert(4, QLatin1String("Nintendo 64")); + m_platformHash.insert(5, QLatin1String("Wii")); + m_platformHash.insert(6, QLatin1String("PC (Microsoft Windows)")); + m_platformHash.insert(7, QLatin1String("PlayStation")); + m_platformHash.insert(8, QLatin1String("PlayStation 2")); + m_platformHash.insert(9, QLatin1String("PlayStation 3")); + m_platformHash.insert(11, QLatin1String("Xbox")); + m_platformHash.insert(12, QLatin1String("Xbox 360")); + m_platformHash.insert(13, QLatin1String("PC DOS")); + m_platformHash.insert(14, QLatin1String("Mac")); + m_platformHash.insert(15, QLatin1String("Commodore C64/128")); + m_platformHash.insert(16, QLatin1String("Amiga")); + m_platformHash.insert(18, QLatin1String("Nintendo Entertainment System (= NES)")); + m_platformHash.insert(19, QLatin1String("Super Nintendo Entertainment Sy= stem (SNES)")); + m_platformHash.insert(20, QLatin1String("Nintendo DS")); + m_platformHash.insert(21, QLatin1String("Nintendo GameCube")); + m_platformHash.insert(22, QLatin1String("Game Boy Color")); + m_platformHash.insert(23, QLatin1String("Dreamcast")); + m_platformHash.insert(24, QLatin1String("Game Boy Advance")); + m_platformHash.insert(25, QLatin1String("Amstrad CPC")); + m_platformHash.insert(26, QLatin1String("ZX Spectrum")); + m_platformHash.insert(27, QLatin1String("MSX")); + m_platformHash.insert(29, QLatin1String("Sega Mega Drive/Genesis")); + m_platformHash.insert(30, QLatin1String("Sega 32X")); + m_platformHash.insert(32, QLatin1String("Sega Saturn")); + m_platformHash.insert(33, QLatin1String("Game Boy")); + m_platformHash.insert(34, QLatin1String("Android")); + m_platformHash.insert(35, QLatin1String("Sega Game Gear")); + m_platformHash.insert(36, QLatin1String("Xbox Live Arcade")); + m_platformHash.insert(37, QLatin1String("Nintendo 3DS")); + m_platformHash.insert(38, QLatin1String("PlayStation Portable")); + m_platformHash.insert(39, QLatin1String("iOS")); + m_platformHash.insert(41, QLatin1String("Wii U")); + m_platformHash.insert(42, QLatin1String("N-Gage")); + m_platformHash.insert(44, QLatin1String("Tapwave Zodiac")); + m_platformHash.insert(45, QLatin1String("PlayStation Network")); + m_platformHash.insert(46, QLatin1String("PlayStation Vita")); + m_platformHash.insert(47, QLatin1String("Virtual Console (Nintendo)")); + m_platformHash.insert(48, QLatin1String("PlayStation 4")); + m_platformHash.insert(49, QLatin1String("Xbox One")); + m_platformHash.insert(50, QLatin1String("3DO Interactive Multiplayer")); + m_platformHash.insert(51, QLatin1String("Family Computer Disk System")); + m_platformHash.insert(52, QLatin1String("Arcade")); + m_platformHash.insert(53, QLatin1String("MSX2")); + m_platformHash.insert(55, QLatin1String("Mobile")); + m_platformHash.insert(56, QLatin1String("WiiWare")); + m_platformHash.insert(57, QLatin1String("WonderSwan")); + m_platformHash.insert(58, QLatin1String("Super Famicom")); + m_platformHash.insert(59, QLatin1String("Atari 2600")); + m_platformHash.insert(60, QLatin1String("Atari 7800")); + m_platformHash.insert(61, QLatin1String("Atari Lynx")); + m_platformHash.insert(62, QLatin1String("Atari Jaguar")); + m_platformHash.insert(63, QLatin1String("Atari ST/STE")); + m_platformHash.insert(64, QLatin1String("Sega Master System")); + m_platformHash.insert(65, QLatin1String("Atari 8-bit")); + m_platformHash.insert(66, QLatin1String("Atari 5200")); + m_platformHash.insert(67, QLatin1String("Intellivision")); + m_platformHash.insert(68, QLatin1String("ColecoVision")); + m_platformHash.insert(69, QLatin1String("BBC Microcomputer System")); + m_platformHash.insert(70, QLatin1String("Vectrex")); + m_platformHash.insert(71, QLatin1String("Commodore VIC-20")); + m_platformHash.insert(72, QLatin1String("Ouya")); + m_platformHash.insert(73, QLatin1String("BlackBerry OS")); + m_platformHash.insert(74, QLatin1String("Windows Phone")); + m_platformHash.insert(75, QLatin1String("Apple II")); + m_platformHash.insert(77, QLatin1String("Sharp X1")); + m_platformHash.insert(78, QLatin1String("Sega CD")); + m_platformHash.insert(79, QLatin1String("Neo Geo MVS")); + m_platformHash.insert(80, QLatin1String("Neo Geo AES")); + m_platformHash.insert(82, QLatin1String("Web browser")); + m_platformHash.insert(84, QLatin1String("SG-1000")); + m_platformHash.insert(85, QLatin1String("Donner Model 30")); + m_platformHash.insert(86, QLatin1String("TurboGrafx-16/PC Engine")); + m_platformHash.insert(87, QLatin1String("Virtual Boy")); + m_platformHash.insert(88, QLatin1String("Odyssey")); + m_platformHash.insert(89, QLatin1String("Microvision")); + m_platformHash.insert(90, QLatin1String("Commodore PET")); + m_platformHash.insert(91, QLatin1String("Bally Astrocade")); + m_platformHash.insert(92, QLatin1String("SteamOS")); + m_platformHash.insert(93, QLatin1String("Commodore 16")); + m_platformHash.insert(94, QLatin1String("Commodore Plus/4")); + m_platformHash.insert(95, QLatin1String("PDP-1")); + m_platformHash.insert(96, QLatin1String("PDP-10")); + m_platformHash.insert(97, QLatin1String("PDP-8")); + m_platformHash.insert(98, QLatin1String("DEC GT40")); + m_platformHash.insert(99, QLatin1String("Family Computer")); + m_platformHash.insert(100, QLatin1String("Analogue electronics")); + m_platformHash.insert(101, QLatin1String("Ferranti Nimrod Computer")); + m_platformHash.insert(102, QLatin1String("EDSAC")); + m_platformHash.insert(103, QLatin1String("PDP-7")); + m_platformHash.insert(104, QLatin1String("HP 2100")); + m_platformHash.insert(105, QLatin1String("HP 3000")); + m_platformHash.insert(106, QLatin1String("SDS Sigma 7")); + m_platformHash.insert(107, QLatin1String("Call-A-Computer time-shared ma= inframe computer system")); + m_platformHash.insert(108, QLatin1String("PDP-11")); + m_platformHash.insert(109, QLatin1String("CDC Cyber 70")); + m_platformHash.insert(110, QLatin1String("PLATO")); + m_platformHash.insert(111, QLatin1String("Imlac PDS-1")); + m_platformHash.insert(112, QLatin1String("Microcomputer")); + m_platformHash.insert(113, QLatin1String("OnLive Game System")); + m_platformHash.insert(114, QLatin1String("Amiga CD32")); + m_platformHash.insert(115, QLatin1String("Apple IIGS")); + m_platformHash.insert(116, QLatin1String("Acorn Archimedes")); + m_platformHash.insert(117, QLatin1String("Philips CD-i")); + m_platformHash.insert(118, QLatin1String("FM Towns")); + m_platformHash.insert(119, QLatin1String("Neo Geo Pocket")); + m_platformHash.insert(120, QLatin1String("Neo Geo Pocket Color")); + m_platformHash.insert(121, QLatin1String("Sharp X68000")); + m_platformHash.insert(122, QLatin1String("Nuon")); + m_platformHash.insert(123, QLatin1String("WonderSwan Color")); + m_platformHash.insert(124, QLatin1String("SwanCrystal")); + m_platformHash.insert(125, QLatin1String("PC-8801")); + m_platformHash.insert(126, QLatin1String("TRS-80")); + m_platformHash.insert(127, QLatin1String("Fairchild Channel F")); + m_platformHash.insert(128, QLatin1String("PC Engine SuperGrafx")); + m_platformHash.insert(129, QLatin1String("Texas Instruments TI-99")); + m_platformHash.insert(130, QLatin1String("Nintendo Switch")); + m_platformHash.insert(131, QLatin1String("Nintendo PlayStation")); + m_platformHash.insert(132, QLatin1String("Amazon Fire TV")); + m_platformHash.insert(133, QLatin1String("Philips Videopac G7000")); + m_platformHash.insert(134, QLatin1String("Acorn Electron")); + m_platformHash.insert(135, QLatin1String("Hyper Neo Geo 64")); + m_platformHash.insert(136, QLatin1String("Neo Geo CD")); + + // cheat by grabbing i18n values from default collection + Data::CollPtr c(new Data::GameCollection(true)); + QStringList esrb =3D c->fieldByName(QLatin1String("certification"))->all= owed(); + Q_ASSERT(esrb.size() =3D=3D 8); + while(esrb.size() < 8) { + esrb << QString(); + } + m_esrbHash.insert(QLatin1String("1"), esrb.at(7)); + m_esrbHash.insert(QLatin1String("2"), esrb.at(6)); + m_esrbHash.insert(QLatin1String("3"), esrb.at(5)); + m_esrbHash.insert(QLatin1String("4"), esrb.at(4)); + m_esrbHash.insert(QLatin1String("5"), esrb.at(3)); + m_esrbHash.insert(QLatin1String("6"), esrb.at(2)); + m_esrbHash.insert(QLatin1String("7"), esrb.at(1)); + + m_pegiHash.insert(QLatin1String("1"), QLatin1String("PEGI 3")); + m_pegiHash.insert(QLatin1String("2"), QLatin1String("PEGI 7")); + m_pegiHash.insert(QLatin1String("3"), QLatin1String("PEGI 12")); + m_pegiHash.insert(QLatin1String("4"), QLatin1String("PEGI 16")); + m_pegiHash.insert(QLatin1String("5"), QLatin1String("PEGI 18")); +} + QString IGDBFetcher::defaultName() { return i18n("Internet Game Database (IGDB.com)"); } @@ -470,177 +635,6 @@ QString IGDBFetcher::value(const QVariantMap& map, co= nst char* object, const cha } } = -// Be lazy. Use static hash for certain field names for now. -// Don't expect IGDB values to change. This avoids exponentially multiplyi= ng the number of API calls -void IGDBFetcher::populateHashes() { - s_genreHash.insert(2, QLatin1String("Point-and-click")); - s_genreHash.insert(4, QLatin1String("Fighting")); - s_genreHash.insert(5, QLatin1String("Shooter")); - s_genreHash.insert(7, QLatin1String("Music")); - s_genreHash.insert(8, QLatin1String("Platform")); - s_genreHash.insert(9, QLatin1String("Puzzle")); - s_genreHash.insert(10, QLatin1String("Racing")); - s_genreHash.insert(11, QLatin1String("Real Time Strategy (RTS)")); - s_genreHash.insert(12, QLatin1String("Role-playing (RPG)")); - s_genreHash.insert(13, QLatin1String("Simulator")); - s_genreHash.insert(14, QLatin1String("Sport")); - s_genreHash.insert(15, QLatin1String("Strategy")); - s_genreHash.insert(16, QLatin1String("Turn-based strategy (TBS)")); - s_genreHash.insert(24, QLatin1String("Tactical")); - s_genreHash.insert(25, QLatin1String("Hack and slash/Beat 'em up")); - s_genreHash.insert(26, QLatin1String("Quiz/Trivia")); - s_genreHash.insert(30, QLatin1String("Pinball")); - s_genreHash.insert(31, QLatin1String("Adventure")); - s_genreHash.insert(32, QLatin1String("Indie")); - s_genreHash.insert(33, QLatin1String("Arcade")); - - s_platformHash.insert(3, QLatin1String("Linux")); - s_platformHash.insert(4, QLatin1String("Nintendo 64")); - s_platformHash.insert(5, QLatin1String("Wii")); - s_platformHash.insert(6, QLatin1String("PC (Microsoft Windows)")); - s_platformHash.insert(7, QLatin1String("PlayStation")); - s_platformHash.insert(8, QLatin1String("PlayStation 2")); - s_platformHash.insert(9, QLatin1String("PlayStation 3")); - s_platformHash.insert(11, QLatin1String("Xbox")); - s_platformHash.insert(12, QLatin1String("Xbox 360")); - s_platformHash.insert(13, QLatin1String("PC DOS")); - s_platformHash.insert(14, QLatin1String("Mac")); - s_platformHash.insert(15, QLatin1String("Commodore C64/128")); - s_platformHash.insert(16, QLatin1String("Amiga")); - s_platformHash.insert(18, QLatin1String("Nintendo Entertainment System (= NES)")); - s_platformHash.insert(19, QLatin1String("Super Nintendo Entertainment Sy= stem (SNES)")); - s_platformHash.insert(20, QLatin1String("Nintendo DS")); - s_platformHash.insert(21, QLatin1String("Nintendo GameCube")); - s_platformHash.insert(22, QLatin1String("Game Boy Color")); - s_platformHash.insert(23, QLatin1String("Dreamcast")); - s_platformHash.insert(24, QLatin1String("Game Boy Advance")); - s_platformHash.insert(25, QLatin1String("Amstrad CPC")); - s_platformHash.insert(26, QLatin1String("ZX Spectrum")); - s_platformHash.insert(27, QLatin1String("MSX")); - s_platformHash.insert(29, QLatin1String("Sega Mega Drive/Genesis")); - s_platformHash.insert(30, QLatin1String("Sega 32X")); - s_platformHash.insert(32, QLatin1String("Sega Saturn")); - s_platformHash.insert(33, QLatin1String("Game Boy")); - s_platformHash.insert(34, QLatin1String("Android")); - s_platformHash.insert(35, QLatin1String("Sega Game Gear")); - s_platformHash.insert(36, QLatin1String("Xbox Live Arcade")); - s_platformHash.insert(37, QLatin1String("Nintendo 3DS")); - s_platformHash.insert(38, QLatin1String("PlayStation Portable")); - s_platformHash.insert(39, QLatin1String("iOS")); - s_platformHash.insert(41, QLatin1String("Wii U")); - s_platformHash.insert(42, QLatin1String("N-Gage")); - s_platformHash.insert(44, QLatin1String("Tapwave Zodiac")); - s_platformHash.insert(45, QLatin1String("PlayStation Network")); - s_platformHash.insert(46, QLatin1String("PlayStation Vita")); - s_platformHash.insert(47, QLatin1String("Virtual Console (Nintendo)")); - s_platformHash.insert(48, QLatin1String("PlayStation 4")); - s_platformHash.insert(49, QLatin1String("Xbox One")); - s_platformHash.insert(50, QLatin1String("3DO Interactive Multiplayer")); - s_platformHash.insert(51, QLatin1String("Family Computer Disk System")); - s_platformHash.insert(52, QLatin1String("Arcade")); - s_platformHash.insert(53, QLatin1String("MSX2")); - s_platformHash.insert(55, QLatin1String("Mobile")); - s_platformHash.insert(56, QLatin1String("WiiWare")); - s_platformHash.insert(57, QLatin1String("WonderSwan")); - s_platformHash.insert(58, QLatin1String("Super Famicom")); - s_platformHash.insert(59, QLatin1String("Atari 2600")); - s_platformHash.insert(60, QLatin1String("Atari 7800")); - s_platformHash.insert(61, QLatin1String("Atari Lynx")); - s_platformHash.insert(62, QLatin1String("Atari Jaguar")); - s_platformHash.insert(63, QLatin1String("Atari ST/STE")); - s_platformHash.insert(64, QLatin1String("Sega Master System")); - s_platformHash.insert(65, QLatin1String("Atari 8-bit")); - s_platformHash.insert(66, QLatin1String("Atari 5200")); - s_platformHash.insert(67, QLatin1String("Intellivision")); - s_platformHash.insert(68, QLatin1String("ColecoVision")); - s_platformHash.insert(69, QLatin1String("BBC Microcomputer System")); - s_platformHash.insert(70, QLatin1String("Vectrex")); - s_platformHash.insert(71, QLatin1String("Commodore VIC-20")); - s_platformHash.insert(72, QLatin1String("Ouya")); - s_platformHash.insert(73, QLatin1String("BlackBerry OS")); - s_platformHash.insert(74, QLatin1String("Windows Phone")); - s_platformHash.insert(75, QLatin1String("Apple II")); - s_platformHash.insert(77, QLatin1String("Sharp X1")); - s_platformHash.insert(78, QLatin1String("Sega CD")); - s_platformHash.insert(79, QLatin1String("Neo Geo MVS")); - s_platformHash.insert(80, QLatin1String("Neo Geo AES")); - s_platformHash.insert(82, QLatin1String("Web browser")); - s_platformHash.insert(84, QLatin1String("SG-1000")); - s_platformHash.insert(85, QLatin1String("Donner Model 30")); - s_platformHash.insert(86, QLatin1String("TurboGrafx-16/PC Engine")); - s_platformHash.insert(87, QLatin1String("Virtual Boy")); - s_platformHash.insert(88, QLatin1String("Odyssey")); - s_platformHash.insert(89, QLatin1String("Microvision")); - s_platformHash.insert(90, QLatin1String("Commodore PET")); - s_platformHash.insert(91, QLatin1String("Bally Astrocade")); - s_platformHash.insert(92, QLatin1String("SteamOS")); - s_platformHash.insert(93, QLatin1String("Commodore 16")); - s_platformHash.insert(94, QLatin1String("Commodore Plus/4")); - s_platformHash.insert(95, QLatin1String("PDP-1")); - s_platformHash.insert(96, QLatin1String("PDP-10")); - s_platformHash.insert(97, QLatin1String("PDP-8")); - s_platformHash.insert(98, QLatin1String("DEC GT40")); - s_platformHash.insert(99, QLatin1String("Family Computer")); - s_platformHash.insert(100, QLatin1String("Analogue electronics")); - s_platformHash.insert(101, QLatin1String("Ferranti Nimrod Computer")); - s_platformHash.insert(102, QLatin1String("EDSAC")); - s_platformHash.insert(103, QLatin1String("PDP-7")); - s_platformHash.insert(104, QLatin1String("HP 2100")); - s_platformHash.insert(105, QLatin1String("HP 3000")); - s_platformHash.insert(106, QLatin1String("SDS Sigma 7")); - s_platformHash.insert(107, QLatin1String("Call-A-Computer time-shared ma= inframe computer system")); - s_platformHash.insert(108, QLatin1String("PDP-11")); - s_platformHash.insert(109, QLatin1String("CDC Cyber 70")); - s_platformHash.insert(110, QLatin1String("PLATO")); - s_platformHash.insert(111, QLatin1String("Imlac PDS-1")); - s_platformHash.insert(112, QLatin1String("Microcomputer")); - s_platformHash.insert(113, QLatin1String("OnLive Game System")); - s_platformHash.insert(114, QLatin1String("Amiga CD32")); - s_platformHash.insert(115, QLatin1String("Apple IIGS")); - s_platformHash.insert(116, QLatin1String("Acorn Archimedes")); - s_platformHash.insert(117, QLatin1String("Philips CD-i")); - s_platformHash.insert(118, QLatin1String("FM Towns")); - s_platformHash.insert(119, QLatin1String("Neo Geo Pocket")); - s_platformHash.insert(120, QLatin1String("Neo Geo Pocket Color")); - s_platformHash.insert(121, QLatin1String("Sharp X68000")); - s_platformHash.insert(122, QLatin1String("Nuon")); - s_platformHash.insert(123, QLatin1String("WonderSwan Color")); - s_platformHash.insert(124, QLatin1String("SwanCrystal")); - s_platformHash.insert(125, QLatin1String("PC-8801")); - s_platformHash.insert(126, QLatin1String("TRS-80")); - s_platformHash.insert(127, QLatin1String("Fairchild Channel F")); - s_platformHash.insert(128, QLatin1String("PC Engine SuperGrafx")); - s_platformHash.insert(129, QLatin1String("Texas Instruments TI-99")); - s_platformHash.insert(130, QLatin1String("Nintendo Switch")); - s_platformHash.insert(131, QLatin1String("Nintendo PlayStation")); - s_platformHash.insert(132, QLatin1String("Amazon Fire TV")); - s_platformHash.insert(133, QLatin1String("Philips Videopac G7000")); - s_platformHash.insert(134, QLatin1String("Acorn Electron")); - s_platformHash.insert(135, QLatin1String("Hyper Neo Geo 64")); - s_platformHash.insert(136, QLatin1String("Neo Geo CD")); - - // cheat by grabbing i18n values from default collection - Data::CollPtr c(new Data::GameCollection(true)); - QStringList esrb =3D c->fieldByName(QLatin1String("certification"))->all= owed(); - Q_ASSERT(esrb.size() =3D=3D 8); - while(esrb.size() < 8) { - esrb << QString(); - } - s_esrbHash.insert(QLatin1String("1"), esrb.at(7)); - s_esrbHash.insert(QLatin1String("2"), esrb.at(6)); - s_esrbHash.insert(QLatin1String("3"), esrb.at(5)); - s_esrbHash.insert(QLatin1String("4"), esrb.at(4)); - s_esrbHash.insert(QLatin1String("5"), esrb.at(3)); - s_esrbHash.insert(QLatin1String("6"), esrb.at(2)); - s_esrbHash.insert(QLatin1String("7"), esrb.at(1)); - - s_pegiHash.insert(QLatin1String("1"), QLatin1String("PEGI 3")); - s_pegiHash.insert(QLatin1String("2"), QLatin1String("PEGI 7")); - s_pegiHash.insert(QLatin1String("3"), QLatin1String("PEGI 12")); - s_pegiHash.insert(QLatin1String("4"), QLatin1String("PEGI 16")); - s_pegiHash.insert(QLatin1String("5"), QLatin1String("PEGI 18")); -} - QPointer IGDBFetcher::igdbJob(const QUrl& url_, co= nst QString& apiKey_) { QPointer job =3D KIO::storedGet(url_, KIO::NoRel= oad, KIO::HideProgressInfo); job->addMetaData(QLatin1String("customHTTPHeader"), QLatin1String("X-Mas= hape-Key: ") + apiKey_); diff --git a/src/fetch/igdbfetcher.h b/src/fetch/igdbfetcher.h index c68aaade..dd8ea3c4 100644 --- a/src/fetch/igdbfetcher.h +++ b/src/fetch/igdbfetcher.h @@ -89,11 +89,11 @@ private: virtual void search() Q_DECL_OVERRIDE; virtual FetchRequest updateRequest(Data::EntryPtr entry) Q_DECL_OVERRIDE; void populateEntry(Data::EntryPtr entry, const QVariantMap& resultMap); + void populateHashes(); QString companyName(const QString& companyId) const; = static QString value(const QVariantMap& map, const char* name); static QString value(const QVariantMap& map, const char* object, const c= har* name); - static void populateHashes(); static QPointer igdbJob(const QUrl& url, const Q= String& apiKey); = bool m_started; @@ -102,11 +102,11 @@ private: QHash m_entries; QPointer m_job; = - static QHash s_genreHash; - static QHash s_platformHash; - static QHash s_companyHash; - static QHash s_esrbHash; - static QHash s_pegiHash; + QHash m_genreHash; + QHash m_platformHash; + QHash m_esrbHash; + QHash m_pegiHash; + mutable QHash m_companyHash; }; = class IGDBFetcher::ConfigWidget : public Fetch::ConfigWidget {